Refer a fren and earn rewards!

Yes, take me there!

Logo

-

Integration of Exchange Rate Functionality into sINV CCIP

Executed
#271 - mills ERA

Created Mar 3rd, 2025 - Executed Mar 8th, 2025

Details

avatar

0xMT

https://forum.inverse.finance/t/integration-of-exchange-rate-functionality-into-sinv-ccip/513

Background:

sINV, the staked version of the INV governance token within the Inverse Finance ecosystem, accrues rewards through auto-compounding of INV staking rewards and DBR streaming rewards. As Inverse Finance expands across multiple chains, ensuring accurate and real-time exchange rates during cross-chain transfers of sINV is crucial for maintaining token value consistency in third party protocol integrations.

Objective:

To integrate exchange rate functionality into the existing Chainlink Cross-Chain Interoperability Protocol (CCIP) for sINV transfers, we’ll be utilizing Programmable Data Token Transfer contracts on each supported network. This integration will ensure that sINV tokens are accurately valued during cross-chain transfers, reflecting real-time exchange rates on L2 Networks.

Implementation Plan:

  1. Accept Ownership of Programmable Data Token Transfer Contracts: The DAO will assume ownership of the deployed Programmable Data Token Transfer contracts on each network to manage and update exchange rates effectively. The launch process is as follows:
  1. Accept Ownership of GovernanceProxy contracts: The DAO will assume ownership of the Governance proxies on each deployed L2 network
  1. Designate Contracts as Exchange Rate Updaters: The Programmable Data Token Transfer contracts will be assigned as exchange rate updaters within the ReceiptToken contracts on each L2 network.

Technical Details:

  • Programmable Data Token Transfers: Chainlink's CCIP supports the inclusion of arbitrary data—such as exchange rates—within token transfer transactions. This feature ensures that sINV tokens maintain accurate value representation across different chains. Chainlink Documentation
  • Exchange Rate Updates: By designating the Programmable Data Token Transfer contracts as exchange rate updaters, the system can fetch and apply real-time exchange rates during sINV transfers, ensuring value consistency on L2’s.
  • Governance proxies acts as the outpost for Inverse Finance governance on L2s. Transferring ownership to the contract itself gives Inverse Finance governance the full ability to remove eth from the contract.

On-Chain Actions Required:

  1. Updater Designation: Update the ReceiptToken contracts on each L2 network to recognize the Programmable Data Token Transfer contracts as authorized exchange rate updaters.
  2. Remove Deployment Permission: Remove unnecessary deployment permission “allowlistCaller” 0xMT from GovernanceSender contract: https://etherscan.io/address/0xaea8ae87a34a0faaea0e6bed9f4627f576b524fa#writeContract
  3. Ownership Acceptance: Execute transactions to accept ownership of the mainnet ProgrammableDataTokenTransfers contract and GovernanceProxy contract

Actions

Action 1
GovernanceSender
.allowlistCaller(
Treasury,

true

)

Action 2
GovernanceSender
.allowlistCaller(

)

Action 3
«
setMinter using the Arbitrum Chain Selector
»

4949039107694359620,

Arb-sINV,0x11EC...710D,

false

)

Action 4
«
setMinter using the Base Chain Selector
»

15971525489660198786,

Base-sINV,0x11EC...710D,

false

)

Action 5
«
setMinter using the Optimism Chain Selector
»

3734403246176062136,

Op-sINV,0x11EC...710D,

false

)

Action 6
«
setUpdater using the Base Chain Selector
»
ReceiptTokenHelper
.setUpdater(

)

Action 7
«
setUpdater using the Optimism Chain Selector
»
ReceiptTokenHelper
.setUpdater(

)

Action 8
«
sendMessagePayNative using the Arbitrum Chain Selector
»
GovernanceSender
.sendMessagePayNative(

4949039107694359620,

Base&Arb-ProgrammableDataTokenTransfers,

0x79ba5097,

100000

)

Action 9
«
sendMessagePayNative using the Arbitrum Chain Selector
»
GovernanceSender
.sendMessagePayNative(

4949039107694359620,

Arb-GovernanceProxy,

0x79ba5097,

100000

)

Action 10
«
sendMessagePayNative using the Base Chain Selector
»
GovernanceSender
.sendMessagePayNative(

15971525489660198786,

Base&Arb-ProgrammableDataTokenTransfers,

0x79ba5097,

100000

)

Action 11
«
sendMessagePayNative using the Base Chain Selector
»
GovernanceSender
.sendMessagePayNative(

15971525489660198786,

Base-GovernanceProxy,

0x79ba5097,

100000

)

Action 12
«
sendMessagePayNative using the Optimism Chain Selector
»
GovernanceSender
.sendMessagePayNative(

3734403246176062136,

Op-GovernanceProxy,

0x79ba5097,

100000

)

Action 13
«
sendMessagePayNative using the Optimism Chain Selector
»
GovernanceSender
.sendMessagePayNative(

3734403246176062136,

Op-ProgrammableDataTokenTransfers,

0x79ba5097,

100000

)

Action 14
«
setUpdater using the Arbitrum Chain Selector
»
ReceiptTokenHelper
.setUpdater(

)

Action 15

Proof of Reviews

Members allowed to make Drafts can sign the fact that they reviewed the Draft Proposal

Loading...

For Votes

2 voters

29.33k votes

avatar

CryptoHarry

22.00k

avatar

PatB

7.33k

Against Votes

0 voters

0.00 votes

Subscribe to Our Newsletter

Join thousands of subscribers in receiving weekly updates about Inverse products, partnerships, and early-bird news shared only with subscribers!

Products

sDOLADOLAINVFiRMStable Yields

Social