-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #36 from algorandfoundation/feat/multi-inheritance
feat: add tests for multi-inheritance contract
- Loading branch information
Showing
18 changed files
with
1,597 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,58 @@ | ||
import type { uint64 } from '@algorandfoundation/algorand-typescript' | ||
import { Contract, GlobalState, Uint64 } from '@algorandfoundation/algorand-typescript' | ||
import { classes } from 'polytype' | ||
|
||
export class CommonBase extends Contract { | ||
stateCommon = GlobalState<uint64>({ initialValue: 123 }) | ||
|
||
methodCommon() { | ||
return 'common' | ||
} | ||
|
||
b2CantOverride(): string { | ||
return 'common' | ||
} | ||
} | ||
|
||
export class BaseOne extends CommonBase { | ||
stateOne = GlobalState({ initialValue: Uint64(45) }) | ||
methodOne() { | ||
return 'base-one' | ||
} | ||
} | ||
|
||
export class BaseTwo extends CommonBase { | ||
stateTwo = GlobalState({ initialValue: 'Hello' }) | ||
methodTwo() { | ||
return 'base-two' | ||
} | ||
|
||
/** | ||
* Because CommonBase implements this method, and MRO for polytype is depth first; this method | ||
* should not be accessible from MultiBases as the MRO should be `BaseOne => CommonBase => BaseTwo => CommonBase` | ||
* and since CommonBase provides an implementation, this one should not be used | ||
*/ | ||
b2CantOverride(): string { | ||
return 'base-two' | ||
} | ||
} | ||
|
||
export class MultiBases extends classes(BaseOne, BaseTwo) { | ||
stateMulti = GlobalState({ initialValue: 'Hmmm' }) | ||
|
||
methodMulti() { | ||
return 'multi-bases' | ||
} | ||
|
||
methodCallsSuper() { | ||
return super.methodTwo() | ||
} | ||
|
||
callB2CantOverride() { | ||
return super.class(BaseTwo).b2CantOverride() | ||
} | ||
|
||
callB2Common() { | ||
return super.class(BaseTwo).methodCommon() | ||
} | ||
} |
84 changes: 84 additions & 0 deletions
84
tests/artifacts/multi-inheritance/data/BaseOne.approval.teal
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,84 @@ | ||
#pragma version 10 | ||
#pragma typetrack false | ||
|
||
// @algorandfoundation/algorand-typescript/arc4/index.d.ts::Contract.approvalProgram() -> uint64: | ||
main: | ||
intcblock 1 | ||
bytecblock 0x151f7c750006636f6d6d6f6e | ||
txn ApplicationID | ||
bnz main_after_if_else@2 | ||
// tests/artifacts/multi-inheritance/contract.algo.ts:6 | ||
// stateCommon = GlobalState<uint64>({ initialValue: 123 }) | ||
pushbytes "stateCommon" | ||
pushint 123 // 123 | ||
app_global_put | ||
// tests/artifacts/multi-inheritance/contract.algo.ts:18 | ||
// stateOne = GlobalState({ initialValue: Uint64(45) }) | ||
pushbytes "stateOne" | ||
pushint 45 // 45 | ||
app_global_put | ||
|
||
main_after_if_else@2: | ||
// tests/artifacts/multi-inheritance/contract.algo.ts:17 | ||
// export class BaseOne extends CommonBase { | ||
txn NumAppArgs | ||
bz main_bare_routing@10 | ||
pushbytess 0xc32533e3 0x455c8d09 0xf9f5142c // method "methodOne()string", method "methodCommon()string", method "b2CantOverride()string" | ||
txna ApplicationArgs 0 | ||
match main_methodOne_route@5 main_methodCommon_route@6 main_b2CantOverride_route@7 | ||
|
||
main_after_if_else@14: | ||
// tests/artifacts/multi-inheritance/contract.algo.ts:17 | ||
// export class BaseOne extends CommonBase { | ||
pushint 0 // 0 | ||
return | ||
|
||
main_b2CantOverride_route@7: | ||
// tests/artifacts/multi-inheritance/contract.algo.ts:12 | ||
// b2CantOverride(): string { | ||
txn OnCompletion | ||
! | ||
assert // OnCompletion is not NoOp | ||
txn ApplicationID | ||
assert // can only call when not creating | ||
bytec_0 // 0x151f7c750006636f6d6d6f6e | ||
log | ||
intc_0 // 1 | ||
return | ||
|
||
main_methodCommon_route@6: | ||
// tests/artifacts/multi-inheritance/contract.algo.ts:8 | ||
// methodCommon() { | ||
txn OnCompletion | ||
! | ||
assert // OnCompletion is not NoOp | ||
txn ApplicationID | ||
assert // can only call when not creating | ||
bytec_0 // 0x151f7c750006636f6d6d6f6e | ||
log | ||
intc_0 // 1 | ||
return | ||
|
||
main_methodOne_route@5: | ||
// tests/artifacts/multi-inheritance/contract.algo.ts:19 | ||
// methodOne() { | ||
txn OnCompletion | ||
! | ||
assert // OnCompletion is not NoOp | ||
txn ApplicationID | ||
assert // can only call when not creating | ||
pushbytes 0x151f7c750008626173652d6f6e65 | ||
log | ||
intc_0 // 1 | ||
return | ||
|
||
main_bare_routing@10: | ||
// tests/artifacts/multi-inheritance/contract.algo.ts:17 | ||
// export class BaseOne extends CommonBase { | ||
txn OnCompletion | ||
bnz main_after_if_else@14 | ||
txn ApplicationID | ||
! | ||
assert // can only call when creating | ||
intc_0 // 1 | ||
return |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
{ | ||
"hints": { | ||
"methodOne()string": { | ||
"call_config": { | ||
"no_op": "CALL" | ||
} | ||
}, | ||
"methodCommon()string": { | ||
"call_config": { | ||
"no_op": "CALL" | ||
} | ||
}, | ||
"b2CantOverride()string": { | ||
"call_config": { | ||
"no_op": "CALL" | ||
} | ||
} | ||
}, | ||
"source": { | ||
"approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMQogICAgYnl0ZWNibG9jayAweDE1MWY3Yzc1MDAwNjYzNmY2ZDZkNmY2ZQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL211bHRpLWluaGVyaXRhbmNlL2NvbnRyYWN0LmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvbXVsdGktaW5oZXJpdGFuY2UvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gc3RhdGVPbmUgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDQ1KSB9KQogICAgcHVzaGJ5dGVzICJzdGF0ZU9uZSIKICAgIHB1c2hpbnQgNDUgLy8gNDUKICAgIGFwcF9nbG9iYWxfcHV0CgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9tdWx0aS1pbmhlcml0YW5jZS9jb250cmFjdC5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZU9uZSBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDEwCiAgICBwdXNoYnl0ZXNzIDB4YzMyNTMzZTMgMHg0NTVjOGQwOSAweGY5ZjUxNDJjIC8vIG1ldGhvZCAibWV0aG9kT25lKClzdHJpbmciLCBtZXRob2QgIm1ldGhvZENvbW1vbigpc3RyaW5nIiwgbWV0aG9kICJiMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggbWFpbl9tZXRob2RPbmVfcm91dGVANSBtYWluX21ldGhvZENvbW1vbl9yb3V0ZUA2IG1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVANwoKbWFpbl9hZnRlcl9pZl9lbHNlQDE0OgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL211bHRpLWluaGVyaXRhbmNlL2NvbnRyYWN0LmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBwdXNoaW50IDAgLy8gMAogICAgcmV0dXJuCgptYWluX2IyQ2FudE92ZXJyaWRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvbXVsdGktaW5oZXJpdGFuY2UvY29udHJhY3QuYWxnby50czoxMgogICAgLy8gYjJDYW50T3ZlcnJpZGUoKTogc3RyaW5nIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1MDAwNjYzNmY2ZDZkNmY2ZQogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX21ldGhvZENvbW1vbl9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL211bHRpLWluaGVyaXRhbmNlL2NvbnRyYWN0LmFsZ28udHM6OAogICAgLy8gbWV0aG9kQ29tbW9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUwMDA2NjM2ZjZkNmQ2ZjZlCiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fbWV0aG9kT25lX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvbXVsdGktaW5oZXJpdGFuY2UvY29udHJhY3QuYWxnby50czoxOQogICAgLy8gbWV0aG9kT25lKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NTAwMDg2MjYxNzM2NTJkNmY2ZTY1CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fYmFyZV9yb3V0aW5nQDEwOgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL211bHRpLWluaGVyaXRhbmNlL2NvbnRyYWN0LmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDE0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgIQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgo=", | ||
"clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" | ||
}, | ||
"state": { | ||
"global": { | ||
"num_byte_slices": 0, | ||
"num_uints": 2 | ||
}, | ||
"local": { | ||
"num_byte_slices": 0, | ||
"num_uints": 0 | ||
} | ||
}, | ||
"schema": { | ||
"global": { | ||
"declared": { | ||
"stateCommon": { | ||
"type": "uint64", | ||
"key": "stateCommon" | ||
}, | ||
"stateOne": { | ||
"type": "uint64", | ||
"key": "stateOne" | ||
} | ||
}, | ||
"reserved": {} | ||
}, | ||
"local": { | ||
"declared": {}, | ||
"reserved": {} | ||
} | ||
}, | ||
"contract": { | ||
"name": "BaseOne", | ||
"methods": [ | ||
{ | ||
"name": "methodOne", | ||
"args": [], | ||
"readonly": false, | ||
"returns": { | ||
"type": "string" | ||
} | ||
}, | ||
{ | ||
"name": "methodCommon", | ||
"args": [], | ||
"readonly": false, | ||
"returns": { | ||
"type": "string" | ||
} | ||
}, | ||
{ | ||
"name": "b2CantOverride", | ||
"args": [], | ||
"readonly": false, | ||
"returns": { | ||
"type": "string" | ||
} | ||
} | ||
], | ||
"networks": {} | ||
}, | ||
"bare_call_config": { | ||
"no_op": "CREATE" | ||
} | ||
} |
149 changes: 149 additions & 0 deletions
149
tests/artifacts/multi-inheritance/data/BaseOne.arc56.json
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,149 @@ | ||
{ | ||
"name": "BaseOne", | ||
"structs": {}, | ||
"methods": [ | ||
{ | ||
"name": "methodOne", | ||
"args": [], | ||
"returns": { | ||
"type": "string" | ||
}, | ||
"actions": { | ||
"create": [], | ||
"call": [ | ||
"NoOp" | ||
] | ||
}, | ||
"readonly": false, | ||
"events": [], | ||
"recommendations": {} | ||
}, | ||
{ | ||
"name": "methodCommon", | ||
"args": [], | ||
"returns": { | ||
"type": "string" | ||
}, | ||
"actions": { | ||
"create": [], | ||
"call": [ | ||
"NoOp" | ||
] | ||
}, | ||
"readonly": false, | ||
"events": [], | ||
"recommendations": {} | ||
}, | ||
{ | ||
"name": "b2CantOverride", | ||
"args": [], | ||
"returns": { | ||
"type": "string" | ||
}, | ||
"actions": { | ||
"create": [], | ||
"call": [ | ||
"NoOp" | ||
] | ||
}, | ||
"readonly": false, | ||
"events": [], | ||
"recommendations": {} | ||
} | ||
], | ||
"arcs": [ | ||
22, | ||
28 | ||
], | ||
"networks": {}, | ||
"state": { | ||
"schema": { | ||
"global": { | ||
"ints": 2, | ||
"bytes": 0 | ||
}, | ||
"local": { | ||
"ints": 0, | ||
"bytes": 0 | ||
} | ||
}, | ||
"keys": { | ||
"global": { | ||
"stateOne": { | ||
"keyType": "AVMString", | ||
"valueType": "AVMUint64", | ||
"key": "c3RhdGVPbmU=" | ||
}, | ||
"stateCommon": { | ||
"keyType": "AVMString", | ||
"valueType": "AVMUint64", | ||
"key": "c3RhdGVDb21tb24=" | ||
} | ||
}, | ||
"local": {}, | ||
"box": {} | ||
}, | ||
"maps": { | ||
"global": {}, | ||
"local": {}, | ||
"box": {} | ||
} | ||
}, | ||
"bareActions": { | ||
"create": [ | ||
"NoOp" | ||
], | ||
"call": [] | ||
}, | ||
"sourceInfo": { | ||
"approval": { | ||
"sourceInfo": [ | ||
{ | ||
"pc": [ | ||
92, | ||
103, | ||
114 | ||
], | ||
"errorMessage": "OnCompletion is not NoOp" | ||
}, | ||
{ | ||
"pc": [ | ||
145 | ||
], | ||
"errorMessage": "can only call when creating" | ||
}, | ||
{ | ||
"pc": [ | ||
95, | ||
106, | ||
117 | ||
], | ||
"errorMessage": "can only call when not creating" | ||
} | ||
], | ||
"pcOffsetMethod": "none" | ||
}, | ||
"clear": { | ||
"sourceInfo": [], | ||
"pcOffsetMethod": "none" | ||
} | ||
}, | ||
"source": { | ||
"approval": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMQogICAgYnl0ZWNibG9jayAweDE1MWY3Yzc1MDAwNjYzNmY2ZDZkNmY2ZQogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL211bHRpLWluaGVyaXRhbmNlL2NvbnRyYWN0LmFsZ28udHM6NgogICAgLy8gc3RhdGVDb21tb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAxMjMgfSkKICAgIHB1c2hieXRlcyAic3RhdGVDb21tb24iCiAgICBwdXNoaW50IDEyMyAvLyAxMjMKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvbXVsdGktaW5oZXJpdGFuY2UvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gc3RhdGVPbmUgPSBHbG9iYWxTdGF0ZSh7IGluaXRpYWxWYWx1ZTogVWludDY0KDQ1KSB9KQogICAgcHVzaGJ5dGVzICJzdGF0ZU9uZSIKICAgIHB1c2hpbnQgNDUgLy8gNDUKICAgIGFwcF9nbG9iYWxfcHV0CgptYWluX2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIHRlc3RzL2FydGlmYWN0cy9tdWx0aS1pbmhlcml0YW5jZS9jb250cmFjdC5hbGdvLnRzOjE3CiAgICAvLyBleHBvcnQgY2xhc3MgQmFzZU9uZSBleHRlbmRzIENvbW1vbkJhc2UgewogICAgdHhuIE51bUFwcEFyZ3MKICAgIGJ6IG1haW5fYmFyZV9yb3V0aW5nQDEwCiAgICBwdXNoYnl0ZXNzIDB4YzMyNTMzZTMgMHg0NTVjOGQwOSAweGY5ZjUxNDJjIC8vIG1ldGhvZCAibWV0aG9kT25lKClzdHJpbmciLCBtZXRob2QgIm1ldGhvZENvbW1vbigpc3RyaW5nIiwgbWV0aG9kICJiMkNhbnRPdmVycmlkZSgpc3RyaW5nIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggbWFpbl9tZXRob2RPbmVfcm91dGVANSBtYWluX21ldGhvZENvbW1vbl9yb3V0ZUA2IG1haW5fYjJDYW50T3ZlcnJpZGVfcm91dGVANwoKbWFpbl9hZnRlcl9pZl9lbHNlQDE0OgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL211bHRpLWluaGVyaXRhbmNlL2NvbnRyYWN0LmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICBwdXNoaW50IDAgLy8gMAogICAgcmV0dXJuCgptYWluX2IyQ2FudE92ZXJyaWRlX3JvdXRlQDc6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvbXVsdGktaW5oZXJpdGFuY2UvY29udHJhY3QuYWxnby50czoxMgogICAgLy8gYjJDYW50T3ZlcnJpZGUoKTogc3RyaW5nIHsKICAgIHR4biBPbkNvbXBsZXRpb24KICAgICEKICAgIGFzc2VydCAvLyBPbkNvbXBsZXRpb24gaXMgbm90IE5vT3AKICAgIHR4biBBcHBsaWNhdGlvbklECiAgICBhc3NlcnQgLy8gY2FuIG9ubHkgY2FsbCB3aGVuIG5vdCBjcmVhdGluZwogICAgYnl0ZWNfMCAvLyAweDE1MWY3Yzc1MDAwNjYzNmY2ZDZkNmY2ZQogICAgbG9nCiAgICBpbnRjXzAgLy8gMQogICAgcmV0dXJuCgptYWluX21ldGhvZENvbW1vbl9yb3V0ZUA2OgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL211bHRpLWluaGVyaXRhbmNlL2NvbnRyYWN0LmFsZ28udHM6OAogICAgLy8gbWV0aG9kQ29tbW9uKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBieXRlY18wIC8vIDB4MTUxZjdjNzUwMDA2NjM2ZjZkNmQ2ZjZlCiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fbWV0aG9kT25lX3JvdXRlQDU6CiAgICAvLyB0ZXN0cy9hcnRpZmFjdHMvbXVsdGktaW5oZXJpdGFuY2UvY29udHJhY3QuYWxnby50czoxOQogICAgLy8gbWV0aG9kT25lKCkgewogICAgdHhuIE9uQ29tcGxldGlvbgogICAgIQogICAgYXNzZXJ0IC8vIE9uQ29tcGxldGlvbiBpcyBub3QgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGFzc2VydCAvLyBjYW4gb25seSBjYWxsIHdoZW4gbm90IGNyZWF0aW5nCiAgICBwdXNoYnl0ZXMgMHgxNTFmN2M3NTAwMDg2MjYxNzM2NTJkNmY2ZTY1CiAgICBsb2cKICAgIGludGNfMCAvLyAxCiAgICByZXR1cm4KCm1haW5fYmFyZV9yb3V0aW5nQDEwOgogICAgLy8gdGVzdHMvYXJ0aWZhY3RzL211bHRpLWluaGVyaXRhbmNlL2NvbnRyYWN0LmFsZ28udHM6MTcKICAgIC8vIGV4cG9ydCBjbGFzcyBCYXNlT25lIGV4dGVuZHMgQ29tbW9uQmFzZSB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICBibnogbWFpbl9hZnRlcl9pZl9lbHNlQDE0CiAgICB0eG4gQXBwbGljYXRpb25JRAogICAgIQogICAgYXNzZXJ0IC8vIGNhbiBvbmx5IGNhbGwgd2hlbiBjcmVhdGluZwogICAgaW50Y18wIC8vIDEKICAgIHJldHVybgo=", | ||
"clear": "I3ByYWdtYSB2ZXJzaW9uIDEwCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg==" | ||
}, | ||
"byteCode": { | ||
"approval": "CiABASYBDBUffHUABmNvbW1vbjEYQAAdgAtzdGF0ZUNvbW1vboF7Z4AIc3RhdGVPbmWBLWcxG0EAT4IDBMMlM+MERVyNCQT59RQsNhoAjgMAGQAOAAOBAEMxGRREMRhEKLAiQzEZFEQxGEQosCJDMRkURDEYRIAOFR98dQAIYmFzZS1vbmWwIkMxGUD/yDEYFEQiQw==", | ||
"clear": "CoEBQw==" | ||
}, | ||
"compilerInfo": { | ||
"compiler": "puya", | ||
"compilerVersion": { | ||
"major": 4, | ||
"minor": 1, | ||
"patch": 1 | ||
} | ||
}, | ||
"events": [], | ||
"templateVariables": {} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
#pragma version 10 | ||
#pragma typetrack false | ||
|
||
// @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64: | ||
main: | ||
pushint 1 // 1 | ||
return |
Oops, something went wrong.