diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7541afe..0477f36 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -14,6 +14,7 @@ jobs: BASE_URL: ${{ secrets.BASE_URL }} CRONOS_URL: ${{ secrets.CRONOS_URL }} MANTLE_URL: ${{ secrets.MANTLE_URL }} + BSC_URL: ${{ secrets.BSC_URL }} SEPOLIA_URL: ${{ secrets.SEPOLIA_URL }} GOERLI_URL: ${{ secrets.GOERLI_URL }} BASE_GOERLI_URL: ${{ secrets.BASE_GOERLI_URL }} diff --git a/README.md b/README.md index b2c6e0f..9e50063 100644 --- a/README.md +++ b/README.md @@ -9,53 +9,59 @@ For in-depth documentation about PWN contracts see [PWN Developer Docs](https:// NameAddressChain PWNConfig - 0x03DeAfC9678ab25F059df59Be3B20875018e1d46Ethereum Polygon Arbitrum Goerli + 0x03DeAfC9678ab25F059df59Be3B20875018e1d46Ethereum Polygon Arbitrum BSC Goerli 0x55e6A9F4183CFC01ecE8f2258FC13b93e1B6c140Optimism Base Cronos Mantle Sepolia - PWNHub0x37807A2F031b3B44081F4b21500E5D70EbaDAdd5Ethereum Polygon Arbitrum Optimism Base Cronos Mantle Goerli Sepolia + PWNHub0x37807A2F031b3B44081F4b21500E5D70EbaDAdd5Ethereum Polygon Arbitrum Optimism Base Cronos Mantle BSC Goerli Sepolia - PWNLOAN0x4440C069272cC34b80C7B11bEE657D0349Ba9C23Ethereum Polygon Arbitrum Optimism Base Cronos Mantle Goerli Sepolia + PWNLOAN0x4440C069272cC34b80C7B11bEE657D0349Ba9C23Ethereum Polygon Arbitrum Optimism Base Cronos Mantle BSC Goerli Sepolia - PWNRevokedNonce (offer)0xFFa73Eacce930BBd92a1Ef218400cBd1036c437eEthereum Polygon Arbitrum Optimism Base Cronos Mantle Goerli Sepolia + PWNRevokedNonce (offer)0xFFa73Eacce930BBd92a1Ef218400cBd1036c437eEthereum Polygon Arbitrum Optimism Base Cronos Mantle BSC Goerli Sepolia - PWNRevokedNonce (request)0x472361E75d28597b0a7F86146fbB4a86f173d10DEthereum Polygon Arbitrum Optimism Base Cronos Mantle Goerli Sepolia + PWNRevokedNonce (request)0x472361E75d28597b0a7F86146fbB4a86f173d10DEthereum Polygon Arbitrum Optimism Base Cronos Mantle BSC Goerli Sepolia PWNSimpleLoan - 0x57c88D78f6D08b5c88b4A3b7BbB0C1AA34c3280AEthereum Polygon Arbitrum Goerli + 0x57c88D78f6D08b5c88b4A3b7BbB0C1AA34c3280AEthereum Polygon Arbitrum BSC Goerli 0x4188C513fd94B0458715287570c832d9560bc08aOptimism Base Cronos Mantle Sepolia - PWNSimpleLoanSimpleOffer0x5E551f09b8d1353075A1FF3B484Ee688aCAc02F6Ethereum Polygon Arbitrum Optimism Base Cronos Mantle Goerli Sepolia + PWNSimpleLoanSimpleOffer0x5E551f09b8d1353075A1FF3B484Ee688aCAc02F6Ethereum Polygon Arbitrum Optimism Base Cronos Mantle BSC Goerli Sepolia - PWNSimpleLoanListOffer0xDA027058708961Be3676daEB68Fde1758B210065Ethereum Polygon Arbitrum Optimism Base Cronos Mantle Goerli Sepolia + PWNSimpleLoanListOffer0xDA027058708961Be3676daEB68Fde1758B210065Ethereum Polygon Arbitrum Optimism Base Cronos Mantle BSC Goerli Sepolia - PWNSimpleLoanSimpleRequest0x9Cb87eC6448299aBc326F32d60E191Ef32Ab225DEthereum Polygon Arbitrum Optimism Base Cronos Mantle Goerli Sepolia + PWNSimpleLoanSimpleRequest0x9Cb87eC6448299aBc326F32d60E191Ef32Ab225DEthereum Polygon Arbitrum Optimism Base Cronos Mantle BSC Goerli Sepolia - Product TimelockController - 0x2cDf99aD1115Ea0E943E56dd26459E3e57788C12Ethereum Polygon Arbitrum + Product TimelockController + 0x2cDf99aD1115Ea0E943E56dd26459E3e57788C12Ethereum Polygon Arbitrum 0x60a0F7594793e3DC31DfE1cC930dF65B54e95B39Optimism Base Cronos Mantle - Protocol TimelockController + 0xd57e72A328AB1deC6b374c2babe2dc489819B5EaBSC + + + Protocol TimelockController 0x9b1ec4bc634db130ab7310d4e585338888030623Ethereum Polygon Arbitrum 0x744B83343a86F87Ed05a5f3A92939D6d81520F27Optimism Base Cronos Mantle + + 0xd8dbdDf1c0FDdf9b5eCFA5C067C38DB66739FBABBSC + # PWN is hiring! diff --git a/deployments.json b/deployments.json index a3f3f67..0b24832 100644 --- a/deployments.json +++ b/deployments.json @@ -1,5 +1,5 @@ { - "deployedChains": [1, 5, 10, 25, 137, 338, 5000, 5001, 8453, 42161, 84531, 11155111], + "deployedChains": [1, 5, 10, 25, 56, 137, 338, 5000, 5001, 8453, 42161, 84531, 11155111], "chains": { "1": { "productTimelock": "0x2cDf99aD1115Ea0E943E56dd26459E3e57788C12", @@ -77,6 +77,25 @@ "simpleLoanListOffer": "0xDA027058708961Be3676daEB68Fde1758B210065", "simpleLoanSimpleRequest": "0x9Cb87eC6448299aBc326F32d60E191Ef32Ab225D" }, + "56": { + "productTimelock": "0xd57e72A328AB1deC6b374c2babe2dc489819B5Ea", + "protocolTimelock": "0xd8dbdDf1c0FDdf9b5eCFA5C067C38DB66739FBAB", + "protocolSafe": "0x61a77B19b7F4dB82222625D7a969698894d77473", + "daoSafe": "0xd56635c0E91D31F88B89F195D3993a9e34516e59", + "feeCollector": "0xd56635c0E91D31F88B89F195D3993a9e34516e59", + "deployerSafe": "0x42Cad20c964067f8e8b5c3E13fd0aa3C20a964C4", + "deployer": "0x706c9F2dd328E2C01483eCF705D2D9708F4aB727", + "configSingleton": "0x9926651f452ac52c851Ca91c4c79C2B3CdF4F7cD", + "config": "0x03DeAfC9678ab25F059df59Be3B20875018e1d46", + "hub": "0x37807A2F031b3B44081F4b21500E5D70EbaDAdd5", + "loanToken": "0x4440C069272cC34b80C7B11bEE657D0349Ba9C23", + "revokedOfferNonce": "0xFFa73Eacce930BBd92a1Ef218400cBd1036c437e", + "revokedRequestNonce": "0x472361E75d28597b0a7F86146fbB4a86f173d10D", + "simpleLoan": "0x57c88D78f6D08b5c88b4A3b7BbB0C1AA34c3280A", + "simpleLoanSimpleOffer": "0x5E551f09b8d1353075A1FF3B484Ee688aCAc02F6", + "simpleLoanListOffer": "0xDA027058708961Be3676daEB68Fde1758B210065", + "simpleLoanSimpleRequest": "0x9Cb87eC6448299aBc326F32d60E191Ef32Ab225D" + }, "137": { "productTimelock": "0x2cDf99aD1115Ea0E943E56dd26459E3e57788C12", "protocolTimelock": "0x9b1ec4bc634db130ab7310d4e585338888030623", diff --git a/foundry.toml b/foundry.toml index 587e5e9..6418914 100644 --- a/foundry.toml +++ b/foundry.toml @@ -12,6 +12,7 @@ optimism = "${OPTIMISM_URL}" base = "${BASE_URL}" cronos = "${CRONOS_URL}" mantle = "${MANTLE_URL}" +bsc = "${BSC_URL}" # Testnets sepolia = "${SEPOLIA_URL}" diff --git a/test/integration/deployed/DeployedProtocol.t.sol b/test/integration/deployed/DeployedProtocol.t.sol index 0ace3ae..b677b5b 100644 --- a/test/integration/deployed/DeployedProtocol.t.sol +++ b/test/integration/deployed/DeployedProtocol.t.sol @@ -102,6 +102,7 @@ contract DeployedProtocolTest is DeploymentTest { function test_deployedProtocol_base() external { _test_deployedProtocol("base"); } function test_deployedProtocol_cronos() external { _test_deployedProtocol("cronos"); } function test_deployedProtocol_mantle() external { _test_deployedProtocol("mantle"); } + function test_deployedProtocol_bsc() external { _test_deployedProtocol("bsc"); } function test_deployedProtocol_sepolia() external { _test_deployedProtocol("sepolia"); } function test_deployedProtocol_goerli() external { _test_deployedProtocol("goerli"); }