# Polygon

## Code

* `MaticBridge.sol`
* `MaticBridge.impl.sol`

## Address

* Polygon Bridge Symbol : `MATIC`
* Polygon Bridge Contract Address : `0x1Fc5A2cE72c71563E6EFC1fc35F326D4CCd23B93`

## Interface

```bash
pragma solidity 0.5.0;

interface MaticBridge {
    function getVersion() public pure returns(string memory);
    function getSwapData(bytes32 govId, uint dataIndex) public view returns(string memory fromChain, string memory toChain, bytes memory fromAddr, bytes memory toAddr, bytes memory token);
    function getSwapDataArray(bytes32 govId, uint dataIndex) public view returns(bytes32[] memory bytes32s, uint[] memory uints, address[] memory vaList);
    function getGovInfo(bytes32 govId) public view returns(uint[] memory uints, bytes32[] memory bytes32s, bytes memory comment);
    
    function addBridgeInfo(string memory chain, address mig, uint[] memory uints, bytes32[] memory bytes32s, bytes memory comment) public;
    function removeBridgeInfo(string memory chain) public;
    
    function relaySwap() public;
    function validateSwap(bytes32[] memory sigs) public returns (bool major, address[] memory vaList);
    
    function relaySwapNFT() public;
    function validateSwapNFT(bytes32[] memory sigs) public returns (bool major, address[] memory vaList);
}
```

All functions except the Read-Only Function of MATIC Bridge Contract are executed by HubContract.
