Skip to content

Commit b07108c

Browse files
committed
Fix grant disbursement bugs and add grant disbursement tests
1 parent 68409be commit b07108c

File tree

14 files changed

+1054
-243
lines changed

14 files changed

+1054
-243
lines changed

grant_disbursement/build/main.aleo

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ function process_grant:
7272
input r0 as u8.private;
7373
input r1 as u64.private;
7474
input r2 as u128.private;
75-
call credits.aleo/transfer_public self.caller r1 into r3;
75+
call credits.aleo/transfer_public self.signer r1 into r3;
7676
cast r2 into r4 as u64;
7777
call pondo_protocol.aleo/deposit_public_as_signer r1 r4 grant_disbursement.aleo into r5;
7878
call token_registry.aleo/transfer_public_as_signer 1751493913335802797273486270793650302076377624243810059080883537084141842600field grant_disbursement.aleo r2 into r6;
@@ -95,7 +95,7 @@ finalize process_grant:
9595
add r6.supply r8 into r9;
9696
sub r9 r5 into r10;
9797
get pondo_protocol.aleo/balances[0u8] into r11;
98-
get.or_use credits.aleo/account[grant_disbursement.aleo] 0u64 into r12;
98+
get.or_use credits.aleo/account[pondo_protocol.aleo] 0u64 into r12;
9999
get pondo_protocol.aleo/balances[2u8] into r13;
100100
add r11 r12 into r14;
101101
sub r14 r13 into r15;
@@ -104,8 +104,8 @@ finalize process_grant:
104104
mul r17 r10 into r18;
105105
cast r16 into r19 as u128;
106106
div r18 r19 into r20;
107-
mul r20 9_999u128 into r21;
108-
div r21 10_000u128 into r22;
107+
mul r20 999u128 into r21;
108+
div r21 1_000u128 into r22;
109109
gte r5 r22 into r23;
110110
assert.eq r23 true;
111111
get grants[r3] into r24;
@@ -136,14 +136,14 @@ finalize withdraw_rewards:
136136
assert.eq r6 true;
137137
sub r4.paleo_amount r2 into r7;
138138
get pondo_protocol.aleo/protocol_state[0u8] into r8;
139-
is.neq r8 1u8 into r9;
139+
is.neq r8 2u8 into r9;
140140
assert.eq r9 true;
141141
get token_registry.aleo/registered_tokens[1751493913335802797273486270793650302076377624243810059080883537084141842600field] into r10;
142142
get pondo_protocol.aleo/owed_commission[0u8] into r11;
143143
cast r11 into r12 as u128;
144144
add r10.supply r12 into r13;
145145
get pondo_protocol.aleo/balances[0u8] into r14;
146-
get.or_use credits.aleo/account[grant_disbursement.aleo] 0u64 into r15;
146+
get.or_use credits.aleo/account[pondo_protocol.aleo] 0u64 into r15;
147147
get pondo_protocol.aleo/balances[2u8] into r16;
148148
add r14 r15 into r17;
149149
sub r17 r16 into r18;
@@ -179,14 +179,14 @@ finalize withdraw_principal:
179179
assert.eq r6 true;
180180
sub r4.paleo_amount r2 into r7;
181181
get pondo_protocol.aleo/protocol_state[0u8] into r8;
182-
is.neq r8 1u8 into r9;
182+
is.neq r8 2u8 into r9;
183183
assert.eq r9 true;
184184
get token_registry.aleo/registered_tokens[1751493913335802797273486270793650302076377624243810059080883537084141842600field] into r10;
185185
get pondo_protocol.aleo/owed_commission[0u8] into r11;
186186
cast r11 into r12 as u128;
187187
add r10.supply r12 into r13;
188188
get pondo_protocol.aleo/balances[0u8] into r14;
189-
get.or_use credits.aleo/account[grant_disbursement.aleo] 0u64 into r15;
189+
get.or_use credits.aleo/account[pondo_protocol.aleo] 0u64 into r15;
190190
get pondo_protocol.aleo/balances[2u8] into r16;
191191
add r14 r15 into r17;
192192
sub r17 r16 into r18;

