Skip to content

Commit 3860364

Browse files
committed
functional raffle test
1 parent 6f417d6 commit 3860364

14 files changed

+3509
-1069
lines changed

examples/raffle/MockVRFBeaconClient.ts

Lines changed: 448 additions & 0 deletions
Large diffs are not rendered by default.

examples/raffle/NFTRaffleClient.ts

Lines changed: 962 additions & 0 deletions
Large diffs are not rendered by default.
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
#pragma version 9
2+
3+
// This TEAL was generated by TEALScript v0.63.0
4+
// https://github.com/algorandfoundation/TEALScript
5+
6+
// This contract is compliant with and/or implements the following ARCs: [ ARC4 ]
7+
8+
// The following ten lines of TEAL handle initial program flow
9+
// This pattern is used to make it easy for anyone to parse the start of the program and determine if a specific action is allowed
10+
// Here, action refers to the OnComplete in combination with whether the app is being created or called
11+
// Every possible action for this contract is represented in the switch statement
12+
// If the action is not implmented in the contract, its repsective branch will be "NOT_IMPLMENTED" which just contains "err"
13+
txn ApplicationID
14+
int 0
15+
>
16+
int 6
17+
*
18+
txn OnCompletion
19+
+
20+
switch create_NoOp NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED NOT_IMPLEMENTED call_NoOp
21+
22+
NOT_IMPLEMENTED:
23+
err
24+
25+
// must_get(bytes,uint64)byte[]
26+
abi_route_must_get:
27+
// data: byte[]
28+
txna ApplicationArgs 2
29+
extract 2 0
30+
31+
// _round: uint64
32+
txna ApplicationArgs 1
33+
btoi
34+
35+
// execute must_get(bytes,uint64)byte[]
36+
callsub must_get
37+
int 1
38+
return
39+
40+
must_get:
41+
proto 2 0
42+
43+
// examples/raffle/raffle.algo.ts:200
44+
// return sha256(data + itob(globals.round)) as bytes;
45+
frame_dig -2 // data: bytes
46+
global Round
47+
itob
48+
concat
49+
sha256
50+
dup
51+
len
52+
itob
53+
extract 6 2
54+
swap
55+
concat
56+
byte 0x151f7c75
57+
swap
58+
concat
59+
log
60+
retsub
61+
62+
abi_route_createApplication:
63+
int 1
64+
return
65+
66+
create_NoOp:
67+
method "createApplication()void"
68+
txna ApplicationArgs 0
69+
match abi_route_createApplication
70+
err
71+
72+
call_NoOp:
73+
method "must_get(uint64,byte[])byte[]"
74+
txna ApplicationArgs 0
75+
match abi_route_must_get
76+
err
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
{
2+
"hints": {
3+
"must_get(uint64,byte[])byte[]": {
4+
"call_config": {
5+
"no_op": "CALL"
6+
}
7+
},
8+
"createApplication()void": {
9+
"call_config": {
10+
"no_op": "CREATE"
11+
}
12+
}
13+
},
14+
"bare_call_config": {
15+
"no_op": "NEVER",
16+
"opt_in": "NEVER",
17+
"close_out": "NEVER",
18+
"update_application": "NEVER",
19+
"delete_application": "NEVER"
20+
},
21+
"schema": {
22+
"local": {
23+
"declared": {},
24+
"reserved": {}
25+
},
26+
"global": {
27+
"declared": {},
28+
"reserved": {}
29+
}
30+
},
31+
"state": {
32+
"global": {
33+
"num_byte_slices": 0,
34+
"num_uints": 0
35+
},
36+
"local": {
37+
"num_byte_slices": 0,
38+
"num_uints": 0
39+
}
40+
},
41+
"source": {
42+
"approval": "I3ByYWdtYSB2ZXJzaW9uIDkKCi8vIFRoaXMgVEVBTCB3YXMgZ2VuZXJhdGVkIGJ5IFRFQUxTY3JpcHQgdjAuNjMuMAovLyBodHRwczovL2dpdGh1Yi5jb20vYWxnb3JhbmRmb3VuZGF0aW9uL1RFQUxTY3JpcHQKCi8vIFRoaXMgY29udHJhY3QgaXMgY29tcGxpYW50IHdpdGggYW5kL29yIGltcGxlbWVudHMgdGhlIGZvbGxvd2luZyBBUkNzOiBbIEFSQzQgXQoKLy8gVGhlIGZvbGxvd2luZyB0ZW4gbGluZXMgb2YgVEVBTCBoYW5kbGUgaW5pdGlhbCBwcm9ncmFtIGZsb3cKLy8gVGhpcyBwYXR0ZXJuIGlzIHVzZWQgdG8gbWFrZSBpdCBlYXN5IGZvciBhbnlvbmUgdG8gcGFyc2UgdGhlIHN0YXJ0IG9mIHRoZSBwcm9ncmFtIGFuZCBkZXRlcm1pbmUgaWYgYSBzcGVjaWZpYyBhY3Rpb24gaXMgYWxsb3dlZAovLyBIZXJlLCBhY3Rpb24gcmVmZXJzIHRvIHRoZSBPbkNvbXBsZXRlIGluIGNvbWJpbmF0aW9uIHdpdGggd2hldGhlciB0aGUgYXBwIGlzIGJlaW5nIGNyZWF0ZWQgb3IgY2FsbGVkCi8vIEV2ZXJ5IHBvc3NpYmxlIGFjdGlvbiBmb3IgdGhpcyBjb250cmFjdCBpcyByZXByZXNlbnRlZCBpbiB0aGUgc3dpdGNoIHN0YXRlbWVudAovLyBJZiB0aGUgYWN0aW9uIGlzIG5vdCBpbXBsbWVudGVkIGluIHRoZSBjb250cmFjdCwgaXRzIHJlcHNlY3RpdmUgYnJhbmNoIHdpbGwgYmUgIk5PVF9JTVBMTUVOVEVEIiB3aGljaCBqdXN0IGNvbnRhaW5zICJlcnIiCnR4biBBcHBsaWNhdGlvbklECmludCAwCj4KaW50IDYKKgp0eG4gT25Db21wbGV0aW9uCisKc3dpdGNoIGNyZWF0ZV9Ob09wIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgTk9UX0lNUExFTUVOVEVEIE5PVF9JTVBMRU1FTlRFRCBOT1RfSU1QTEVNRU5URUQgY2FsbF9Ob09wCgpOT1RfSU1QTEVNRU5URUQ6CgllcnIKCi8vIG11c3RfZ2V0KGJ5dGVzLHVpbnQ2NClieXRlW10KYWJpX3JvdXRlX211c3RfZ2V0OgoJLy8gZGF0YTogYnl0ZVtdCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAyCglleHRyYWN0IDIgMAoKCS8vIF9yb3VuZDogdWludDY0Cgl0eG5hIEFwcGxpY2F0aW9uQXJncyAxCglidG9pCgoJLy8gZXhlY3V0ZSBtdXN0X2dldChieXRlcyx1aW50NjQpYnl0ZVtdCgljYWxsc3ViIG11c3RfZ2V0CglpbnQgMQoJcmV0dXJuCgptdXN0X2dldDoKCXByb3RvIDIgMAoKCS8vIGV4YW1wbGVzL3JhZmZsZS9yYWZmbGUuYWxnby50czoyMDAKCS8vIHJldHVybiBzaGEyNTYoZGF0YSArIGl0b2IoZ2xvYmFscy5yb3VuZCkpIGFzIGJ5dGVzOwoJZnJhbWVfZGlnIC0yIC8vIGRhdGE6IGJ5dGVzCglnbG9iYWwgUm91bmQKCWl0b2IKCWNvbmNhdAoJc2hhMjU2CglkdXAKCWxlbgoJaXRvYgoJZXh0cmFjdCA2IDIKCXN3YXAKCWNvbmNhdAoJYnl0ZSAweDE1MWY3Yzc1Cglzd2FwCgljb25jYXQKCWxvZwoJcmV0c3ViCgphYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb246CglpbnQgMQoJcmV0dXJuCgpjcmVhdGVfTm9PcDoKCW1ldGhvZCAiY3JlYXRlQXBwbGljYXRpb24oKXZvaWQiCgl0eG5hIEFwcGxpY2F0aW9uQXJncyAwCgltYXRjaCBhYmlfcm91dGVfY3JlYXRlQXBwbGljYXRpb24KCWVycgoKY2FsbF9Ob09wOgoJbWV0aG9kICJtdXN0X2dldCh1aW50NjQsYnl0ZVtdKWJ5dGVbXSIKCXR4bmEgQXBwbGljYXRpb25BcmdzIDAKCW1hdGNoIGFiaV9yb3V0ZV9tdXN0X2dldAoJZXJy",
43+
"clear": "I3ByYWdtYSB2ZXJzaW9uIDk="
44+
},
45+
"contract": {
46+
"name": "MockVRFBeacon",
47+
"desc": "",
48+
"methods": [
49+
{
50+
"name": "must_get",
51+
"args": [
52+
{
53+
"name": "_round",
54+
"type": "uint64",
55+
"desc": ""
56+
},
57+
{
58+
"name": "data",
59+
"type": "byte[]",
60+
"desc": ""
61+
}
62+
],
63+
"desc": "",
64+
"returns": {
65+
"type": "byte[]",
66+
"desc": ""
67+
}
68+
},
69+
{
70+
"name": "createApplication",
71+
"desc": "",
72+
"returns": {
73+
"type": "void",
74+
"desc": ""
75+
},
76+
"args": []
77+
}
78+
]
79+
}
80+
}
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
{
2+
"name": "MockVRFBeacon",
3+
"desc": "",
4+
"methods": [
5+
{
6+
"name": "must_get",
7+
"args": [
8+
{
9+
"name": "_round",
10+
"type": "uint64",
11+
"desc": ""
12+
},
13+
{
14+
"name": "data",
15+
"type": "byte[]",
16+
"desc": ""
17+
}
18+
],
19+
"desc": "",
20+
"returns": {
21+
"type": "byte[]",
22+
"desc": ""
23+
}
24+
},
25+
{
26+
"name": "createApplication",
27+
"desc": "",
28+
"returns": {
29+
"type": "void",
30+
"desc": ""
31+
},
32+
"args": []
33+
}
34+
]
35+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
#pragma version 9

0 commit comments

Comments
 (0)