MIP-35.1┃Deploy the PAR Bridging Module

Summary:

The proposal aims to deploy the PAR bridging module using Tunnel, the Parallel Bridging Module.

Context

Following the introduction of Tunnel, the Parallel Bridging Module, in the MIP-35┃Introducing Tunnel, the Parallel Bridging Module, we propose to deploy it for the PAR token.

Rationale:

We propose to deploy a limited version of the PAR bridging module to start, then to increase the limits and the number of blockchains where the bridging module would be deployed in the future via another proposal.

We propose to deploy the PAR bridging module on Ethereum, Polygon PoS and Fantom with these parameters:

Ethereum:

  • DVNs: (2 of 1 of 2)
    • Required: 2
      • LayerZero Labs
      • Polyhedra
    • Optionals: 1 of 2
      • Nethermind
      • Google Cloud
  • Mint Limits:
    • Daily: 25,000.00
    • Global: 200,000.00
  • Burn Limits:
    • Daily: 25,000.00
    • Global: 200,000.00
  • Fees:
    • Rate: 0.00%
  • Isolate Mode:
    • No

Polygon PoS:

  • DVNs: (2 of 1 of 2)
    • Required: 2
      • LayerZero Labs
      • Polyhedra
    • Optionals: 1 of 2
      • Nethermind
      • Google Cloud
  • Mint Limits:
    • Daily: 25,000.00
    • Global: 200,000.00
  • Burn Limits:
    • Daily: 25,000.00
    • Global: 200,000.00
  • Fees:
    • Rate: 0.00%
  • Isolate Mode:
    • No

Fantom:

  • DVNs: (2 of 1 of 2)
    • Required: 2
      • LayerZero Labs
      • Polyhedra
    • Optionals: 1 of 2
      • Nethermind
      • Google Cloud
  • Mint Limits:
    • Daily: 1,000.00
    • Global: 5,000.00
  • Burn Limits:
    • Daily: 1,000.00
    • Global: 5,000.00
  • Fees:
    • Rate: 0.00%
  • Isolate Mode:
    • Yes

The approval of this proposal is conditioned on the approval of the MIP-35. This means that if this proposal is approved by the DAO but the MIP-35 is rejected by the DAO, this proposal will automatically be rejected.

Means:

  • Human Resources: Multisig signers will need to sign transactions to execute the proposal.
  • Treasury Resources: No treasury resources used.

Technical implementation:

Ethereum:

  • Deploy BridgeableToken contract (OFT) with the following parameters:
    • name: lz-PAR
    • symbol: lz-PAR
    • principalToken: 0x68037790a0229e9ce6eaa8a99ea92964106c4703 (PAR)
    • lzEndPoint: 0x1a44076050125825900e736c501f859c50fE728c
    • Delegate: 0x25Fc7ffa8f9da3582a36633d04804F0004706F9b (DAO Multisig)
    • Config :
      • mintDailyLimit: 25000000000000000000000 // 25k PAR
      • globalMintLimit: 200000000000000000000000 // 200k PAR
      • burnDailyLimit: 25000000000000000000000 // 25k PAR
      • globalBurnLimit: 200000000000000000000000 // 200k PAR
      • feesRecipient: 0x25Fc7ffa8f9da3582a36633d04804F0004706F9b (DAO Multisig)
      • feesRate:0
      • isIsolateMode : false
  • On the AccessController contract, grant ‘MINTER_ROLE’ to the BridgeableToken contract just deployed, with these params:
    • Role: 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6
    • Account: BridgeableToken Address
  • On the BridgeableToken, call the ‘setPeer’ function to accept to send/receive message from specific contract on other chains with these parameters:
    • ‘SetPeer’ for Fantom:
      • Eid: 30112
      • Peer: address of the BridgeableToken contract in bytes32 (on Fantom)
    • ‘SetPeer’ for Polygon PoS:
      • Eid: 30109
      • Peer: address of the BridgeableToken contract in bytes32 (on Polygon PoS)
  • Set DVNs config for Send by calling the lzEndPoint’s ‘setConfig’ function with these parameters:
    • OApp: address of the BridgeableToken deployed
    • Lib: 0xbB2Ea70C9E858123480642Cf96acbcCE1372dCe1
    • SetConfigParam for send:
      • ‘sendConfig’ to Polygon PoS
        • Eid: 30109
        • configType: 2
        • Config:
          • Confirmations: 15
          • requiredDVNCount: 2
          • optionalDVNCount: 2
          • optionalDVNThreshold: 1
          • requiredDVNs: [0x589dedbd617e0cbcb916a9223f4d1300c294236b, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0xa59ba433ac34d2927232918ef5b2eaafcf130ba5, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]
      • ‘sendConfig’ to Fantom
        • Eid: 30112
        • configType: 2
        • Config:
          • Confirmations: 15
          • requiredDVNCount: 2
          • optionalDVNCount: 2
          • optionalDVNThreshold: 1
          • requiredDVNs: [0x589dedbd617e0cbcb916a9223f4d1300c294236b, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0xa59ba433ac34d2927232918ef5b2eaafcf130ba5, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]
  • Set DVNs config for Received by calling the lzEndPoint’s ‘setConfig’ function with this params:
    • Oapp: address of the BridgeableToken just deployed
    • Lib: 0xc02Ab410f0734EFa3F14628780e6e695156024C2
    • ‘SetConfigParam’ for receive:
      • ‘receiveConfig’ from Polygon PoS
        • Eid: 30109
        • configType: 2
        • Config:
          • Confirmations: 512
          • requiredDVNCount: 2
          • optionalDVNCount: 2
          • optionalDVNThreshold: 1
          • requiredDVNs: [0x589dedbd617e0cbcb916a9223f4d1300c294236b, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0xa59ba433ac34d2927232918ef5b2eaafcf130ba5, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]
      • ‘receiveConfig’ from Fantom
        • Eid: 30112
        • configType: 2
        • Config:
          • Confirmations: 25
          • requiredDVNCount: 2
          • optionalDVNCount: 2
          • optionalDVNThreshold: 1
          • requiredDVNs: [0x589dedbd617e0cbcb916a9223f4d1300c294236b, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0xa59ba433ac34d2927232918ef5b2eaafcf130ba5, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]