grant_disbursement/src/main.leo

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,8 @@ program grant_disbursement.aleo {
1212
const CLIFF_TIMESTAMP: u64 = 1_000_000_000u64;
1313
const FULLY_VESTED_TIMESTAMP: u64 = 2_000_000_000u64;
1414

15-
const PALEO_TOLERANCE: u128 = 9_999u128;
16-
const PALEO_PRECISION: u128 = 10_000u128;
15+
const PALEO_TOLERANCE: u128 = 999u128;
16+
const PALEO_PRECISION: u128 = 1_000u128;
1717

1818
struct Grant {
1919
credits_amount: u64, // The amount of Aleo credits to be distributed
@@ -57,7 +57,7 @@ program grant_disbursement.aleo {
5757
paleo_amount: u128,
5858
) -> Future {
5959
// Transfer the credits to signer temporarily to deposit into the pondo core protocol
60-
let f0: Future = credits.aleo/transfer_public(self.caller, credits_amount);
60+
let f0: Future = credits.aleo/transfer_public(self.signer, credits_amount);
6161
// Deposit the credits into the pondo core protocol
6262
let f1: Future = pondo_protocol.aleo/deposit_public_as_signer(credits_amount, paleo_amount as u64, self.address);
6363
// Transfer the pAleo to the grant disbursement program
@@ -87,7 +87,7 @@ program grant_disbursement.aleo {
8787

8888
// Calculate the total credits
8989
let delegated_credits: u64 = pondo_protocol.aleo/balances.get(DELEGATED_BALANCE);
90-
let core_protocol_account: u64 = credits.aleo/account.get_or_use(self.address, 0u64);
90+
let core_protocol_account: u64 = credits.aleo/account.get_or_use(pondo_protocol.aleo, 0u64);
9191
let reserved_for_withdrawal: u64 = pondo_protocol.aleo/balances.get(CLAIMABLE_WITHDRAWALS);
9292
let total_credits_pool: u64 = delegated_credits + core_protocol_account - reserved_for_withdrawal - credits_amount;
9393

@@ -164,7 +164,7 @@ program grant_disbursement.aleo {
164164
let paleo_commission: u64 = pondo_protocol.aleo/owed_commission.get(0u8);
165165
let total_paleo_pool: u128 = minted_paleo + paleo_commission as u128;
166166
let delegated_credits: u64 = pondo_protocol.aleo/balances.get(DELEGATED_BALANCE);
167-
let core_protocol_account: u64 = credits.aleo/account.get_or_use(self.address, 0u64);
167+
let core_protocol_account: u64 = credits.aleo/account.get_or_use(pondo_protocol.aleo, 0u64);
168168
let reserved_for_withdrawal: u64 = pondo_protocol.aleo/balances.get(CLAIMABLE_WITHDRAWALS);
169169
let total_credits_pool: u64 = delegated_credits + core_protocol_account - reserved_for_withdrawal;
170170

@@ -229,7 +229,7 @@ program grant_disbursement.aleo {
229229
let paleo_commission: u64 = pondo_protocol.aleo/owed_commission.get(0u8);
230230
let total_paleo_pool: u128 = minted_paleo + paleo_commission as u128;
231231
let delegated_credits: u64 = pondo_protocol.aleo/balances.get(DELEGATED_BALANCE);
232-
let core_protocol_account: u64 = credits.aleo/account.get_or_use(self.address, 0u64);
232+
let core_protocol_account: u64 = credits.aleo/account.get_or_use(pondo_protocol.aleo, 0u64);
233233
let reserved_for_withdrawal: u64 = pondo_protocol.aleo/balances.get(CLAIMABLE_WITHDRAWALS);
234234
let total_credits_pool: u64 = delegated_credits + core_protocol_account - reserved_for_withdrawal;
235235

@@ -260,7 +260,7 @@ program grant_disbursement.aleo {
260260
const PALEO_TOKEN_ID: field = 1751493913335802797273486270793650302076377624243810059080883537084141842600field;
261261
// Copied from pondo_protocol.aleo
262262
const PROTOCOL_STATE_KEY: u8 = 0u8;
263-
const REBALANCING_STATE: u8 = 1u8;
263+
const REBALANCING_STATE: u8 = 2u8;
264264
const DELEGATED_BALANCE: u8 = 0u8;
265265
const CLAIMABLE_WITHDRAWALS: u8 = 2u8;
266266

0 commit comments

Comments
 (0)