Report Author: Mudit Gupta (on behalf of the Polygon Protocol Council)
Address: 0xf29722a899Aa9FD0836076CA1dA64212c451453C
Relating to PIP 25: Adjust POL Total Supply, and discussed on Polygon Protocol Governance Call 9 and Polygon Protocol Governance Call 20.
Change type: Regular change with PC Consensus: 7/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 PIP-25, which calls the burn() function in the POL Migration contract to burn all POL tokens related to MATIC burned previous to the instantiation of the POL contracts via EIP-1559.
After evaluating the efficacy, impact, execution specifications, and security considerations, the PC has reached a majority consensus of 7/13, thereby queuing the change in execution.
Motivation
PIP-17, which initiates the POL upgrade, proposes the minting of 10B POL to the migrator contract which corresponds to the entire original supply of MATIC. This upgrade will burn an amount of POL equivalent to MATIC in the addresses currently used to permanently remove (burn) MATIC tokens from supply (ex: 0x000…dEaD) as well as other permanently inaccessible tokens, thus bringing the POL circulating supply in line with the MATIC supply.
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: Function Schedule
The amount of POL being burnt according to PIP-25 specification is with respect to Ethereum state at block 19835314 , the MATIC balance of:
- 0x000000000000000000000000000000000000dEaD [MATIC burn address]:
28048924099470987348592968
- 0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0 [MATIC token address]:
525164078223517894902326
Hence the total amount of POL being burnt is 28574088177694505243495294
.
The gnosis safe transaction to be created by any owner will have to use the following input parameters:
To (address): 0x29A6f32f36EDeD399763524018F17F03B1435b18
(Timelock Controller)
Contract method selector: schedule
Target (address): 0x29e7DF7b6A1B2b07b731457f499E1696c60E2C4e
(PolygonMigrationProxy)
Value (uint256): 0
Data (bytes): (This represents the calldata for calling the burn method with value mentioned above) 0x42966c6800000000000000000000000000000000000000000017a2cc6c88259e58b3cb7e
Predecessor (bytes32): 0x0000000000000000000000000000000000000000000000000000000000000000
Salt (bytes32): 0x1a247615034f181a77862d11fbab1de06a632362b408684f7a83e3f583ab92c1
Delay (uint256): 864000
Part 2: Validate Schedule Call Data
The tx call data for the proposal creation should match the following:
0x01d5062a00000000000000000000000029e7df7b6a1b2b07b731457f499e1696c60e2c4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000001a247615034f181a77862d11fbab1de06a632362b408684f7a83e3f583ab92c100000000000000000000000000000000000000000000000000000000000d2f00000000000000000000000000000000000000000000000000000000000000002442966c6800000000000000000000000000000000000000000017a2cc6c88259e58b3cb7e00000000000000000000000000000000000000000000000000000000
Part 3: Execution
Once the timelock delay has passed, the scheduled proposal can be executed by calling the function “execute”
Execute (payable amount Ether): 0
Target (address): 0x29e7DF7b6A1B2b07b731457f499E1696c60E2C4e
(PolygonMigrationProxy)
Value (uint256): 0
Data (bytes): 0x42966c6800000000000000000000000000000000000000000017a2cc6c88259e58b3cb7e
Predecessor (bytes32): 0x0000000000000000000000000000000000000000000000000000000000000000
Salt (bytes32): 0x1a247615034f181a77862d11fbab1de06a632362b408684f7a83e3f583ab92c1
Part 4: Validation
Once the execution is finished, it is time to check the amount of POL burnt (i.e. balance of POL at dead address, 0x000000000000000000000000000000000000dEaD) is greater than or equal to 28574088177694505243495294.
Go to https://etherscan.io/address/0x455e53CBB86018Ac2B8092FdCd39d8444aFFC3F6#readContract#F8 (PolygonEcosystemToken)
And check balanceOf(address)(uint256)
with input argument as 0x000000000000000000000000000000000000dEaD
returns a value >= 28574088177694505243495294.
Resources and References
- 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
- Polygon Timelock: https://etherscan.io/address/0x29A6f32f36EDeD399763524018F17F03B1435b18
- Testnet Review: (burning equivalent calculation for testnet as of state on sepolia block 5875846) https://sepolia.etherscan.io/tx/0x76d53caa725c295de869c0d49a1fd0391bcd2eda8d76eabe008bd49c041e8249
- Params of the execTransaction:
to: 0x29e7DF7b6A1B2b07b731457f499E1696c60E2C4e
value: 0
data: 0x01d5062a00000000000000000000000029e7df7b6a1b2b07b731457f499e1696c60e2c4e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000001a247615034f181a77862d11fbab1de06a632362b408684f7a83e3f583ab92c100000000000000000000000000000000000000000000000000000000000d2f00000000000000000000000000000000000000000000000000000000000000002442966c6800000000000000000000000000000000000000000017a2cc6c88259e58b3cb7e00000000000000000000000000000000000000000000000000000000
operation: 0
safeTxGas: 0
baseGas: 0
gasPrice: 0
gasToken: 0x0000000000000000000000000000000000000000
refundReceiver: 0x0000000000000000000000000000000000000000
signatures: This will be encoded n of m signature for the transaction
Copyrights
All copyrights and related rights in this work are waived under CC0 1.0 Universal.