MIP-35.2┃Deploy the paUSD Bridging Module

Summary:

The proposal aims to deploy the paUSD 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 paUSD token.

Rationale:

We propose to deploy a limited version of the paUSD 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 paUSD bridging module on Ethereum and Polygon PoS 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: 15,000.00
    • Global: 100,000.00
  • Burn Limits:
    • Daily: 15,000.00
    • Global: 100,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: 15,000.00
    • Global: 100,000.00
  • Burn Limits:
    • Daily: 15,000.00
    • Global: 100,000.00
  • Fees:
    • Rate: 0.00%
  • Isolate Mode:
    • No

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-paUSD
    • symbol: lz-paUSD
    • principalToken: 0x571f54D23cDf2211C83E9A0CbD92AcA36c48Fa02 (paUSD)
    • lzEndPoint: 0x1a44076050125825900e736c501f859c50fE728c
    • Delegate: 0x25Fc7ffa8f9da3582a36633d04804F0004706F9b (DAO Multisig)
    • Config :
      • mintDailyLimit: 15000000000000000000000 // 15k paUSD
      • globalMintLimit: 100000000000000000000000 // 100k paUSD
      • burnDailyLimit: 15000000000000000000000 // 15k paUSD
      • globalBurnLimit: 100000000000000000000000 // 100k paUSD
      • 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 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]
  • 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]

Polygon PoS:

  • Deploy BridgeableToken contract (OFT) with the following parameters:
    • name: lz-paUSD
    • symbol: lz-paUSD
    • principalToken: 0x8054d4D130C3A84852f379424Bcac75673a7486B (paUSD)
    • lzEndPoint: 0x1a44076050125825900e736c501f859c50fE728c
    • Delegate: 0x2046c0416A558C40cb112E5ebB0Ca764c3C5c32a (DAO Multisig)
    • Config :
      • mintDailyLimit: 15000000000000000000000 // 15k paUSD
      • globalMintLimit: 100000000000000000000000 // 100k paUSD
      • burnDailyLimit: 15000000000000000000000 // 15k paUSD
      • globalBurnLimit: 100000000000000000000000 // 100k paUSD
      • 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)
  • 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]
  • 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]

Voting Options:

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

Author(s): Cooper Labs

Sentiment poll:

  • Accept the deployment of the paUSD 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