Skip to main content

PWN Utilized Credit

1. Summary​

The PWNUtilizedCredit.sol contract is designed to manage and update credit across different proposal types. The contract ensures that credit usage does not exceed a predefined limit for a credit asset and restricts access only to selected proposal types.

3. Contract details​

  • PWNUtilizedCredit.sol is written in Solidity version 0.8.16

Features​

  • Credit utilization across proposals
  • Limit credit usage per proposal type

Functions​

utilizeCredit

Overview​

This function updates the utilized credit for an owner for a selected credit asset.

This function takes four arguments:

  • addressowner - Credit owner address
  • bytes32id - Credit identifier
  • uint256amount - Credit amount
  • uint256limit - Credit limit

Implementation​

function utilizeCredit(address owner, bytes32 id, uint256 amount, uint256 limit) external onlyWithHubTag {
uint256 extendedAmount = utilizedCredit[owner][id] + amount;
if (extendedAmount > limit) {
revert AvailableCreditLimitExceeded({ owner: owner, id: id, utilized: extendedAmount, limit: limit });
}

utilizedCredit[owner][id] = extendedAmount;
}

Errors​

The PWN Utilized Credit contract defines one error.

error AvailableCreditLimitExceeded(address owner, bytes32 id, uint256 utilized, uint256 limit);
AvailableCreditLimitExceeded

An AvailableCreditLimitExceeded error is thrown when utilizing credit would exceed the available credit limit for a given owner and id.

This error has four parameters:

  • addressowner
  • bytes32id
  • uint256utilized
  • uint256limit