Synopsis
The DAO needs to set multiple version of JBETHPaymentTerminal
as feeless to avoid improper fees being charge to inter-Juicebox payouts.
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).
The intent of Juicebox JBX membership fees according to docs.juicebox.money:
All funds distributed by projects from their treasuries to destinations outside of the Juicebox ecosystem (i.e. distributions that do not go to other Juicebox treasuries) will incure a protocol fee
Any funds sent from one juicebox treasury to another via splits do not incur fees.
To correct this, all payment terminal versions must have all other terminals set as isFeelessAddress
Terminals:
JBETHPaymentTerminal
: 0x594Cb208b5BB48db1bcbC9354d1694998864ec63JBETHPaymentTerminal3_1
: 0xFA391De95Fcbcd3157268B91d8c7af083E607A5CJBETHPaymentTerminal3_1_1
: 0x457cD63bee88ac01f3cD4a67D5DCc921D8C0D573JBETHPaymentTerminal3_1_2
: 0x1d9619E10086FdC1065B114298384aAe3F680CC0
Specification
On all terminals call setFeelessAddress
as true
to all other terminals
Rationale
This makes the payment terminals operate as intended, no fees taken out for inter-Juicebox payouts
Risks
There is a risk that an incorrect address is set as feeless. The DAO and multisig team shall check the addresses are correct in order to mitigate this risk.
Timeline
As soon as proposal passes
--- nance-actions
- type: Custom Transaction
uuid: 29482019613e4fe3904cf6ec1e3e7561
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
tenderlyId: 79e74d22-070c-4ca5-b5de-9acd99dbe95b
contract: "0x594Cb208b5BB48db1bcbC9354d1694998864ec63"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 518aafe1cb9447efa31d2847297cf9f0
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0x457cD63bee88ac01f3cD4a67D5DCc921D8C0D573"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0x594Cb208b5BB48db1bcbC9354d1694998864ec63"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 56634561c5cb4101855a897928c1c052
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0x1d9619E10086FdC1065B114298384aAe3F680CC0"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0x594Cb208b5BB48db1bcbC9354d1694998864ec63"
governanceCycles:
- 81
- type: Custom Transaction
uuid: f77b056bcccd4417ac55c9957483f84c
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0x594Cb208b5BB48db1bcbC9354d1694998864ec63"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 4300aa607108411fa2b9becb9d90c011
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0x457cD63bee88ac01f3cD4a67D5DCc921D8C0D573"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
governanceCycles:
- 81
- type: Custom Transaction
uuid: d6fc8ec29cc645179b3a57f0c0cbbb39
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0x1d9619E10086FdC1065B114298384aAe3F680CC0"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 9acf9e2c06a04d95bf28465149d7b03d
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0x594Cb208b5BB48db1bcbC9354d1694998864ec63"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0x457cD63bee88ac01f3cD4a67D5DCc921D8C0D573"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 9d2e58e96b04407d90f93b01151592f5
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0x457cD63bee88ac01f3cD4a67D5DCc921D8C0D573"
governanceCycles:
- 81
- type: Custom Transaction
uuid: e4dd4393a50b4eeb84f0fb50521e915c
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0x1d9619E10086FdC1065B114298384aAe3F680CC0"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0x457cD63bee88ac01f3cD4a67D5DCc921D8C0D573"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 63666a9a58404f8fa845bd652cca1a0b
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0x594Cb208b5BB48db1bcbC9354d1694998864ec63"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0x1d9619E10086FdC1065B114298384aAe3F680CC0"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 9027378651fa429c9993ca8aac2adfb1
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0xFA391De95Fcbcd3157268B91d8c7af083E607A5C"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0x1d9619E10086FdC1065B114298384aAe3F680CC0"
governanceCycles:
- 81
- type: Custom Transaction
uuid: 4cc65cbdff4b4ee487f3359966c80de4
payload:
value: 0
tenderlyStatus: "false"
args:
- type: address
name: _address
value: "0x457cD63bee88ac01f3cD4a67D5DCc921D8C0D573"
- value: true
type: bool
name: _flag
functionName: function setFeelessAddress(address _address, bool _flag)
contract: "0x1d9619E10086FdC1065B114298384aAe3F680CC0"
governanceCycles:
- 81