Connect Wallet
Program # asfaucet_v1.aleo
Program ID
asfaucet_v1.aleo
Deploy Time
2024-01-23 12:00:08
Deploy Fee
5.623
Block Height
Times Called
236,809
  • 1
    import alphaswap_v1.aleo;

program asfaucet_v1.aleo;

mapping faucets:
    key as field.public;
    value as u128.public;

mapping admins:
    key as address.public;
    value as boolean.public;

function claim:
    input r0 as field.public;
    input r1 as u128.public;
    call alphaswap_v1.aleo/transfer_public r0 self.caller r1 into r2;
    async claim r2 r0 r1 into r3;
    output r3 as asfaucet_v1.aleo/claim.future;
finalize claim:
    input r0 as alphaswap_v1.aleo/transfer_public.future;
    input r1 as field.public;
    input r2 as u128.public;
    await r0;
    get faucets[r1] into r3;
    lte r2 r3 into r4;
    assert.eq r4 true;

function init:
    assert.eq self.caller aleo1uldp2afc9gnfsxd0r2svaecax8quutny5j6ns2qa80yp5uhsac9q35h7h6;
    async init self.caller into r0;
    output r0 as asfaucet_v1.aleo/init.future;
finalize init:
    input r0 as address.public;
    contains admins[r0] into r1;
    not r1 into r2;
    assert.eq r2 true;
    set true into admins[r0];

function set_faucet:
    input r0 as field.public;
    input r1 as u128.public;
    async set_faucet self.caller r0 r1 into r2;
    output r2 as asfaucet_v1.aleo/set_faucet.future;
finalize set_faucet:
    input r0 as address.public;
    input r1 as field.public;
    input r2 as u128.public;
    get admins[r0] into r3;
    assert.eq r3 true;
    set r2 into faucets[r1];

function set_admin:
    input r0 as address.public;
    input r1 as boolean.public;
    async set_admin self.caller r0 r1 into r2;
    output r2 as asfaucet_v1.aleo/set_admin.future;
finalize set_admin:
    input r0 as address.public;
    input r1 as address.public;
    input r2 as boolean.public;
    get admins[r0] into r3;
    assert.eq r3 true;
    set r2 into admins[r1];

function withdraw:
    input r0 as field.public;
    input r1 as address.public;
    input r2 as u128.public;
    call alphaswap_v1.aleo/transfer_public r0 r1 r2 into r3;
    async withdraw r3 self.caller r0 r2 into r4;
    output r4 as asfaucet_v1.aleo/withdraw.future;
finalize withdraw:
    input r0 as alphaswap_v1.aleo/transfer_public.future;
    input r1 as address.public;
    input r2 as field.public;
    input r3 as u128.public;
    await r0;
    get admins[r1] into r4;
    assert.eq r4 true;


  
@ Copyright Aleo Info 2022 All Rights Reserved