Synopsis
There were incorrect fees taken out of payouts to projects between starting from July 25, 2023. This proposal returns the incorrect fees to the projects.
Motivation
On July 29, 2024 Jigglyjams discovered that improper fees were being taken out of payments from the Juicebox treasury to other Juicebox projects (Discord message).
When Juicebox DAO migrated to new JBETHPaymentTerminal
's the previous terminals were not see as feeless addresses. As a result all distributePayoutsOf
from Juicebox to other projects NOT using the same terminal as Juicebox incurred an incorrect 2.5% protocol fee
In order to prevent this from happening in the future, JBP-506 specifies the setting of all JBETHPaymentTerminal
's to feeless.
Specification
See https://github.com/jigglyjams/juicebox-fee-discrepancy for fee calculations and extended research
The following pay
transactions shall be executed to resolve the improper fees. For the work done, jigglyjams is requesting a 15% finders fee which shall be sent to @jigglyjams.
ProjectId | Project Name & Link | Excess Fees Charged (ETH) | Finders fee (ETH) | After fee (ETH) |
---|---|---|---|---|
387 | @wagmi-studios | 1.055030557777181604 | N/A fees owed | N/A fees owed |
397 | @peel | 8.892181052298771322 | 1.333827157844815698 | 7.558353894453955624 |
421 | @exhausted-pigeon | 2.059416717385266471 | 0.30891250760778997 | 1.750504209777476501 |
470 | @breadfruit | 1.605713071553927699 | 0.240856960733089154 | 1.364856110820838545 |
477 | @nance-app | 1.970929431515883919 | 0.295639414727382587 | 1.675290016788501332 |
488 | Bananapus | 1.761242616497408637 | 0.264186392474611295 | 1.497056224022797342 |
549 | Sablier V2 Interop Dev | 0.059078174758318802 | 0.00886172621374782 | 0.050216448544570982 |
552 | @juicecast | 1.306116252162166165 | 0.195917437824324924 | 1.110198814337841241 |
TOTAL | 17.654677316171743015 | 2.648201597425761448 | 15.006475718745981567 |
NOTE: @wagmi-studios still owes @juicebox ~1.09 ETH due to a previous error in bookkeeping from February 22, 2023 thus these fees were not taken into account
Rationale
This seems like the proper thing to do
Risks
There is a risk that incorrect values were calculated. Able parties should double check jigglyjams work to mitigate this risk.
Timeline
This proposal shall be executed after the execution of JBP-506 so that the pay terminals they are being sent to are set to feeless.
--- nance-actions
- type: Custom Transaction
uuid: 914de0793284467699ef9caae3ad6619
payload:
value: 0
tenderlyStatus: "false"
args:
- value: 397
type: uint256
name: _projectId
- value: "7558353894453955624"
type: uint256
name: _amount
- type: address
name: _token
value: "0x000000000000000000000000000000000000EEEe"
- type: address
name: _beneficiary
value: "0xAF28bcB48C40dBC86f52D459A6562F658fc94B1e"
- value: "0"
type: uint256
name: _minReturnedTokens
- value: true
type: bool
name: _preferClaimedTokens
- value: fee discrepancy
type: string
name: _memo
- value: "0x00"
type: bytes
name: _metadata
functionName: function pay(uint256 _projectId, uint256 _amount, address _token,
address _beneficiary, uint256 _minReturnedTokens, bool
_preferClaimedTokens, string _memo, bytes _metadata) payable returns
(uint256)
contract: "0x594Cb208b5BB48db1bcbC9354d1694998864ec63"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 87ad3310203e4e03a95105cb0bc03f4d
payload:
value: "0"
tenderlyStatus: "false"
args:
- value: "421"
type: uint256
name: _projectId
- value: "1750504209777476501"
type: uint256
name: _amount
- type: address
name: _token
value: "0x000000000000000000000000000000000000EEEe"
- type: address
name: _beneficiary
value: "0xAF28bcB48C40dBC86f52D459A6562F658fc94B1e"
- value: "0"
type: uint256
name: _minReturnedTokens
- value: true
type: bool
name: _preferClaimedTokens
- value: fee discrepancy
type: string
name: _memo
- value: "0x00"
type: bytes
name: _metadata
functionName: function pay(uint256 _projectId, uint256 _amount, address _token,
address _beneficiary, uint256 _minReturnedTokens, bool
_preferClaimedTokens, string _memo, bytes _metadata) payable returns
(uint256)
contract: "0x594Cb208b5BB48db1bcbC9354d1694998864ec63"
governanceCycles:
- 81
- type: Custom Transaction
uuid: d1915af4c118410eb83acd0167efaa85
payload:
value: "0"
tenderlyStatus: "false"
args:
- value: "470"
type: uint256
name: _projectId
- value: "1364856110820838545"
type: uint256
name: _amount
- type: address
name: _token
value: "0x000000000000000000000000000000000000EEEe"
- type: address
name: _beneficiary
value: "0xAF28bcB48C40dBC86f52D459A6562F658fc94B1e"
- value: "0"
type: uint256
name: _minReturnedTokens
- value: true
type: bool
name: _preferClaimedTokens
- value: fee discrepancy
type: string
name: _memo
- value: "0x00"
type: bytes
name: _metadata
functionName: function pay(uint256 _projectId, uint256 _amount, address _token,
address _beneficiary, uint256 _minReturnedTokens, bool
_preferClaimedTokens, string _memo, bytes _metadata) payable returns
(uint256)
contract: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
governanceCycles:
- 81
- type: Custom Transaction
uuid: eafb8d11bd72421c898acea091c6cb9b
payload:
value: "0"
tenderlyStatus: "false"
args:
- value: "477"
type: uint256
name: _projectId
- value: "1675290016788501332"
type: uint256
name: _amount
- type: address
name: _token
value: "0x000000000000000000000000000000000000EEEe"
- type: address
name: _beneficiary
value: "0xAF28bcB48C40dBC86f52D459A6562F658fc94B1e"
- value: "0"
type: uint256
name: _minReturnedTokens
- value: true
type: bool
name: _preferClaimedTokens
- value: fee discrepancy
type: string
name: _memo
- value: "0x00"
type: bytes
name: _metadata
functionName: function pay(uint256 _projectId, uint256 _amount, address _token,
address _beneficiary, uint256 _minReturnedTokens, bool
_preferClaimedTokens, string _memo, bytes _metadata) payable returns
(uint256)
contract: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 1d9b7899ba1949828a462c1372e0470d
payload:
value: "0"
tenderlyStatus: "false"
args:
- value: "488"
type: uint256
name: _projectId
- value: "1497056224022797342"
type: uint256
name: _amount
- type: address
name: _token
value: "0x000000000000000000000000000000000000EEEe"
- type: address
name: _beneficiary
value: "0xAF28bcB48C40dBC86f52D459A6562F658fc94B1e"
- value: "0"
type: uint256
name: _minReturnedTokens
- value: true
type: bool
name: _preferClaimedTokens
- value: fee discrepancy
type: string
name: _memo
- value: "0x00"
type: bytes
name: _metadata
functionName: function pay(uint256 _projectId, uint256 _amount, address _token,
address _beneficiary, uint256 _minReturnedTokens, bool
_preferClaimedTokens, string _memo, bytes _metadata) payable returns
(uint256)
contract: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
governanceCycles:
- 81
- type: Custom Transaction
uuid: ad3378203f7b4e5d8b45f5232d05596c
payload:
value: "0"
tenderlyStatus: "false"
args:
- value: "549"
type: uint256
name: _projectId
- value: "50216448544570982"
type: uint256
name: _amount
- type: address
name: _token
value: "0x000000000000000000000000000000000000EEEe"
- type: address
name: _beneficiary
value: "0xAF28bcB48C40dBC86f52D459A6562F658fc94B1e"
- value: "0"
type: uint256
name: _minReturnedTokens
- value: true
type: bool
name: _preferClaimedTokens
- value: fee discrepancy
type: string
name: _memo
- value: "0x00"
type: bytes
name: _metadata
functionName: function pay(uint256 _projectId, uint256 _amount, address _token,
address _beneficiary, uint256 _minReturnedTokens, bool
_preferClaimedTokens, string _memo, bytes _metadata) payable returns
(uint256)
contract: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 78f7d1c24f414993bcec41302386e771
payload:
value: "0"
tenderlyStatus: "false"
args:
- value: "552"
type: uint256
name: _projectId
- value: "1110198814337841241"
type: uint256
name: _amount
- type: address
name: _token
value: "0x000000000000000000000000000000000000EEEe"
- type: address
name: _beneficiary
value: "0xAF28bcB48C40dBC86f52D459A6562F658fc94B1e"
- value: "0"
type: uint256
name: _minReturnedTokens
- value: true
type: bool
name: _preferClaimedTokens
- value: fee discrepancy
type: string
name: _memo
- value: "0x00"
type: bytes
name: _metadata
functionName: function pay(uint256 _projectId, uint256 _amount, address _token,
address _beneficiary, uint256 _minReturnedTokens, bool
_preferClaimedTokens, string _memo, bytes _metadata) payable returns
(uint256)
contract: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 11b25c526de845c28867bc137c52333c
payload:
value: "0"
tenderlyStatus: "false"
args:
- value: "188"
type: uint256
name: _projectId
- value: "2648201597425761448"
type: uint256
name: _amount
- type: address
name: _token
value: "0x000000000000000000000000000000000000EEEe"
- type: address
name: _beneficiary
value: "0xAF28bcB48C40dBC86f52D459A6562F658fc94B1e"
- value: "0"
type: uint256
name: _minReturnedTokens
- value: true
type: bool
name: _preferClaimedTokens
- value: fee discrepancy finders fee
type: string
name: _memo
- value: "0x00"
type: bytes
name: _metadata
functionName: function pay(uint256 _projectId, uint256 _amount, address _token,
address _beneficiary, uint256 _minReturnedTokens, bool
_preferClaimedTokens, string _memo, bytes _metadata) payable returns
(uint256)
contract: "0x594Cb208b5BB48db1bcbC9354d1694998864ec63"
governanceCycles:
- 81