Polygon PoS:

  • Deploy BridgeableToken contract (OFT) with the following parameters:
    • name: lz-PAR
    • symbol: lz-PAR
    • principalToken: 0xe2aa7db6da1dae97c5f5c6914d285fbfcc32a128 (PAR)
    • lzEndPoint: 0x1a44076050125825900e736c501f859c50fE728c
    • Delegate: 0x2046c0416A558C40cb112E5ebB0Ca764c3C5c32a (DAO Multisig)
    • Config :
      • mintDailyLimit: 25000000000000000000000 // 25k PAR
      • globalMintLimit: 200000000000000000000000 // 200k PAR
      • burnDailyLimit: 25000000000000000000000 // 25k PAR
      • globalBurnLimit: 200000000000000000000000 // 200k PAR
      • feesRecipient: 0x2046c0416A558C40cb112E5ebB0Ca764c3C5c32a (DAO Multisig)
      • feesRate:0
      • isIsolateMode : false
  • On the AccessController contract, grant ‘MINTER_ROLE’ to the BridgeableToken contract just deployed, with these params:
    • Role: 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6
    • Account: BridgeableToken Address
  • On the BridgeableToken, call the ‘setPeer’ function to accept to send/receive message from specific contract on other chains with these parameters:
    • ‘SetPeer’ for Ethereum Mainnet:
      • Eid: 30101
      • Peer: address of the BridgeableToken contract in bytes32 (on Ethereum Mainnet)
    • ‘SetPeer’r for Fantom:
      • Eid: 30112
      • Peer: address of the BridgeableToken contract in bytes32 (on Fantom)
  • Set DVNs config for Send by calling the lzEndPoint’s ‘setConfig’ function with these parameters:
    • Oapp: address of the BridgeableToken just deployed
    • Lib: 0x6c26c61a97006888ea9E4FA36584c7df57Cd9dA3
    • SetConfigParam for send:
      • ‘sendConfig’ to Ethereum Mainnet
        • Eid: 30101
        • configType: 2
        • Config:
          • Confirmations: 512
          • requiredDVNCount: 2
          • optionalDVNCount: 2
          • optionalDVNThreshold: 1
          • requiredDVNs: [0x23de2fe932d9043291f870324b74f820e11dc81a, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0x31f748a368a893bdb5abb67ec95f232507601a73, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]
      • ‘sendConfig’ to Fantom
        • Eid: 30112
        • configType: 2
        • Config:
          • Confirmations: 512
          • requiredDVNCount: 2
          • optionalDVNCount: 2
          • optionalDVNThreshold: 1
          • requiredDVNs: [0x23de2fe932d9043291f870324b74f820e11dc81a, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0x31f748a368a893bdb5abb67ec95f232507601a73, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]
  • Set DVNs config for Received by calling the lzEndPoint’s setConfig function with this params:
    • Oapp: address of the BridgeableToken just deployed
    • Lib: 0x1322871e4ab09Bc7f5717189434f97bBD9546e95
    • SetConfigParam for receive:
      • ‘receiveConfig’ from Ethereum Mainnet
        • Eid: 30101
        • configType: 2
        • Config:
          • Confirmations: 15
          • requiredDVNCount: 2
          • optionalDVNCount: 1
          • optionalDVNThreshold: 2
          • requiredDVNs: [0x23de2fe932d9043291f870324b74f820e11dc81a, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0x31f748a368a893bdb5abb67ec95f232507601a73, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]
      • ‘receiveConfig’ from Fantom
        • Eid: 30112
        • configType: 2
        • Config:
          • Confirmations: 25
          • requiredDVNCount: 2
          • optionalDVNCount: 1
          • optionalDVNThreshold: 2
          • requiredDVNs: [0x23de2fe932d9043291f870324b74f820e11dc81a, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0x31f748a368a893bdb5abb67ec95f232507601a73, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]

