Report Author: Christopher Von Hessert (on behalf of the Polygon Protocol Council)
Address: 0x9d851f8b8751c5FbC09b9E74E6e68E9950949052 (Polygon Security Multisig)
Relating to:
- PIP-57: Add migrateTo() in the POL Migration Contract, discussed on Polygon Protocol Governance Call 29.
Change type: Regular change via the emergency track with PC Consensus: 10/13
Introduction
This document is an official communication between the Polygon Protocol Council and the community. It aims to provide transparency to all community members regarding upcoming regular network changes.
In this transparency report, the Protocol Council (‘PC’) outlines the execution details of an upgrade to the POL DefaultEmissionManager.sol contract.
The upgrade contains:
PIP-57 execution: Add migrateTo() in the POL Migration Contract, discussed in Polygon Protocol Governance Call 29.
Code PR: https://github.com/0xPolygon/pol-token/pull/68
Motivation
Execute an upgrade to the POL Migration contract to allow users to migrate MATIC to POL to a user-defined recipient address, improving flexibility.
Execution
The subsequent section of the code provides a detailed overview of the execution specifications related to the proposed system smart contract change. These specifications are essential to understand the functioning and implementation of the upgrade:
Part 1: Deployment
Deploy New PolygonMigration.sol implementation, version 1.2.0
The new version of the DefaultEmissionManager has been deployed on Ethereum Mainnet:
(0xB037347ef306db3b41aB0b250F891887039d9231)
Deployment PR is here: https://github.com/0xPolygon/pol-token/pull/69
Part 2: Upgrade
Propose the transaction in the Emergency Protocol Council (0x37D085ca4a24f6b29214204E8A8666f12cf19516)
Inputs for Upgrade
PolygonMigration Proxy: 0x29e7DF7b6A1B2b07b731457f499E1696c60E2C4e
Implementation: 0xB037347ef306db3b41aB0b250F891887039d9231
ProxyAdmin: 0xEBea33f2c92D03556b417F4F572B2FbbE62C39c3
ProxyAdmin owner: 0x37D085ca4a24f6b29214204E8A8666f12cf19516 (Emergency PC)
Payload
To:
eth:0xEBea33f2c92D03556b417F4F572B2FbbE62C39c3
Value:
0
data:
0x99a88ec400000000000000000000000029e7df7b6a1b2b07b731457f499e1696c60e2c4e000000000000000000000000b037347ef306db3b41ab0b250f891887039d9231
Decoded:
- Function 0x99a88ec4: upgrade(address,address)
- Inputs:
- Proxy: 0x29e7df7b6a1b2b07b731457f499e1696c60e2c4e
- Implementation: 0xB037347ef306db3b41aB0b250F891887039d9231
Part 3: Execution (in Safe)
The scheduled proposal can be executed by calling the function “execute” on the Safe.
Part 4: Validation
Once the upgrade is done, we can check the following things:
- Check new implementation address on the proxy: 0x29e7DF7b6A1B2b07b731457f499E1696c60E2C4e
- Check version 1.2.0 on proxy function version()
- Use migrateTo(address recipient, uint256 amount) on proxy
Part 5: Documentation
Implementation: 0xB037347ef306db3b41aB0b250F891887039d9231
Safe Transaction Hash:
0xe6d148aed9db16eb5c62a38f0929c79aa3c26566efa22776d12902ef9dc85f1a
Addendum
- Polygon Forum: https://forum.polygon.technology/ is a discourse forum for governance-related discussions. Community members must register for an account before sharing their views.
- Read more about PIP-29: Polygon Protocol Council here: https://github.com/maticnetwork/Polygon-Improvement-Proposals/blob/main/PIPs/PIP-29.md
Copyrights
All copyrights and related rights in this work are waived under CC0 1.0 Universal.