MCPcopy Create free account
hub / github.com/akash-network/node / settleAttestationFunds

Method settleAttestationFunds

x/verification/keeper/msg.go:1493–1521  ·  view source on GitHub ↗
(ctx sdk.Context, provider, auditor sdk.AccAddress, attestation vtypes.AttestationRecord, result SettlementResult)

Source from the content-addressed store, hash-verified

1491}
1492
1493func (k *keeper) settleAttestationFunds(ctx sdk.Context, provider, auditor sdk.AccAddress, attestation vtypes.AttestationRecord, result SettlementResult) error {
1494 if err := requireEscrowedAttestationFunds(attestation); err != nil {
1495 return err
1496 }
1497
1498 switch result.FeeStatus {
1499 case vtypes.FeeStatusReleasedToAuditor:
1500 if err := k.sendModuleToAccount(ctx, auditor, attestation.Fee); err != nil {
1501 return err
1502 }
1503 case vtypes.FeeStatusReturnedToProvider:
1504 if err := k.sendModuleToAccount(ctx, provider, attestation.Fee); err != nil {
1505 return err
1506 }
1507 case vtypes.FeeStatusEscrowed, vtypes.FeeStatusUnspecified:
1508 return errorsmod.Wrapf(moduletypes.ErrInvalidReason, "unsupported attestation fee settlement %s", result.FeeStatus)
1509 }
1510
1511 switch result.DepositStatus {
1512 case vtypes.DepositStatusReturnedToAuditor:
1513 return k.sendModuleToAccount(ctx, auditor, attestation.Deposit)
1514 case vtypes.DepositStatusSlashed:
1515 return k.sendModuleToDistribution(ctx, attestation.Deposit)
1516 case vtypes.DepositStatusEscrowed, vtypes.DepositStatusPendingDiscrepancy, vtypes.DepositStatusUnspecified:
1517 return errorsmod.Wrapf(moduletypes.ErrInvalidReason, "unsupported attestation deposit settlement %s", result.DepositStatus)
1518 }
1519
1520 return nil
1521}
1522
1523func (k *keeper) consumedAttestationEscrow(ctx sdk.Context, provider, auditor sdk.AccAddress, attestation vtypes.AttestationRecord) (vtypes.AuditEscrowRecord, error) {
1524 escrow, found := k.GetAuditEscrow(ctx, attestation.AuditEscrowID)

Calls 3

sendModuleToAccountMethod · 0.95

Tested by

no test coverage detected