See this proposal for context: https://juicetool.xyz/snapshot/jbdao.eth/proposal/0xb7b3ccd64f9b27ed001e7d086b11ae1dc78c56bd525840636a1a79d62ba14ccchttps://juicetool.xyz/snapshot/jbdao.eth/proposal/0xb7b3ccd64f9b27ed001e7d086b11ae1dc78c56bd525840636a1a79d62ba14ccc
Versions are on NPM under @jbx-protocol/juice-contracts-v3 (3.1.0) and @jbx-protocol/juice-721-delegate (5.0.1)
JBController
⇒ JBController3.1
See full code diff here https://www.diffchecker.com/bEuD9b4b/
IJBController3_1
, and no longer an adherence to IJBController
.fundAccessConstraintsStore
property of type IJBFundAccessConstraintStore
, which points to a contract that exposes two view functions that were previously exposed directly from the controller:
function distributionLimitOf(uint256 _projectId, uint256 _configuration, IJBPaymentTerminal _terminal, address _token) external view returns (uint256, uint256)
function overflowAllowanceOf(uint256 _projectId, uint256 _configuration, IJBPaymentTerminal _terminal, address _token) external view returns (uint256, uint256)
function reservedTokenBalanceOf(uint256 _projectId, uint256 reservedRate) external view returns (uint256)
(new one removes _reservedRate
argument)function totalOutstandingTokensOf(uint256 _projectId, uint256 _reservedRate) external view returns (uint256)
(new one removes _reservedRate
argument)function distributionLimitOf(uint256 _projectId, uint256 _configuration, IJBPaymentTerminal _terminal, address _token) external view returns (uint256, uint256)
(moved to fundAccessConstraintStore
property as described here)function overflowAllowanceOf(uint256 _projectId, uint256 _configuration, IJBPaymentTerminal _terminal, address _token) external view returns (uint256, uint256)
(moved to fundAccessConstraintStore
property as described here)function reservedTokenBalanceOf(uint256 _projectId) external view returns (uint256)
function totalOutstandingTokensOf(uint256 _projectId) public view returns (uint256)
JBPayoutRedemptionPaymentTerminal
⇒ JBPayoutRedemptionPaymentTerminal3.1
See full code diff here https://www.diffchecker.com/7Zf5CnrL/
Adherence to IJBPayoutRedemptionPaymentTerminal3_1
, and no longer an adherence to IJBPayoutRedemptionPaymentTerminal
.
The standard addToBalanceOf
call no longer refunds held fees. A new overloaded function signature with an added explicit parameter has been added for adding to balance with refunding held fees. See below.
Payouts from one project to other projects or allocators that revert will be caught and funds will be returned to the paying project, instead of reverting the entire distribution altogether. This include fees paid down to the protocol project.
No more availability of the following function signatures:
function distributePayoutsOf(uint256 _projectId, uint256 _amount, uint256 _currency, address _token, uint256 _minReturnedTokens, string calldata _memo) external virtual returns (uint256 netLeftoverDistributionAmount)
(new one replaces _memo
with _metadata
)function useAllowanceOf(uint256 _projectId, uint256 _amount, uint256 _currency, address _token, uint256 _minReturnedTokens, address payable _beneficiary, string memory memo) external virtual returns (uint256 netDistributedAmount)
(new one adds metadata
)New availability of the following function signatures:
function distributePayoutsOf(uint256 _projectId, uint256 _amount, uint256 _currency, address _token, uint256 _minReturnedTokens, bytes calldata _metadata) external virtual returns (uint256 netLeftoverDistributionAmount)
function useAllowanceOf(uint256 _projectId, uint256 _amount, uint256 _currency, address _token, uint256 _minReturnedTokens, address payable _beneficiary, string memory _memo, bytes calldata _metadata) external virtual returns (uint256 netDistributedAmount)
function addToBalanceOf(uint256 _projectId, uint256 _amount, address _token, bool _shouldRefundHeldFees, string calldata _memo, bytes calldata _metadata) public payable virtual
New event signatures:
JBTiered721Delegate
⇒ JBTiered721Delegate3.1
JB721TierParams
structs sent when adding new tiers have new/revised properties to allow for royalties and categorization. https://github.com/jbx-protocol/juice-721-delegate/blob/main/contracts/structs/JB721TierParams.sol.