@@ -90,6 +90,28 @@ def test_Account_set():
9090 assert actual == expected
9191
9292
93+ def test_Account_deref ():
94+ val_to_set = 2
95+ value = abi .Account ()
96+ value .set (val_to_set )
97+ expr = value .deref ()
98+ assert expr .type_of () == pt .TealType .bytes
99+ assert expr .has_return () is False
100+
101+ expected = pt .TealSimpleBlock (
102+ [
103+ pt .TealOp (None , pt .Op .load , value .stored_value .slot ),
104+ pt .TealOp (None , pt .Op .txnas , "Accounts" ),
105+ ]
106+ )
107+ actual , _ = expr .__teal__ (options )
108+ actual .addIncoming ()
109+ actual = pt .TealBlock .NormalizeBlocks (actual )
110+
111+ with pt .TealComponent .Context .ignoreExprEquality ():
112+ assert actual == expected
113+
114+
93115def test_Asset_str ():
94116 assert str (abi .AssetTypeSpec ()) == "asset"
95117
@@ -176,6 +198,28 @@ def test_Asset_set():
176198 assert actual == expected
177199
178200
201+ def test_Asset_deref ():
202+ val_to_set = 2
203+ value = abi .Asset ()
204+ value .set (val_to_set )
205+ expr = value .deref ()
206+ assert expr .type_of () == pt .TealType .uint64
207+ assert expr .has_return () is False
208+
209+ expected = pt .TealSimpleBlock (
210+ [
211+ pt .TealOp (None , pt .Op .load , value .stored_value .slot ),
212+ pt .TealOp (None , pt .Op .txnas , "Assets" ),
213+ ]
214+ )
215+ actual , _ = expr .__teal__ (options )
216+ actual .addIncoming ()
217+ actual = pt .TealBlock .NormalizeBlocks (actual )
218+
219+ with pt .TealComponent .Context .ignoreExprEquality ():
220+ assert actual == expected
221+
222+
179223def test_Application_str ():
180224 assert str (abi .ApplicationTypeSpec ()) == "application"
181225
@@ -260,3 +304,25 @@ def test_Application_set():
260304
261305 with pt .TealComponent .Context .ignoreExprEquality ():
262306 assert actual == expected
307+
308+
309+ def test_Application_deref ():
310+ val_to_set = 2
311+ value = abi .Application ()
312+ value .set (val_to_set )
313+ expr = value .deref ()
314+ assert expr .type_of () == pt .TealType .uint64
315+ assert expr .has_return () is False
316+
317+ expected = pt .TealSimpleBlock (
318+ [
319+ pt .TealOp (None , pt .Op .load , value .stored_value .slot ),
320+ pt .TealOp (None , pt .Op .txnas , "Applications" ),
321+ ]
322+ )
323+ actual , _ = expr .__teal__ (options )
324+ actual .addIncoming ()
325+ actual = pt .TealBlock .NormalizeBlocks (actual )
326+
327+ with pt .TealComponent .Context .ignoreExprEquality ():
328+ assert actual == expected
0 commit comments