Program protocol_transfers.aleo
Program ID
protocol_transfers.aleo
Deployment transaction
Owner signature
sign1hhzrfc4rmr2zk3vyxeqgpa5e4qvap6c05gymx7jkjm6am8h2lgpwdkldmg7adv2kqvt33zyvs0fp0anchp6a3z88tccd4cnsw0m96qqh7y00jwagn9ae9ytnk5qj7za66k5nruz2ex0y87flnlkctk2eqq62xlryqk35v7q8k82fxepzes2rqz8rhsaz07yqr0p85g3mhrpssq2p2xn
Times called
0
Similar programs
0
Imports
Mappings
-
Structs
Proposal
Share
Custody
ValidatorShareData
Share
Custody
ValidatorShareData
Records
ValidatorShare
WithdrawRequest
DestinationShare
WithdrawRequest
DestinationShare
Functions
-
Transitions
process_request_as_validator(ValidatorShare, WithdrawRequest, public u64) -> DestinationShare
submit_shares_to_validators([ValidatorShareData; 16u32], Custody) -> (ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare)
submit_requests_to_validators([address; 16u32], field, address) -> (WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest)
submit_shares_to_validators([ValidatorShareData; 16u32], Custody) -> (ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare, ValidatorShare)
submit_requests_to_validators([address; 16u32], field, address) -> (WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest, WithdrawRequest)
Program Source Code (Aleo Instruction) Upload Leo source
import credits.aleo; import protocol_core.aleo; program protocol_transfers.aleo; struct Proposal: validators as [address; 16u32]; threshold as u8; current_validator_set_index as u64; struct Share: share_val as field; index as field; struct Custody: initiator as address; data_address as address; threshold as u8; struct ValidatorShareData: validator as address; share as Share; record ValidatorShare: owner as address.private; share as Share.private; custody as Custody.private; record WithdrawRequest: owner as address.private; custody_hash as field.private; to as address.private; record DestinationShare: owner as address.private; share as Share.private; function process_request_as_validator: input r0 as ValidatorShare.record; input r1 as WithdrawRequest.record; input r2 as u64.public; hash.bhp256 r0.custody into r3 as field; assert.eq r1.custody_hash r3; cast r1.to r0.share into r4 as DestinationShare.record; call credits.aleo/transfer_public self.caller r2 into r5; call protocol_core.aleo/process_request_as_validator r3 r2 r0.custody.threshold into r6; async process_request_as_validator r6 r5 into r7; output r4 as DestinationShare.record; output r7 as protocol_transfers.aleo/process_request_as_validator.future; finalize process_request_as_validator: input r0 as protocol_core.aleo/process_request_as_validator.future; input r1 as credits.aleo/transfer_public.future; await r0; await r1; function submit_shares_to_validators: input r0 as [ValidatorShareData; 16u32].private; input r1 as Custody.private; assert.eq self.caller secret_custody_protocol.aleo; cast r0[0].validator r0[0].share r1 into r2 as ValidatorShare.record; cast r0[1].validator r0[1].share r1 into r3 as ValidatorShare.record; cast r0[2].validator r0[2].share r1 into r4 as ValidatorShare.record; cast r0[3].validator r0[3].share r1 into r5 as ValidatorShare.record; cast r0[4].validator r0[4].share r1 into r6 as ValidatorShare.record; cast r0[5].validator r0[5].share r1 into r7 as ValidatorShare.record; cast r0[6].validator r0[6].share r1 into r8 as ValidatorShare.record; cast r0[7].validator r0[7].share r1 into r9 as ValidatorShare.record; cast r0[8].validator r0[8].share r1 into r10 as ValidatorShare.record; cast r0[9].validator r0[9].share r1 into r11 as ValidatorShare.record; cast r0[10].validator r0[10].share r1 into r12 as ValidatorShare.record; cast r0[11].validator r0[11].share r1 into r13 as ValidatorShare.record; cast r0[12].validator r0[12].share r1 into r14 as ValidatorShare.record; cast r0[13].validator r0[13].share r1 into r15 as ValidatorShare.record; cast r0[14].validator r0[14].share r1 into r16 as ValidatorShare.record; cast r0[15].validator r0[15].share r1 into r17 as ValidatorShare.record; output r2 as ValidatorShare.record; output r3 as ValidatorShare.record; output r4 as ValidatorShare.record; output r5 as ValidatorShare.record; output r6 as ValidatorShare.record; output r7 as ValidatorShare.record; output r8 as ValidatorShare.record; output r9 as ValidatorShare.record; output r10 as ValidatorShare.record; output r11 as ValidatorShare.record; output r12 as ValidatorShare.record; output r13 as ValidatorShare.record; output r14 as ValidatorShare.record; output r15 as ValidatorShare.record; output r16 as ValidatorShare.record; output r17 as ValidatorShare.record; function submit_requests_to_validators: input r0 as [address; 16u32].private; input r1 as field.private; input r2 as address.private; assert.eq self.caller secret_custody_protocol.aleo; cast r0[0] r1 r2 into r3 as WithdrawRequest.record; cast r0[1] r1 r2 into r4 as WithdrawRequest.record; cast r0[2] r1 r2 into r5 as WithdrawRequest.record; cast r0[3] r1 r2 into r6 as WithdrawRequest.record; cast r0[4] r1 r2 into r7 as WithdrawRequest.record; cast r0[5] r1 r2 into r8 as WithdrawRequest.record; cast r0[6] r1 r2 into r9 as WithdrawRequest.record; cast r0[7] r1 r2 into r10 as WithdrawRequest.record; cast r0[8] r1 r2 into r11 as WithdrawRequest.record; cast r0[9] r1 r2 into r12 as WithdrawRequest.record; cast r0[10] r1 r2 into r13 as WithdrawRequest.record; cast r0[11] r1 r2 into r14 as WithdrawRequest.record; cast r0[12] r1 r2 into r15 as WithdrawRequest.record; cast r0[13] r1 r2 into r16 as WithdrawRequest.record; cast r0[14] r1 r2 into r17 as WithdrawRequest.record; cast r0[15] r1 r2 into r18 as WithdrawRequest.record; output r3 as WithdrawRequest.record; output r4 as WithdrawRequest.record; output r5 as WithdrawRequest.record; output r6 as WithdrawRequest.record; output r7 as WithdrawRequest.record; output r8 as WithdrawRequest.record; output r9 as WithdrawRequest.record; output r10 as WithdrawRequest.record; output r11 as WithdrawRequest.record; output r12 as WithdrawRequest.record; output r13 as WithdrawRequest.record; output r14 as WithdrawRequest.record; output r15 as WithdrawRequest.record; output r16 as WithdrawRequest.record; output r17 as WithdrawRequest.record; output r18 as WithdrawRequest.record;
Block height | Timestamp | Transition ID | Function call | State |
Program has no mappings.