Skip to content

Commit 68cefe7

Browse files
Update wasm/tests/offchain.rs
Co-authored-by: Mike Turner <[email protected]> Signed-off-by: Roy Rotstein <[email protected]>
1 parent 3bab401 commit 68cefe7

File tree

1 file changed

+0
-379
lines changed

1 file changed

+0
-379
lines changed

wasm/tests/offchain.rs

Lines changed: 0 additions & 379 deletions
Original file line numberDiff line numberDiff line change
@@ -134,385 +134,6 @@ function spend:
134134
output r4 as PuzzleArcadeCoin.record;
135135
"#;
136136

137-
pub const CREDITS_ALEO_PROGRAM: &str = r#"
138-
program credits.aleo;
139-
140-
mapping committee:
141-
key as address.public;
142-
value as committee_state.public;
143-
144-
struct committee_state:
145-
is_open as boolean;
146-
commission as u8;
147-
148-
mapping delegated:
149-
key as address.public;
150-
value as u64.public;
151-
152-
mapping metadata:
153-
key as address.public;
154-
value as u32.public;
155-
156-
mapping bonded:
157-
key as address.public;
158-
value as bond_state.public;
159-
160-
struct bond_state:
161-
validator as address;
162-
microcredits as u64;
163-
164-
mapping unbonding:
165-
key as address.public;
166-
value as unbond_state.public;
167-
168-
struct unbond_state:
169-
microcredits as u64;
170-
height as u32;
171-
172-
mapping account:
173-
key as address.public;
174-
value as u64.public;
175-
176-
mapping withdraw:
177-
key as address.public;
178-
value as address.public;
179-
180-
record credits:
181-
owner as address.private;
182-
microcredits as u64.private;
183-
184-
function bond_validator:
185-
input r0 as address.public;
186-
input r1 as u64.public;
187-
input r2 as u8.public;
188-
assert.neq self.signer r0 ;
189-
gte r1 1000000u64 into r3;
190-
assert.eq r3 true ;
191-
gt r2 100u8 into r4;
192-
assert.neq r4 true ;
193-
async bond_validator self.signer r0 r1 r2 into r5;
194-
output r5 as credits.aleo/bond_validator.future;
195-
196-
finalize bond_validator:
197-
input r0 as address.public;
198-
input r1 as address.public;
199-
input r2 as u64.public;
200-
input r3 as u8.public;
201-
get.or_use withdraw[r0] r1 into r4;
202-
assert.eq r1 r4 ;
203-
cast true r3 into r5 as committee_state;
204-
get.or_use committee[r0] r5 into r6;
205-
assert.eq r3 r6.commission ;
206-
cast r0 0u64 into r7 as bond_state;
207-
get.or_use bonded[r0] r7 into r8;
208-
assert.eq r8.validator r0 ;
209-
add r8.microcredits r2 into r9;
210-
cast r0 r9 into r10 as bond_state;
211-
get.or_use delegated[r0] 0u64 into r11;
212-
add r2 r11 into r12;
213-
gte r12 10000000000000u64 into r13;
214-
assert.eq r13 true ;
215-
get account[r0] into r14;
216-
sub r14 r2 into r15;
217-
contains committee[r0] into r16;
218-
branch.eq r16 true to validator_in_committee;
219-
set r4 into withdraw[r0];
220-
gte r2 100000000u64 into r17;
221-
assert.eq r17 true ;
222-
get.or_use metadata[aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc] 0u32 into r18;
223-
add r18 1u32 into r19;
224-
set r19 into metadata[aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc];
225-
contains unbonding[r0] into r20;
226-
assert.eq r20 false ;
227-
position validator_in_committee;
228-
set r6 into committee[r0];
229-
set r12 into delegated[r0];
230-
set r10 into bonded[r0];
231-
set r15 into account[r0];
232-
233-
function bond_public:
234-
input r0 as address.public;
235-
input r1 as address.public;
236-
input r2 as u64.public;
237-
gte r2 1000000u64 into r3;
238-
assert.eq r3 true ;
239-
assert.neq self.caller r0 ;
240-
async bond_public self.caller r0 r1 r2 into r4;
241-
output r4 as credits.aleo/bond_public.future;
242-
243-
finalize bond_public:
244-
input r0 as address.public;
245-
input r1 as address.public;
246-
input r2 as address.public;
247-
input r3 as u64.public;
248-
get.or_use withdraw[r0] r2 into r4;
249-
assert.eq r2 r4 ;
250-
contains bonded[r0] into r5;
251-
branch.eq r5 true to continue_bond_delegator;
252-
set r2 into withdraw[r0];
253-
cast true 0u8 into r6 as committee_state;
254-
get.or_use committee[r1] r6 into r7;
255-
assert.eq r7.is_open true ;
256-
get.or_use metadata[aleo1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqanmpl0] 0u32 into r8;
257-
add r8 1u32 into r9;
258-
lte r9 100000u32 into r10;
259-
assert.eq r10 true ;
260-
set r9 into metadata[aleo1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqanmpl0];
261-
position continue_bond_delegator;
262-
cast r1 0u64 into r11 as bond_state;
263-
get.or_use bonded[r0] r11 into r12;
264-
assert.eq r12.validator r1 ;
265-
add r12.microcredits r3 into r13;
266-
gte r13 10000000000u64 into r14;
267-
assert.eq r14 true ;
268-
cast r1 r13 into r15 as bond_state;
269-
get account[r0] into r16;
270-
sub r16 r3 into r17;
271-
get.or_use delegated[r1] 0u64 into r18;
272-
add r3 r18 into r19;
273-
contains unbonding[r1] into r20;
274-
assert.eq r20 false ;
275-
set r15 into bonded[r0];
276-
set r17 into account[r0];
277-
set r19 into delegated[r1];
278-
279-
function unbond_public:
280-
input r0 as address.public;
281-
input r1 as u64.public;
282-
async unbond_public self.caller r0 r1 into r2;
283-
output r2 as credits.aleo/unbond_public.future;
284-
285-
finalize unbond_public:
286-
input r0 as address.public;
287-
input r1 as address.public;
288-
input r2 as u64.public;
289-
add block.height 360u32 into r3;
290-
cast 0u64 r3 into r4 as unbond_state;
291-
get bonded[r1] into r5;
292-
get withdraw[r1] into r6;
293-
is.eq r0 r6 into r7;
294-
contains withdraw[r5.validator] into r8;
295-
get.or_use withdraw[r5.validator] aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc into r9;
296-
is.eq r0 r9 into r10;
297-
and r8 r10 into r11;
298-
or r7 r11 into r12;
299-
assert.eq r12 true ;
300-
is.eq r5.validator r1 into r13;
301-
branch.eq r13 true to unbond_validator;
302-
get.or_use unbonding[r1] r4 into r14;
303-
get delegated[r5.validator] into r15;
304-
sub r5.microcredits r2 into r16;
305-
lt r16 10000000000u64 into r17;
306-
or r11 r17 into r18;
307-
ternary r18 r5.microcredits r2 into r19;
308-
add r14.microcredits r19 into r20;
309-
cast r20 r3 into r21 as unbond_state;
310-
set r21 into unbonding[r1];
311-
sub r15 r19 into r22;
312-
set r22 into delegated[r5.validator];
313-
branch.eq r18 true to remove_delegator;
314-
cast r5.validator r16 into r23 as bond_state;
315-
set r23 into bonded[r1];
316-
branch.eq true true to end_unbond_delegator;
317-
position remove_delegator;
318-
remove bonded[r1];
319-
get metadata[aleo1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqanmpl0] into r24;
320-
sub r24 1u32 into r25;
321-
set r25 into metadata[aleo1qgqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqanmpl0];
322-
position end_unbond_delegator;
323-
gte r22 10000000000000u64 into r26;
324-
branch.eq r26 true to end;
325-
position unbond_validator;
326-
contains committee[r5.validator] into r27;
327-
nor r13 r27 into r28;
328-
branch.eq r28 true to end;
329-
get committee[r5.validator] into r29;
330-
get bonded[r5.validator] into r30;
331-
get delegated[r5.validator] into r31;
332-
lt r31 10000000000000u64 into r32;
333-
branch.eq r32 true to remove_validator;
334-
sub r31 r2 into r33;
335-
sub r30.microcredits r2 into r34;
336-
gte r34 100000000u64 into r35;
337-
gte r33 10000000000000u64 into r36;
338-
and r35 r36 into r37;
339-
branch.eq r37 false to remove_validator;
340-
get.or_use unbonding[r5.validator] r4 into r38;
341-
add r38.microcredits r2 into r39;
342-
cast r39 r3 into r40 as unbond_state;
343-
set r40 into unbonding[r5.validator];
344-
set r33 into delegated[r5.validator];
345-
cast r5.validator r34 into r41 as bond_state;
346-
set r41 into bonded[r5.validator];
347-
branch.eq true true to end;
348-
position remove_validator;
349-
remove committee[r5.validator];
350-
get metadata[aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc] into r42;
351-
sub r42 1u32 into r43;
352-
set r43 into metadata[aleo1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq3ljyzc];
353-
sub r31 r30.microcredits into r44;
354-
set r44 into delegated[r5.validator];
355-
remove bonded[r5.validator];
356-
get.or_use unbonding[r5.validator] r4 into r45;
357-
add r30.microcredits r45.microcredits into r46;
358-
cast r46 r3 into r47 as unbond_state;
359-
set r47 into unbonding[r5.validator];
360-
position end;
361-
362-
function claim_unbond_public:
363-
input r0 as address.public;
364-
async claim_unbond_public r0 into r1;
365-
output r1 as credits.aleo/claim_unbond_public.future;
366-
367-
finalize claim_unbond_public:
368-
input r0 as address.public;
369-
get unbonding[r0] into r1;
370-
gte block.height r1.height into r2;
371-
assert.eq r2 true ;
372-
get withdraw[r0] into r3;
373-
get.or_use account[r3] 0u64 into r4;
374-
add r1.microcredits r4 into r5;
375-
set r5 into account[r3];
376-
remove unbonding[r0];
377-
contains bonded[r0] into r6;
378-
branch.eq r6 true to end;
379-
remove withdraw[r0];
380-
position end;
381-
382-
function set_validator_state:
383-
input r0 as boolean.public;
384-
async set_validator_state self.caller r0 into r1;
385-
output r1 as credits.aleo/set_validator_state.future;
386-
387-
finalize set_validator_state:
388-
input r0 as address.public;
389-
input r1 as boolean.public;
390-
get committee[r0] into r2;
391-
cast r1 r2.commission into r3 as committee_state;
392-
set r3 into committee[r0];
393-
394-
function transfer_public:
395-
input r0 as address.public;
396-
input r1 as u64.public;
397-
async transfer_public self.caller r0 r1 into r2;
398-
output r2 as credits.aleo/transfer_public.future;
399-
400-
finalize transfer_public:
401-
input r0 as address.public;
402-
input r1 as address.public;
403-
input r2 as u64.public;
404-
get account[r0] into r3;
405-
sub r3 r2 into r4;
406-
set r4 into account[r0];
407-
get.or_use account[r1] 0u64 into r5;
408-
add r5 r2 into r6;
409-
set r6 into account[r1];
410-
411-
function transfer_public_as_signer:
412-
input r0 as address.public;
413-
input r1 as u64.public;
414-
async transfer_public_as_signer self.signer r0 r1 into r2;
415-
output r2 as credits.aleo/transfer_public_as_signer.future;
416-
417-
finalize transfer_public_as_signer:
418-
input r0 as address.public;
419-
input r1 as address.public;
420-
input r2 as u64.public;
421-
get account[r0] into r3;
422-
sub r3 r2 into r4;
423-
set r4 into account[r0];
424-
get.or_use account[r1] 0u64 into r5;
425-
add r5 r2 into r6;
426-
set r6 into account[r1];
427-
428-
function transfer_private:
429-
input r0 as credits.record;
430-
input r1 as address.private;
431-
input r2 as u64.private;
432-
sub r0.microcredits r2 into r3;
433-
cast r1 r2 into r4 as credits.record;
434-
cast r0.owner r3 into r5 as credits.record;
435-
output r4 as credits.record;
436-
output r5 as credits.record;
437-
438-
function transfer_private_to_public:
439-
input r0 as credits.record;
440-
input r1 as address.public;
441-
input r2 as u64.public;
442-
sub r0.microcredits r2 into r3;
443-
cast r0.owner r3 into r4 as credits.record;
444-
async transfer_private_to_public r1 r2 into r5;
445-
output r4 as credits.record;
446-
output r5 as credits.aleo/transfer_private_to_public.future;
447-
448-
finalize transfer_private_to_public:
449-
input r0 as address.public;
450-
input r1 as u64.public;
451-
get.or_use account[r0] 0u64 into r2;
452-
add r1 r2 into r3;
453-
set r3 into account[r0];
454-
455-
function transfer_public_to_private:
456-
input r0 as address.private;
457-
input r1 as u64.public;
458-
cast r0 r1 into r2 as credits.record;
459-
async transfer_public_to_private self.caller r1 into r3;
460-
output r2 as credits.record;
461-
output r3 as credits.aleo/transfer_public_to_private.future;
462-
463-
finalize transfer_public_to_private:
464-
input r0 as address.public;
465-
input r1 as u64.public;
466-
get account[r0] into r2;
467-
sub r2 r1 into r3;
468-
set r3 into account[r0];
469-
470-
function join:
471-
input r0 as credits.record;
472-
input r1 as credits.record;
473-
add r0.microcredits r1.microcredits into r2;
474-
cast r0.owner r2 into r3 as credits.record;
475-
output r3 as credits.record;
476-
477-
function split:
478-
input r0 as credits.record;
479-
input r1 as u64.private;
480-
sub r0.microcredits r1 into r2;
481-
sub r2 10000u64 into r3;
482-
cast r0.owner r1 into r4 as credits.record;
483-
cast r0.owner r3 into r5 as credits.record;
484-
output r4 as credits.record;
485-
output r5 as credits.record;
486-
487-
function fee_private:
488-
input r0 as credits.record;
489-
input r1 as u64.public;
490-
input r2 as u64.public;
491-
input r3 as field.public;
492-
assert.neq r1 0u64 ;
493-
assert.neq r3 0field ;
494-
add r1 r2 into r4;
495-
sub r0.microcredits r4 into r5;
496-
cast r0.owner r5 into r6 as credits.record;
497-
output r6 as credits.record;
498-
499-
function fee_public:
500-
input r0 as u64.public;
501-
input r1 as u64.public;
502-
input r2 as field.public;
503-
assert.neq r0 0u64 ;
504-
assert.neq r2 0field ;
505-
add r0 r1 into r3;
506-
async fee_public self.signer r3 into r4;
507-
output r4 as credits.aleo/fee_public.future;
508-
509-
finalize fee_public:
510-
input r0 as address.public;
511-
input r1 as u64.public;
512-
get account[r0] into r2;
513-
sub r2 r1 into r3;
514-
set r3 into account[r0];
515-
"#;
516137

517138
const RECORD: &str = "{ owner: aleo184vuwr5u7u0ha5f5k44067dd2uaqewxx6pe5ltha5pv99wvhfqxqv339h4.private, microcredits: 2000000u64.private, _nonce: 4106205762862305308495708971985748592380064201230396559307556388725936304984group.public}";
518139
const OFFLINE_QUERY_V1: &str = r#"{"block_height": 456789, "state_paths": {}, "state_root": "sr1flkr8ppfujdrfx7zlcz8v8p8u67ehf4q9m2jum09pkq4rkepluxquyfvcu"}"#;

0 commit comments

Comments
 (0)