/
data_providers_pool.go
executable file
·40 lines (32 loc) · 1.47 KB
/
data_providers_pool.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package oraclekeeper
/*func (k Keeper) FundOraclePool(ctx sdk.Context, amount sdk.Coins, sender sdk.AccAddress) error {
if err := k.bankKeeper.SendCoinsFromAccountToModule(ctx, sender, oracletypes.ModuleName, amount); err != nil {
return err
}
oraclePool := k.GetOraclePool(ctx)
oraclePool.DataProvidersPool = oraclePool.DataProvidersPool.Add(amount...)
k.SetOraclePool(ctx, oraclePool)
// store the changes in DPP
accumulatedPaymentsForData := k.GetAccumulatedPaymentsForData(ctx)
accumulatedPaymentsForData.AccumulatedAmount = accumulatedPaymentsForData.AccumulatedAmount.Add(amount...)
k.SetAccumulatedPaymentsForData(ctx, accumulatedPaymentsForData)
return nil
}
func (k Keeper) WithdrawOraclePool(ctx sdk.Context, amount sdk.Coins, recipient sdk.AccAddress) error {
if err := k.bankKeeper.SendCoinsFromModuleToAccount(ctx, oracletypes.ModuleName, recipient, amount); err != nil {
return err
}
oraclePool := k.GetOraclePool(ctx)
diff, hasNeg := oraclePool.DataProvidersPool.SafeSub(amount)
if hasNeg {
return sdkerrors.Wrap(sdkerrors.ErrInsufficientFunds, "data providers pool does not have enough funds")
}
oraclePool.DataProvidersPool = diff
k.SetOraclePool(ctx, oraclePool)
// store the changes in DPP
accumulatedPaymentsForData := k.GetAccumulatedPaymentsForData(ctx)
accumulatedPaymentsForData.AccumulatedAmount, _ = accumulatedPaymentsForData.AccumulatedAmount.SafeSub(amount)
k.SetAccumulatedPaymentsForData(ctx, accumulatedPaymentsForData)
return nil
}
*/