Fantom:

  • Deploy BridgeableToken contract (OFT) with the following parameters:
    • name: lz-PAR
    • symbol: lz-PAR
    • principalToken: 0x13082681E8CE9bd0aF505912d306403592490Fc7 (PAR)
    • lzEndPoint: 0x1a44076050125825900e736c501f859c50fE728c
    • Delegate: 0x174162ddecE9d0b7B68fd945e38c3372C4C818ba (DAO Multisig)
    • Config :
      • mintDailyLimit: 1000000000000000000000 // 1k PAR
      • globalMintLimit: 5000000000000000000000 // 5k PAR
      • burnDailyLimit: 1000000000000000000000 // 1k PAR
      • globalBurnLimit: 5000000000000000000000 // 5k PAR
      • feesRecipient: 0x174162ddecE9d0b7B68fd945e38c3372C4C818ba
      • feesRate:0
      • isIsolateMode : true
  • On the AccessController contract, grant ‘MINTER_ROLE’ to the BridgeableToken contract just deployed, with these params:
    • Role: 0x9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6
    • Account: BridgeableToken Address
  • On the BridgeableToken, call the ‘setPeer’ function to accept to send/receive message from specific contract on other chains with these parameters:
    • ‘SetPeer’ for Ethereum Mainnet:
      • Eid: 30101
      • Peer: address of the BridgeableToken contract in bytes32 (on Ethereum Mainnet)
    • ‘SetPeer’ for Polygon PoS:
      • Eid: 30109
      • Peer: address of the BridgeableToken contract in bytes32 (on Polygon PoS)
  • Set DVNs config for Send by calling the lzEndPoint’s ‘setConfig’ function with these parameters:
    • OApp: address of the BridgeableToken deployed
    • Lib: 0x6c26c61a97006888ea9E4FA36584c7df57Cd9dA3
    • SetConfigParam for send:
      • ‘sendConfig’ to Ethereum Mainnet
        • Eid: 30101
        • configType: 2
        • Config:
          • Confirmations: 25
          • requiredDVNCount: 2
          • optionalDVNCount: 2
          • optionalDVNThreshold: 1
          • requiredDVNs: [0xe60a3959ca23a92bf5aaf992ef837ca7f828628a, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0x31f748a368a893bdb5abb67ec95f232507601a73, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]
      • ‘sendConfig’ to Polygon POS
        • Eid: 30109
        • configType: 2
        • Config:
          • Confirmations: 25
          • requiredDVNCount: 2
          • optionalDVNCount: 2
          • optionalDVNThreshold: 1
          • requiredDVNs: [0xe60a3959ca23a92bf5aaf992ef837ca7f828628a, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0x31f748a368a893bdb5abb67ec95f232507601a73, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]
  • Set DVNs config for Received by calling the lzEndPoint’s ‘setConfig’ function with this params:
    • Oapp: address of the BridgeableToken just deployed
    • Lib: 0x1322871e4ab09Bc7f5717189434f97bBD9546e95
    • ‘SetConfigParam’ for receive:
      • ‘receiveConfig’ from Ethereum Mainnet
        • Eid: 30101
        • configType: 2
        • Config:
          • Confirmations: 15
          • requiredDVNCount: 2
          • optionalDVNCount: 2
          • optionalDVNThreshold: 1
          • requiredDVNs: [0xe60a3959ca23a92bf5aaf992ef837ca7f828628a, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0x31f748a368a893bdb5abb67ec95f232507601a73, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]
      • ‘receiveConfig’ from Polygon PoS
        • Eid: 30109
        • configType: 2
        • Config:
          • Confirmations: 512
          • requiredDVNCount: 2
          • optionalDVNCount: 2
          • optionalDVNThreshold: 1
          • requiredDVNs: [0xe60a3959ca23a92bf5aaf992ef837ca7f828628a, 0x8ddf05f9a5c488b4973897e278b58895bf87cb24]
          • optionalDVNs: [0x31f748a368a893bdb5abb67ec95f232507601a73, 0xd56e4eab23cb81f43168f9f45211eb027b9ac7cc]

Voting Options:

  • Accept the deployment of the PAR Bridging Module
  • Against/Rework the proposal
  • Abstain

Author(s): Cooper Labs

Sentiment poll:

  • Accept the deployment of the PAR Bridging Module
  • Against/Rework the proposal
  • Abstain
0 voters
2 Likes

The proposal is now live on Snapshot from October 14th at 5pm CET until October 21st at 5pm CET: Snapshot

1 Like

The vote has been approved by the DAO, result: Snapshot

1 Like