From d5ecb972f01770f4c2031efd503dd1899c48ceb9 Mon Sep 17 00:00:00 2001 From: Ino Murko Date: Wed, 3 Nov 2021 17:32:37 +0100 Subject: [PATCH 01/25] add boba l2 rinkeby deployment --- .../@gnosis.pm+safe-deployments+1.4.0.patch | 126 ++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 patches/@gnosis.pm+safe-deployments+1.4.0.patch diff --git a/patches/@gnosis.pm+safe-deployments+1.4.0.patch b/patches/@gnosis.pm+safe-deployments+1.4.0.patch new file mode 100644 index 0000000000..84aba68f55 --- /dev/null +++ b/patches/@gnosis.pm+safe-deployments+1.4.0.patch @@ -0,0 +1,126 @@ +diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json +index 137169b..70e2786 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json ++++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json +@@ -17,7 +17,8 @@ + "42220": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", + "43114": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", + "73799": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", +- "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4" ++ "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", ++ "28": "0x999933FF5284038197602a80173F4f4ECb634866" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json +index 4b2a145..25317c3 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json ++++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json +@@ -17,7 +17,8 @@ + "42220": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", + "43114": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", + "73799": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", +- "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4" ++ "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", ++ "28": "0xf71904bD3DCD3141BAF74AFD8F17281e207defe6" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json +index 918cf71..7d16413 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json ++++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json +@@ -17,7 +17,8 @@ + "42220": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", + "43114": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", + "73799": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", +- "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" ++ "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", ++ "28": "0x47b45765ee4e270dE60852295bB0Dd105E1A4Df0" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json +index 6706c6f..879c09a 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json ++++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json +@@ -17,7 +17,8 @@ + "42220": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", + "43114": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", + "73799": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", +- "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E" ++ "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", ++ "28": "0xE84AAb853C4FBaafd3eD795F67494d4Da1539492" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json +index e5ef031..2af3b2c 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json ++++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json +@@ -17,7 +17,8 @@ + "42220": "0x998739BFdAAdde7C933B942a68053933098f9EDa", + "43114": "0x998739BFdAAdde7C933B942a68053933098f9EDa", + "73799": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", +- "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761" ++ "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", ++ "28": "0xDBD71249Fe60c9f9bF581b3594734E295EAfA9b2" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json +index ba6efcf..78139b5 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json ++++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json +@@ -17,7 +17,8 @@ + "42220": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", + "43114": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", + "73799": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", +- "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D" ++ "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", ++ "28": "0x12D02fE0C317d6De6712441549dbB743B6f7bbB6" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json +index 678c97a..c8eba9b 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json ++++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json +@@ -17,7 +17,8 @@ + "42220": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", + "43114": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", + "73799": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", +- "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2" ++ "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", ++ "28": "0x172e17a6B3960940E3678f3CECb6288647e47877" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json +index 246eae6..2112ca9 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json ++++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json +@@ -17,7 +17,8 @@ + "42220": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", + "43114": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", + "73799": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", +- "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C" ++ "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", ++ "28": "0xe8605594628AB2e265815D918C8378801d89D7e8" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json +index 7aa6831..8a2d4f9 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json ++++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json +@@ -17,7 +17,8 @@ + "42220": "0x727a77a074D1E6c4530e814F89E618a3298FC044", + "43114": "0x727a77a074D1E6c4530e814F89E618a3298FC044", + "73799": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", +- "333999": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da" ++ "333999": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", ++ "28": "0x9741744E15b03945CcfA2c27841bf972c95E0A92" + }, + "abi": [ + { From af1365ffcf64162b74d3c375e3425d4c135552f8 Mon Sep 17 00:00:00 2001 From: Ino Murko Date: Sat, 13 Nov 2021 18:10:12 +0000 Subject: [PATCH 02/25] add boba l2 rinkeby and mainnet --- .github/workflows/deploy-boba.yml | 145 ++++++++++++++++++ boba_logo.svg | 30 ++++ package.json | 2 +- .../@gnosis.pm+safe-deployments+1.4.0.patch | 112 ++++++++++++++ src/config/assets/boba_logo.svg | 30 ++++ src/config/networks/boba.ts | 72 +++++++++ src/config/networks/boba_rinkeby.ts | 72 +++++++++ src/config/networks/index.ts | 4 + src/config/networks/network.d.ts | 6 +- src/logic/wallets/ethTransactions.ts | 19 ++- yarn.lock | 2 +- 11 files changed, 487 insertions(+), 7 deletions(-) create mode 100644 .github/workflows/deploy-boba.yml create mode 100644 boba_logo.svg create mode 100644 src/config/assets/boba_logo.svg create mode 100644 src/config/networks/boba.ts create mode 100644 src/config/networks/boba_rinkeby.ts diff --git a/.github/workflows/deploy-boba.yml b/.github/workflows/deploy-boba.yml new file mode 100644 index 0000000000..bf43097e33 --- /dev/null +++ b/.github/workflows/deploy-boba.yml @@ -0,0 +1,145 @@ +name: Deploy to Boba network + +# Run on pushes to main or PRs to main +on: + push: + branches: + - main + pull_request: + # Launches build when release is published + release: + types: [published] + +env: + REPO_NAME_ALPHANUMERIC: safereact + REACT_APP_NETWORK: 'boba' + REACT_APP_LATEST_SAFE_VERSION: '1.3.0' + STAGING_BUCKET_NAME: ${{ secrets.STAGING_BOBA_BUCKET_NAME }} + REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_BOBA }} + REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_BOBA }} + REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} + +jobs: + debug: + name: Debug + runs-on: ubuntu-latest + steps: + - name: Dump env + run: env | sort + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + deploy: + name: Deployment + runs-on: ubuntu-latest + + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@0.8.0 + with: + access_token: ${{ github.token }} + - name: Remove broken apt repos [Ubuntu] + if: ${{ matrix.os }} == 'ubuntu-latest' + run: | + for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done + - uses: actions/checkout@v2 + + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: 14 + + - uses: actions/cache@v2 + with: + path: '**/node_modules' + key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} + + - run: | + sudo apt-get update + sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev + pip install awscli --upgrade --user + # Due to some dependencies yarn may randomly throw an error about invalid cache + # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue + # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) + mkdir .yarncache + yarn install --cache-folder ./.yarncache --frozen-lockfile + rm -rf .yarncache + yarn cache clean + + # Set production flag + - name: Set production flag for release PR or tagged build + run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV + if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' + + - name: Build ${{ env.REACT_APP_NETWORK }} app + run: yarn build + env: + PUBLIC_URL: './' + REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} + REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} + REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} + REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} + REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_DEFAULT_REGION }} + + # Script to deploy Pull Requests + - run: bash ./scripts/github/deploy_pull_request.sh + if: success() && github.event.number + env: + PR_NUMBER: ${{ github.event.number }} + REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} + REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} + + - name: 'PRaul: Comment PR with app URLs' + uses: mshick/add-pr-comment@v1 + with: + message: | + * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) + repo-token: ${{ secrets.GITHUB_TOKEN }} + repo-token-user-login: 'github-actions[bot]' + if: success() && github.event.number + env: + REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com + + # Script to deploy to the dev environment + + # Script to deploy to staging environment + - name: 'Deploy to S3: Staging' + if: github.ref == 'refs/heads/main' + run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete + + # Script to upload release files + - name: 'Upload release build files for production' + if: startsWith(github.ref, 'refs/tags/v') + run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete + # - run: bash ./scripts/github/deploy_release.sh + # if: startsWith(github.ref, 'refs/tags/v') + # env: + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # PR_NUMBER: ${{ github.event.number }} + # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} + # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} + # VERSION_TAG: ${{ github.event.release.tag_name }} + # Script to prepare production deployments + - run: bash ./scripts/github/prepare_production_deployment.sh + if: success() && startsWith(github.ref, 'refs/tags/v') + env: + PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} + PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} + VERSION_TAG: ${{ github.event.release.tag_name }} + + # Upload Sentry source maps when sending to staging or production + - run: yarn sentry-upload-sourcemaps + if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) + env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_ORG: ${{ secrets.SENTRY_ORG}} + SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/boba_logo.svg b/boba_logo.svg new file mode 100644 index 0000000000..a58d770d6f --- /dev/null +++ b/boba_logo.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/package.json b/package.json index ca9ce5bb51..3cf35fd30e 100644 --- a/package.json +++ b/package.json @@ -171,7 +171,7 @@ "@gnosis.pm/safe-apps-sdk": "4.3.0-next.2", "@gnosis.pm/safe-apps-sdk-v1": "npm:@gnosis.pm/safe-apps-sdk@0.4.2", "@gnosis.pm/safe-core-sdk": "^0.3.1", - "@gnosis.pm/safe-deployments": "^1.2.0", + "@gnosis.pm/safe-deployments": "^1.3.0", "@gnosis.pm/safe-react-components": "^0.8.0", "@gnosis.pm/safe-react-gateway-sdk": "2.3.0", "@ledgerhq/hw-transport-node-hid-singleton": "6.3.0", diff --git a/patches/@gnosis.pm+safe-deployments+1.4.0.patch b/patches/@gnosis.pm+safe-deployments+1.4.0.patch index 84aba68f55..45d35244b2 100644 --- a/patches/@gnosis.pm+safe-deployments+1.4.0.patch +++ b/patches/@gnosis.pm+safe-deployments+1.4.0.patch @@ -1,3 +1,115 @@ +diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json +index 225379c..6a22a31 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json ++++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json +@@ -17,7 +17,8 @@ + "42220": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", + "43114": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", + "73799": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", +- "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4" ++ "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", ++ "28": "0x999933FF5284038197602a80173F4f4ECb634866" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json +index e476420..e8185c6 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json ++++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json +@@ -17,7 +17,8 @@ + "42220": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", + "43114": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", + "73799": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", +- "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4" ++ "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", ++ "28": "0xf71904bD3DCD3141BAF74AFD8F17281e207defe6" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json +index 550950f..bf8dee5 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json ++++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json +@@ -17,7 +17,8 @@ + "42220": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", + "43114": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", + "73799": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", +- "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" ++ "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", ++ "28": "0x47b45765ee4e270dE60852295bB0Dd105E1A4Df0" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json +index 2e36bfd..1b088c5 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json ++++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json +@@ -17,7 +17,8 @@ + "42220": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", + "43114": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", + "73799": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", +- "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E" ++ "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", ++ "28": "0xE84AAb853C4FBaafd3eD795F67494d4Da1539492" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json +index b6e04a2..ec8d079 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json ++++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json +@@ -17,7 +17,8 @@ + "42220": "0x998739BFdAAdde7C933B942a68053933098f9EDa", + "43114": "0x998739BFdAAdde7C933B942a68053933098f9EDa", + "73799": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", +- "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761" ++ "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", ++ "28": "0xDBD71249Fe60c9f9bF581b3594734E295EAfA9b2" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json +index daccb28..9d02b96 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json ++++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json +@@ -17,7 +17,8 @@ + "42220": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", + "43114": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", + "73799": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", +- "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D" ++ "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", ++ "28": "0x12D02fE0C317d6De6712441549dbB743B6f7bbB6" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json +index 6f7bba4..ace506a 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json ++++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json +@@ -17,7 +17,8 @@ + "42220": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", + "43114": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", + "73799": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", +- "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2" ++ "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", ++ "28": "0x172e17a6B3960940E3678f3CECb6288647e47877" + }, + "abi": [ + { +diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json +index 3a20a1e..7bb5802 100644 +--- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json ++++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json +@@ -17,7 +17,8 @@ + "42220": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", + "43114": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", + "73799": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", +- "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C" ++ "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", ++ "28": "0xe8605594628AB2e265815D918C8378801d89D7e8" + }, + "abi": [ + { diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json index 137169b..70e2786 100644 --- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json diff --git a/src/config/assets/boba_logo.svg b/src/config/assets/boba_logo.svg new file mode 100644 index 0000000000..a58d770d6f --- /dev/null +++ b/src/config/assets/boba_logo.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/config/networks/boba.ts b/src/config/networks/boba.ts new file mode 100644 index 0000000000..af474093e9 --- /dev/null +++ b/src/config/networks/boba.ts @@ -0,0 +1,72 @@ +import BobaLogo from 'src/config/assets/boba_logo.svg' +import { + EnvironmentSettings, + ETHEREUM_LAYER, + ETHEREUM_NETWORK, + FEATURES, + NetworkConfig, + WALLETS, +} from 'src/config/networks/network.d' + +const baseConfig: EnvironmentSettings = { + clientGatewayUrl: 'http://127.0.0.1:8000/v1', + txServiceUrl: 'http://127.0.0.1:8001/api/v1', + safeUrl: 'http://localhost:3000/app', + gasPriceOracles: [ + { + url: 'https://mainnet.boba.network/', + }, + ], + rpcServiceUrl: 'https://mainnet.boba.network/', + safeAppsRpcServiceUrl: 'https://mainnet.boba.network/', + networkExplorerName: 'BlockExplorer', + networkExplorerUrl: 'https://blockexplorer.boba.network/', + networkExplorerApiUrl: 'https://blockexplorer.boba.network/api', +} + +const arbitrum: NetworkConfig = { + environment: { + dev: { + ...baseConfig, + }, + staging: { + ...baseConfig, + }, + production: { + ...baseConfig, + }, + }, + network: { + id: ETHEREUM_NETWORK.BOBA, + backgroundColor: '#2A3245', + textColor: '#ffffff', + label: 'Boba', + isTestNet: false, + ethereumLayer: ETHEREUM_LAYER.L2, + nativeCoin: { + address: '0x0000000000000000000000000000000000000000', + name: 'ETH', + symbol: 'ETH', + decimals: 18, + logoUri: BobaLogo, + }, + }, + disabledWallets: [ + WALLETS.TREZOR, + WALLETS.LEDGER, + WALLETS.COINBASE, + WALLETS.FORTMATIC, + WALLETS.OPERA, + WALLETS.OPERA_TOUCH, + WALLETS.PORTIS, + WALLETS.TORUS, + WALLETS.TRUST, + WALLETS.WALLET_LINK, + WALLETS.AUTHEREUM, + WALLETS.LATTICE, + WALLETS.KEYSTONE, + ], + disabledFeatures: [FEATURES.DOMAIN_LOOKUP, FEATURES.SPENDING_LIMIT], +} + +export default arbitrum diff --git a/src/config/networks/boba_rinkeby.ts b/src/config/networks/boba_rinkeby.ts new file mode 100644 index 0000000000..644c5c91fb --- /dev/null +++ b/src/config/networks/boba_rinkeby.ts @@ -0,0 +1,72 @@ +import BobaLogo from 'src/config/assets/boba_logo.svg' +import { + EnvironmentSettings, + ETHEREUM_LAYER, + ETHEREUM_NETWORK, + FEATURES, + NetworkConfig, + WALLETS, +} from 'src/config/networks/network.d' + +const baseConfig: EnvironmentSettings = { + clientGatewayUrl: 'http://127.0.0.1:8000/v1', + txServiceUrl: 'http://127.0.0.1:8001/api/v1', + safeUrl: 'http://localhost:3000/app', + gasPriceOracles: [ + { + url: 'https://rinkeby.boba.network/', + }, + ], + rpcServiceUrl: 'https://rinkeby.boba.network/', + safeAppsRpcServiceUrl: 'https://rinkeby.boba.network/', + networkExplorerName: 'BlockExplorer', + networkExplorerUrl: 'https://blockexplorer.rinkeby.boba.network/', + networkExplorerApiUrl: 'https://blockexplorer.rinkeby.boba.network/api', +} + +const arbitrum: NetworkConfig = { + environment: { + dev: { + ...baseConfig, + }, + staging: { + ...baseConfig, + }, + production: { + ...baseConfig, + }, + }, + network: { + id: ETHEREUM_NETWORK.BOBA_RINKEBY, + backgroundColor: '#2A3245', + textColor: '#ffffff', + label: 'Boba Rinkeby', + isTestNet: true, + ethereumLayer: ETHEREUM_LAYER.L2, + nativeCoin: { + address: '0x0000000000000000000000000000000000000000', + name: 'ETH', + symbol: 'ETH', + decimals: 18, + logoUri: BobaLogo, + }, + }, + disabledWallets: [ + WALLETS.TREZOR, + WALLETS.LEDGER, + WALLETS.COINBASE, + WALLETS.FORTMATIC, + WALLETS.OPERA, + WALLETS.OPERA_TOUCH, + WALLETS.PORTIS, + WALLETS.TORUS, + WALLETS.TRUST, + WALLETS.WALLET_LINK, + WALLETS.AUTHEREUM, + WALLETS.LATTICE, + WALLETS.KEYSTONE, + ], + disabledFeatures: [FEATURES.DOMAIN_LOOKUP, FEATURES.SPENDING_LIMIT], +} + +export default arbitrum diff --git a/src/config/networks/index.ts b/src/config/networks/index.ts index 693c3be7ae..914eeecadb 100644 --- a/src/config/networks/index.ts +++ b/src/config/networks/index.ts @@ -7,6 +7,8 @@ import energy_web_chain from './energy_web_chain' import volta from './volta' import polygon from './polygon' import bsc from './bsc' +import boba_rinkeby from './boba_rinkeby' +import boba from './boba' export default { local, @@ -18,4 +20,6 @@ export default { volta, polygon, bsc, + boba_rinkeby, + boba, } diff --git a/src/config/networks/network.d.ts b/src/config/networks/network.d.ts index 6ad5e367c9..c4917b74f8 100644 --- a/src/config/networks/network.d.ts +++ b/src/config/networks/network.d.ts @@ -55,6 +55,8 @@ export enum ETHEREUM_NETWORK { LOCAL = '4447', ARBITRUM = '42161', VOLTA = '73799', + BOBA_RINKEBY = '28', + BOBA = '288', } export type NetworkSettings = { @@ -79,10 +81,10 @@ export type GasPriceOracle = { url: string // Different gas api providers can use a different name to reflect different gas levels based on tx speed // For example in ethGasStation for ETHEREUM_MAINNET = safeLow | average | fast - gasParameter: string + gasParameter?: string // Some providers may not use the most common standard, gwei to return the gas price value // This is the case of Ethgasstation that returns price as gwei x 10. - gweiFactor: string + gweiFactor?: string } type GasPrice = diff --git a/src/logic/wallets/ethTransactions.ts b/src/logic/wallets/ethTransactions.ts index 69d9fd2493..538683b943 100644 --- a/src/logic/wallets/ethTransactions.ts +++ b/src/logic/wallets/ethTransactions.ts @@ -1,5 +1,6 @@ import axios from 'axios' import { BigNumber } from 'bignumber.js' +import { BigNumber as BigNumberEthers } from 'ethers' import { EthAdapterTransaction } from '@gnosis.pm/safe-core-sdk/dist/src/ethereumLibs/EthAdapter' import { getSDKWeb3Adapter, getWeb3, web3ReadOnly } from 'src/logic/wallets/getWeb3' @@ -16,9 +17,21 @@ const FIXED_GAS_FEE = '2.5' const fetchGasPrice = async (gasPriceOracle: GasPriceOracle): Promise => { const { url, gasParameter, gweiFactor } = gasPriceOracle - const { data: response } = await axios.get(url) - const data = response.data || response.result || response // Sometimes the data comes with a data parameter - return new BigNumber(data[gasParameter]).multipliedBy(gweiFactor).toString() + if (gasParameter === undefined || gweiFactor === undefined) { + const rpcRequest = { + jsonrpc: '2.0', + method: 'eth_gasPrice', + params: [], + id: 1, + } + const headers = { headers: { 'Content-Type': 'application/json' } } + const { data: response } = await axios.post(url, rpcRequest, headers) + return BigNumberEthers.from(response.result).toString() + } else { + const { data: response } = await axios.get(url) + const data = response.data || response.result || response // Sometimes the data comes with a data parameter + return new BigNumber(data[gasParameter]).multipliedBy(gweiFactor).toString() + } } export const calculateGasPrice = async (): Promise => { diff --git a/yarn.lock b/yarn.lock index ca22ebe2a4..acdc5b7b8e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2147,7 +2147,7 @@ "@gnosis.pm/safe-core-sdk-types" "^0.1.1" ethereumjs-util "^7.0.10" -"@gnosis.pm/safe-deployments@^1.2.0": +"@gnosis.pm/safe-deployments@^1.3.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-deployments/-/safe-deployments-1.4.0.tgz#d49d3d36cc014ef62306d09c0f4761895a17d7a6" integrity sha512-q4salJNQ/Gx0DnZJytAFO/U4OwGI6xTGtTJSOZK+C9Fh2NW8sep+YfSunHQvCLcu4b7WgWEBhxnCV6rpyveLHg== From e407a4bb033ae219375be111b8c0bfb36dff04a2 Mon Sep 17 00:00:00 2001 From: Ino Murko Date: Mon, 22 Nov 2021 08:17:52 +0100 Subject: [PATCH 03/25] safe client gateway - wip mono --- .gitmodules | 3 +++ boba_ops/safe-client-gateway | 1 + src/config/networks/boba_rinkeby.ts | 4 ++-- 3 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 .gitmodules create mode 160000 boba_ops/safe-client-gateway diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000000..7e66ee8add --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "boba_ops/safe-client-gateway"] + path = boba_ops/safe-client-gateway + url = https://github.com/gnosis/safe-client-gateway.git diff --git a/boba_ops/safe-client-gateway b/boba_ops/safe-client-gateway new file mode 160000 index 0000000000..1d211160d1 --- /dev/null +++ b/boba_ops/safe-client-gateway @@ -0,0 +1 @@ +Subproject commit 1d211160d1578007d0e660de152a9515e0c79c46 diff --git a/src/config/networks/boba_rinkeby.ts b/src/config/networks/boba_rinkeby.ts index 644c5c91fb..7b13c721fa 100644 --- a/src/config/networks/boba_rinkeby.ts +++ b/src/config/networks/boba_rinkeby.ts @@ -24,7 +24,7 @@ const baseConfig: EnvironmentSettings = { networkExplorerApiUrl: 'https://blockexplorer.rinkeby.boba.network/api', } -const arbitrum: NetworkConfig = { +const boba_rinkeby: NetworkConfig = { environment: { dev: { ...baseConfig, @@ -69,4 +69,4 @@ const arbitrum: NetworkConfig = { disabledFeatures: [FEATURES.DOMAIN_LOOKUP, FEATURES.SPENDING_LIMIT], } -export default arbitrum +export default boba_rinkeby From 18cfc114b02e163268e613601f367025ffb33168 Mon Sep 17 00:00:00 2001 From: Ino Murko Date: Mon, 22 Nov 2021 16:27:28 +0100 Subject: [PATCH 04/25] Rinkeby setup --- .gitmodules | 6 ++ boba_ops/README.md | 2 + boba_ops/docker-compose.yml | 109 ++++++++++++++++++++++++++++++ boba_ops/safe-config-service | 1 + boba_ops/safe-transaction-service | 1 + docker-compose.yml | 66 ++++++++++++++++-- 6 files changed, 179 insertions(+), 6 deletions(-) create mode 100644 boba_ops/README.md create mode 100644 boba_ops/docker-compose.yml create mode 160000 boba_ops/safe-config-service create mode 160000 boba_ops/safe-transaction-service diff --git a/.gitmodules b/.gitmodules index 7e66ee8add..d41f98c3e8 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,9 @@ [submodule "boba_ops/safe-client-gateway"] path = boba_ops/safe-client-gateway url = https://github.com/gnosis/safe-client-gateway.git +[submodule "boba_ops/safe-config-service"] + path = boba_ops/safe-config-service + url = https://github.com/gnosis/safe-config-service +[submodule "boba_ops/safe-transaction-service"] + path = boba_ops/safe-transaction-service + url = https://github.com/omgnetwork/safe-transaction-service diff --git a/boba_ops/README.md b/boba_ops/README.md new file mode 100644 index 0000000000..c18639baf9 --- /dev/null +++ b/boba_ops/README.md @@ -0,0 +1,2 @@ +Add users: +docker exec -it boba_ops_safe-transaction-service python manage.py createsuperuser diff --git a/boba_ops/docker-compose.yml b/boba_ops/docker-compose.yml new file mode 100644 index 0000000000..3cd2ed68bd --- /dev/null +++ b/boba_ops/docker-compose.yml @@ -0,0 +1,109 @@ +version: '3.5' + +volumes: + nginx-shared: + +services: + nginx-safe-transaction-service: + image: nginx:alpine + hostname: nginx-safe-transaction-service + ports: + - "8000:8000" + volumes: + - ./safe-transaction-service/docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro + - nginx-shared:/nginx + depends_on: + - safe-transaction-service + + nginx-safe-config-service: + image: nginx:alpine + hostname: nginx-safe-config-service + env_file: + - envs/.env_safe_config_service + ports: + - "8001:80" + volumes: + - ./safe-config-service/nginx/templates:/etc/nginx/templates + - nginx-shared:/nginx + depends_on: + - safe-config-service + + redis: + image: redis:alpine + ports: + - "6379:6379" + command: + - --save "" + - --appendonly no + + db: + image: postgres:13-alpine + ports: + - "5432:5432" + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + + safe-transaction-service: + image: bobanetwork/safe-transaction-service + build: + context: ./safe-transaction-service/ + dockerfile: ./docker/web/Dockerfile + env_file: + - envs/.env_safe_transaction_service + depends_on: + - db + - redis + - worker + - scheduler + working_dir: /app + ports: + - "8888:8888" + volumes: + - nginx-shared:/nginx + command: ./docker/web/run_web.sh + + worker: &worker + image: bobanetwork/safe-transaction-service + build: + context: ./safe-transaction-service/ + dockerfile: ./docker/web/Dockerfile + env_file: + - envs/.env_safe_transaction_service + depends_on: + - db + - redis + command: ./docker/web/celery/worker/run.sh + + scheduler: + <<: *worker + command: ./docker/web/celery/scheduler/run.sh + + safe-client-gateway: + image: bobanetwork/safe-client-gateway + build: + context: ./safe-client-gateway/ + dockerfile: ./Dockerfile + env_file: + - envs/.env_safe_client_gateway + environment: + - REDIS_URI=redis://redis:6379 + - ROCKET_PORT=3666 + - ROCKET_ADDRESS=0.0.0.0 + depends_on: + - redis + ports: + - "8002:3666" + + safe-config-service: + image: bobanetwork/safe-config-service + build: + context: ./safe-config-service/ + dockerfile: ./Dockerfile + tty: true + volumes: + - nginx-shared:/nginx + env_file: + - envs/.env_safe_config_service + depends_on: + - db \ No newline at end of file diff --git a/boba_ops/safe-config-service b/boba_ops/safe-config-service new file mode 160000 index 0000000000..5c23662135 --- /dev/null +++ b/boba_ops/safe-config-service @@ -0,0 +1 @@ +Subproject commit 5c2366213588879f82491617d2239188eb7d753d diff --git a/boba_ops/safe-transaction-service b/boba_ops/safe-transaction-service new file mode 160000 index 0000000000..35630efb13 --- /dev/null +++ b/boba_ops/safe-transaction-service @@ -0,0 +1 @@ +Subproject commit 35630efb1379a2232a06b648b77cf066a2341191 diff --git a/docker-compose.yml b/docker-compose.yml index 38e52e895b..f38be3efbe 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,10 +1,64 @@ -version: '3.2' +version: '3.5' + +volumes: + nginx-shared: services: - safe-react: - build: ./ + nginx: + image: nginx:alpine + hostname: nginx + ports: + - "8000:8000" volumes: - - /app/node_modules - - ./:/app + - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro + - nginx-shared:/nginx + depends_on: + - web + + redis: + image: redis:alpine ports: - - 3000:3000 + - "6379:6379" + command: + - --save "" + - --appendonly no + + db: + image: postgres:14-alpine + ports: + - "5432:5432" + environment: + POSTGRES_USER: postgres + POSTGRES_PASSWORD: postgres + + web: + build: + context: . + dockerfile: docker/web/Dockerfile + env_file: + - .env + depends_on: + - db + - redis + working_dir: /app + ports: + - "8888:8888" + volumes: + - nginx-shared:/nginx + command: docker/web/run_web.sh + + worker: &worker + build: + context: . + dockerfile: docker/web/Dockerfile + env_file: + - .env + depends_on: + - db + - redis + command: docker/web/celery/worker/run.sh + + scheduler: + <<: *worker + command: docker/web/celery/scheduler/run.sh + From b5df8998c014787c9c8a565828af4e7e5c8fce15 Mon Sep 17 00:00:00 2001 From: Ino Murko Date: Mon, 22 Nov 2021 18:12:43 +0100 Subject: [PATCH 05/25] Boba and service provisioning --- boba_ops/README.md | 8 +++++++- boba_ops/boba_logo.png | Bin 0 -> 4694 bytes boba_ops/boba_logo.svg | 30 ++++++++++++++++++++++++++++++ boba_ops/docker-compose.yml | 5 +++-- 4 files changed, 40 insertions(+), 3 deletions(-) create mode 100644 boba_ops/boba_logo.png create mode 100644 boba_ops/boba_logo.svg diff --git a/boba_ops/README.md b/boba_ops/README.md index c18639baf9..a187f44262 100644 --- a/boba_ops/README.md +++ b/boba_ops/README.md @@ -1,2 +1,8 @@ Add users: -docker exec -it boba_ops_safe-transaction-service python manage.py createsuperuser +docker exec -it boba_ops-safe-transaction-service-1 python manage.py createsuperuser + +Add chain: +http://localhost:8001/admin/chains/chain/add/ + +Add master records: +http://localhost:8000/admin/history/safemastercopy/add/ \ No newline at end of file diff --git a/boba_ops/boba_logo.png b/boba_ops/boba_logo.png new file mode 100644 index 0000000000000000000000000000000000000000..950682151cdd074f14aad9659b821176b45a7511 GIT binary patch literal 4694 zcmV-c5~=NpP)9(z;Tu zT7$9(F0@sYMXgm-TtG2Ysk<#oEOJ~RB$+o%W|CMS0-4$0tfl%xK~5h37kI1N5&Jwe<@&kvX6{=Ao~bFR`|$x!gQu!D*eVs z#yyaEFd7+{J4+IQeSCDZJ@&fnVkBqjdbe^D%{^=v5N1Sg8#CfHU zjNSo3_n<(WYkXw%h;xDf<^&%ZPniD5G5sPD_@$4Gdo^^WK%8&-$ao^oMFOUSd}Q1c z=aB-C%Y9@#5$CglsdTfCjLV}q5!f5Rt7l*~MiYUb_~>Xe{2c~3u@{!R~?Jo&x=z1R+y~9WZejyO&CLb9+PQOP0 zbFz<&CrsB0n0E1zaj(`d6eQ<6J~Ez&^Iw9;{wp6Dmj~3jjgO2cQ)#Mz>770@ zdYoRzfNX{?Ap6^R`g>ug5RkG*qZ0ssPr>pJzo@IN`v)h^=k0!nQ4-ibE`V_yZiND- z1HMiKx?>*1|I+i-Bm(<_(|iof?{w4%@b7bR&S-CE1I)#OY9Am-1k7X_2j6`t5OhkC zEvDbWdB4rdgq=OpQ80cFbDoR!QRtMw*iGdrn0Hx0-;K_61pqNBSLr3Qn4$*vTc$D3QXs0|Wg;tUaUyUaZ%+ebOOmM2IfC&x?z?MZx&qAv z7#*{TCtz^^In1jy=h=YKAWzJX5=LsLf?TS((9&q8uvMolaCQf{_6QFkn#Z@92&KVw zYWcOn5lKoYXZCb-_y<%z)0b=1%~QacqGA7^NC=7EV3 z=V#ENI}8iSGCfc1zUL)jgG?WO-BDS<6UY2anNO&Sv9Vj0=DFH+WdJQOzYuc%6N;Nu z!I+NH3PVva`ojN@CnCR<9?nWSG{d;tE091uCn#cyDUy)pGZ{t^jmh-cw{~E{Gxpas zl^zoa{ytQ7lKR8&6Mj$SGq}st2cHix9SWaKbfCe$@!IbS?$r~n@gJLYL-TG7t~;7) zl%H`FY1vz-)zJ=%YwX6xXKp!$r+T5ybelO#9>y%3h?DC<4g62Z*e|n~=p+w7o{n~$ z;=0?(c{tVq5%ne}Q~|nKrw#~hcHvsH7#^#LnL9dUM(nFP$%66MVf4g<1G(M;gZoj4 zIlNX!@>8l6*F)MG?PhW%g2$e0?Y9s^8oHhy+HhzeDb(j38d9mZB3gi)U5tyUA%%nF z7)qY#7Pt8ZB-J^dOJKZ8P9i!Qc{-Q^({;wslw#p)D-wZ_o9p5El8sD6Gy~TDU`>M0 z!;CD25NUR7FH5OjBss@9?cEuShmQ=!m!Ew|G7*ln^%wgUR2ygH$0L0ebG=?+CVcL+dkdb2=S!wWrgAKR zxO-tLrgRTmriYU*A@!o&P9+pGp2&|I2^wn)D#N{{ATw@_O6>yeg8rttO2+!iOx8Y; zWL_oQ=XIyvEjCp3Dend;SK^GCkq|!aEy0|=Xl|_bxs+`1%Vz6 zxGoj$6;?75ad@qw^PHo0D#4nH{w5HU<0I)@BtnH9`ez3~o-h1vYc`7VXv1N%z_1rO z`0X%^cEI0vh2IZ$#O!h7r8G>djEfZayI3$sFvfVe4W2y&$=d{TydWEKQ|gK$Ik0zI zat^5o{-d?#a|>!BJwmaHUYvvTW09c(aaLJ?QYbiJ4QNYQ*{*O-CAV9!)Fg|$OhbfV zx?#0LgBt;~Lsm;s0gmYyv)T?-M~~~avOLXP0Q^cgrUg~T?G|$_67Kbi&GWr1{N|o) z2KIqrP7<2P{eS^~Y5Qy)IVNKzs%~kgQc|)HfHS`hq?oY)flXegYh`5@_p;af(9V+8`aI2U{MxVa%Xoy$3p=HBoTbbzFG zDxs?I6hXzj>~u1n;_(9ut11SCYQp&ppqm7#bdF+^U^hE=TCNfw1Ws?1wqbd1__9{* zz~|jCF>w}ZqFo%*U}gAtr*mpGv5bLc4MuaQaMEH3rDS_H50+>RGo9KzO4Rjcz$s}W zt({6iJbYOiamEctQT|Y6_>@*@+VZ=mf>`7pvj@i)4<`MHg{m|&%}Kce5+wAg0ux;$ zNTVA$1JQ0;%5Nbgbp&AX3Bz;)Cp2Y4uGg@wJjr$Nns5cNMi|GgeJ2D6<*j?B0LChkhLzC?@c0S zYy-pUX@NMOW9NK=eEh9N6NN!29(g2KWgNw%<_+n@87^mYt+RSl z3hnWW>3liH^ldheWyuNhj%bY}A;y?Qew|(714>adP~d^iV#GNw70Af7=bf9WQXV1>6M3-4Dqb$${j&mhYqpU~gxOK31{Sdo$p)6x8jT|ic2Mn(_*!Qon?-%3(Lv(=6+qZ(rQ?F7}^=Vv;I~Z|eB~u|Ur0xzG&!>DJ zGv0Q&=+|)K#9bB!=C=P6$+?~_`d`wwB_r1`;@fQwA$6&&>`D@`&4J|F#sP6Iwkobe zXO4aUbq=KD_+-!@6S*;^68=6ano3lF#67mojKc>Cp5c$F4pH&m1y$kO;PcloOoY79qRuK2I3}K6~2Xj5m=U@t*;Oxv07X2A+ zALla8Nin&N46CPvc@_x_-#=AyR)heHS`#iyod@4r;-Y3u!#v)M5=ltY>&3PYyXG?C zgCr-vUnMs$QWDRFxZFl*C0h>nZ(?P;k~fwn|}-RG>0+9 zJ%IDTEMgcDqB7>hn3@z5h>H7p+SDraq#SHZ7BQge%poMqupxUh`TY_zkO0m_0%N>n zp&C9EDi#Z~O_-ztIoH2uu?Uld=NfBwAI#zcj8?P!g{i3~R(O~xVWf%YcS_~Rs!bG3 z&=#DOk}Nuua|PnO$ui+s%2#xf;tw4Db-LGS3^$*HoDUxS`LL~dE(YwGt;ur_o7=Kd zrwl6oey1&VjMSQPm=+mHQ^_r%rmDyl`IY5IFv1)x;IqI@ zJT#jzWJNj1LllYGE*8;It@2KxL&L>3lJf%&W?^OIJX>p^wZ7&JVWM;FekZ5~iy&ES>uV?y zvPN1AtExy=H&kB`tGK|yJUdC1jaDWSBbvWS1%qzOiybmh+RHJp!q?J_q`H?<#ll~% zB+z(S5aX9Eg;zF&NgmsDMeX_s7t(C5qB}{S403s2sT)YL#KIwQpRK5YUu4zh2E%Oy z@yJb>;Nbv^-huJ2Woi|Nj?YN?BcPlzs86eET!W%|f+P%2#Ju2+Pw0Wj5*VA<8NG%CRDCUW^ z@h7-+`uZuZRZo&_AKkgawa*|%e_7Z;bN+G+s*Kxa(Q{~|n~9=xKqU^1ss>a#1y$r} zZc=opCJ9+tF!KgHB#ZVDCmt+V-UZKga|Dif}Eh|vzhbeF^PRNXN`$%&VNTYyhWyJ{W@ z6uZFu$-*4d8Si~1v?E9RTYI7?uE`eL|HBXB34z+0w z=|o%2vD&oA#DP_!)Qwt~NYUObNtSz484zzZ+3Z=1VmuAAMrc3WiF!i&XeQb*xym5I ze(tC~72WLY#+TIcF)xs#gPL$nS9D-Y2(|KyVUB;ybPUpg#6N^y{@`Toah_jciMN!7 z2j6|lD`_)2S;}JWPZgY)qE$o{eWR$^R$-u>kMh?3>$g$WA5Of^vUg}E@cQVqli*J|y Y7i%-oM*ZxXMgRZ+07*qoM6N<$f;rK=R{#J2 literal 0 HcmV?d00001 diff --git a/boba_ops/boba_logo.svg b/boba_ops/boba_logo.svg new file mode 100644 index 0000000000..a58d770d6f --- /dev/null +++ b/boba_ops/boba_logo.svg @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/boba_ops/docker-compose.yml b/boba_ops/docker-compose.yml index 3cd2ed68bd..8f5e99db76 100644 --- a/boba_ops/docker-compose.yml +++ b/boba_ops/docker-compose.yml @@ -2,6 +2,7 @@ version: '3.5' volumes: nginx-shared: + nginx-sharedd: services: nginx-safe-transaction-service: @@ -24,7 +25,7 @@ services: - "8001:80" volumes: - ./safe-config-service/nginx/templates:/etc/nginx/templates - - nginx-shared:/nginx + - nginx-sharedd:/nginx depends_on: - safe-config-service @@ -102,7 +103,7 @@ services: dockerfile: ./Dockerfile tty: true volumes: - - nginx-shared:/nginx + - nginx-sharedd:/nginx env_file: - envs/.env_safe_config_service depends_on: From 41ff28edb2368ac40ba6c4f7129a3752a369e814 Mon Sep 17 00:00:00 2001 From: Ino Murko Date: Mon, 22 Nov 2021 18:17:54 +0100 Subject: [PATCH 06/25] Boba and service provisioning --- boba_logo.svg | 30 ----------------- docker-compose.yml | 66 ++++--------------------------------- src/config/networks/boba.ts | 4 +-- 3 files changed, 8 insertions(+), 92 deletions(-) delete mode 100644 boba_logo.svg diff --git a/boba_logo.svg b/boba_logo.svg deleted file mode 100644 index a58d770d6f..0000000000 --- a/boba_logo.svg +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/docker-compose.yml b/docker-compose.yml index f38be3efbe..76ace1eb6e 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,64 +1,10 @@ -version: '3.5' - -volumes: - nginx-shared: +version: '3.2' services: - nginx: - image: nginx:alpine - hostname: nginx - ports: - - "8000:8000" + safe-react: + build: ./ volumes: - - ./docker/nginx/nginx.conf:/etc/nginx/nginx.conf:ro - - nginx-shared:/nginx - depends_on: - - web - - redis: - image: redis:alpine + - /app/node_modules + - ./:/app ports: - - "6379:6379" - command: - - --save "" - - --appendonly no - - db: - image: postgres:14-alpine - ports: - - "5432:5432" - environment: - POSTGRES_USER: postgres - POSTGRES_PASSWORD: postgres - - web: - build: - context: . - dockerfile: docker/web/Dockerfile - env_file: - - .env - depends_on: - - db - - redis - working_dir: /app - ports: - - "8888:8888" - volumes: - - nginx-shared:/nginx - command: docker/web/run_web.sh - - worker: &worker - build: - context: . - dockerfile: docker/web/Dockerfile - env_file: - - .env - depends_on: - - db - - redis - command: docker/web/celery/worker/run.sh - - scheduler: - <<: *worker - command: docker/web/celery/scheduler/run.sh - + - 3000:3000 \ No newline at end of file diff --git a/src/config/networks/boba.ts b/src/config/networks/boba.ts index af474093e9..d44722a939 100644 --- a/src/config/networks/boba.ts +++ b/src/config/networks/boba.ts @@ -24,7 +24,7 @@ const baseConfig: EnvironmentSettings = { networkExplorerApiUrl: 'https://blockexplorer.boba.network/api', } -const arbitrum: NetworkConfig = { +const boba: NetworkConfig = { environment: { dev: { ...baseConfig, @@ -69,4 +69,4 @@ const arbitrum: NetworkConfig = { disabledFeatures: [FEATURES.DOMAIN_LOOKUP, FEATURES.SPENDING_LIMIT], } -export default arbitrum +export default boba From 96393814e28e0c997322a924b91109abd8a28d2f Mon Sep 17 00:00:00 2001 From: Ino Murko Date: Tue, 23 Nov 2021 17:44:30 +0100 Subject: [PATCH 07/25] Rinkeby local implementation --- src/config/networks/boba_rinkeby.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/config/networks/boba_rinkeby.ts b/src/config/networks/boba_rinkeby.ts index 7b13c721fa..e36611e70d 100644 --- a/src/config/networks/boba_rinkeby.ts +++ b/src/config/networks/boba_rinkeby.ts @@ -9,8 +9,8 @@ import { } from 'src/config/networks/network.d' const baseConfig: EnvironmentSettings = { - clientGatewayUrl: 'http://127.0.0.1:8000/v1', - txServiceUrl: 'http://127.0.0.1:8001/api/v1', + clientGatewayUrl: 'http://127.0.0.1:8002/v1', + txServiceUrl: 'http://127.0.0.1:8000/api/v1', safeUrl: 'http://localhost:3000/app', gasPriceOracles: [ { From 65b80c1990843a5958e187cc7903027a4a58520d Mon Sep 17 00:00:00 2001 From: Ino Murko Date: Tue, 23 Nov 2021 17:52:21 +0100 Subject: [PATCH 08/25] safe-transaction service local allowed hosts update --- boba_ops/safe-transaction-service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boba_ops/safe-transaction-service b/boba_ops/safe-transaction-service index 35630efb13..fd9c0ccd8d 160000 --- a/boba_ops/safe-transaction-service +++ b/boba_ops/safe-transaction-service @@ -1 +1 @@ -Subproject commit 35630efb1379a2232a06b648b77cf066a2341191 +Subproject commit fd9c0ccd8dcbec0825256aa31bf27f782bb1975a From 674dde5030d2afa7d8f618af09c4d91d39911d99 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Wed, 24 Nov 2021 14:50:07 +0100 Subject: [PATCH 09/25] sync submodules --- .github/workflows/build-boba.yml | 103 +++++++++++++++++++++ .github/workflows/deploy-boba.yml | 145 ------------------------------ boba_ops/safe-transaction-service | 2 +- 3 files changed, 104 insertions(+), 146 deletions(-) create mode 100644 .github/workflows/build-boba.yml delete mode 100644 .github/workflows/deploy-boba.yml diff --git a/.github/workflows/build-boba.yml b/.github/workflows/build-boba.yml new file mode 100644 index 0000000000..c9a978fba5 --- /dev/null +++ b/.github/workflows/build-boba.yml @@ -0,0 +1,103 @@ +name: Publish Containers + +on: + push: + branches: + - 'inomurko/v3.14.5' + +jobs: + + start-runner: + name: Start self-hosted EC2 runner + runs-on: ubuntu-latest + outputs: + label: ${{ steps.start-ec2-runner.outputs.label }} + ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Start EC2 runner + id: start-ec2-runner + uses: machulav/ec2-github-runner@v2 + with: + mode: start + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + ec2-image-id: ami-00b46fa1102c70ff2 + ec2-instance-type: t2.xlarge + subnet-id: subnet-905870ae + security-group-id: sg-0855631d714870b32 + + build-publish-win: + needs: start-runner + runs-on: ${{ needs.start-runner.outputs.label }} + + steps: + - name: Login to Docker Hub + uses: docker/login-action@v1 + with: + username: ${{ secrets.DOCKERHUB_ACCESS_TOKEN_USERNAME }} + password: ${{ secrets.DOCKERHUB_ACCESS_TOKEN_SECRET }} + + - uses: actions/checkout@v2 + + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "::set-output name=dir::$(yarn cache dir)" + + - uses: actions/cache@v2 + id: yarn-cache + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + + - name: Get services + working-directory: ./boba_ops + run: git submodule sync --recursive + + - name: Build the services + working-directory: ./boba_ops + run: docker compose build + + - name: Tag + working-directory: ./ops + run: | + for i in $(docker images --format "{{.Repository}}:{{.Tag}}" | grep bobanetwork); do + docker image tag "$i" bobanetwork/$(echo $i | awk -F'/' '{print $2}' | awk -F':' '{print $1}'):latest + done + docker images + + - name: Push + working-directory: ./ops + run: | + for i in $(docker images --format "{{.Repository}}:{{.Tag}}" | grep bobanetwork); do + echo "$1" + docker push "$i" + done + + stop-runner: + name: Stop self-hosted EC2 runner + needs: + - start-runner # required to get output from the start-runner job + - build-publish-win # required to wait when the main job is done + runs-on: ubuntu-latest + if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs + steps: + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_REGION }} + - name: Stop EC2 runner + uses: machulav/ec2-github-runner@v2 + with: + mode: stop + github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} + label: ${{ needs.start-runner.outputs.label }} + ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} diff --git a/.github/workflows/deploy-boba.yml b/.github/workflows/deploy-boba.yml deleted file mode 100644 index bf43097e33..0000000000 --- a/.github/workflows/deploy-boba.yml +++ /dev/null @@ -1,145 +0,0 @@ -name: Deploy to Boba network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'boba' - REACT_APP_LATEST_SAFE_VERSION: '1.3.0' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_BOBA_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_BOBA }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_BOBA }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/boba_ops/safe-transaction-service b/boba_ops/safe-transaction-service index fd9c0ccd8d..081aebdee7 160000 --- a/boba_ops/safe-transaction-service +++ b/boba_ops/safe-transaction-service @@ -1 +1 @@ -Subproject commit fd9c0ccd8dcbec0825256aa31bf27f782bb1975a +Subproject commit 081aebdee750fadff22ad734e6e7481ee0feff8d From d6b5d892a868b01df8dca63044eac164e4c49889 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Fri, 26 Nov 2021 17:42:44 +0100 Subject: [PATCH 10/25] bump transaction service with deterministic deployment stuff --- .github/workflows/build-boba.yml | 49 -------- .github/workflows/cla.yml | 26 ---- .github/workflows/deploy-arbitrum.yml | 146 ---------------------- .github/workflows/deploy-bsc.yml | 148 ---------------------- .github/workflows/deploy-ewc.yml | 148 ---------------------- .github/workflows/deploy-mainnet.yml | 152 ---------------------- .github/workflows/deploy-polygon.yml | 144 --------------------- .github/workflows/deploy-rinkeby.yml | 173 -------------------------- .github/workflows/deploy-volta.yml | 147 ---------------------- .github/workflows/deploy-xdai.yml | 148 ---------------------- boba_ops/safe-transaction-service | 2 +- 11 files changed, 1 insertion(+), 1282 deletions(-) delete mode 100644 .github/workflows/cla.yml delete mode 100644 .github/workflows/deploy-arbitrum.yml delete mode 100644 .github/workflows/deploy-bsc.yml delete mode 100644 .github/workflows/deploy-ewc.yml delete mode 100644 .github/workflows/deploy-mainnet.yml delete mode 100644 .github/workflows/deploy-polygon.yml delete mode 100644 .github/workflows/deploy-rinkeby.yml delete mode 100644 .github/workflows/deploy-volta.yml delete mode 100644 .github/workflows/deploy-xdai.yml diff --git a/.github/workflows/build-boba.yml b/.github/workflows/build-boba.yml index c9a978fba5..c7cef7f654 100644 --- a/.github/workflows/build-boba.yml +++ b/.github/workflows/build-boba.yml @@ -7,34 +7,7 @@ on: jobs: - start-runner: - name: Start self-hosted EC2 runner - runs-on: ubuntu-latest - outputs: - label: ${{ steps.start-ec2-runner.outputs.label }} - ec2-instance-id: ${{ steps.start-ec2-runner.outputs.ec2-instance-id }} - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Start EC2 runner - id: start-ec2-runner - uses: machulav/ec2-github-runner@v2 - with: - mode: start - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - ec2-image-id: ami-00b46fa1102c70ff2 - ec2-instance-type: t2.xlarge - subnet-id: subnet-905870ae - security-group-id: sg-0855631d714870b32 - build-publish-win: - needs: start-runner - runs-on: ${{ needs.start-runner.outputs.label }} - steps: - name: Login to Docker Hub uses: docker/login-action@v1 @@ -79,25 +52,3 @@ jobs: echo "$1" docker push "$i" done - - stop-runner: - name: Stop self-hosted EC2 runner - needs: - - start-runner # required to get output from the start-runner job - - build-publish-win # required to wait when the main job is done - runs-on: ubuntu-latest - if: ${{ always() }} # required to stop the runner even if the error happened in the previous jobs - steps: - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_REGION }} - - name: Stop EC2 runner - uses: machulav/ec2-github-runner@v2 - with: - mode: stop - github-token: ${{ secrets.GH_PERSONAL_ACCESS_TOKEN }} - label: ${{ needs.start-runner.outputs.label }} - ec2-instance-id: ${{ needs.start-runner.outputs.ec2-instance-id }} diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml deleted file mode 100644 index fa2f29e07f..0000000000 --- a/.github/workflows/cla.yml +++ /dev/null @@ -1,26 +0,0 @@ -name: 'CLA Assistant' -on: - issue_comment: - types: [created] - pull_request_target: - types: [opened, closed, synchronize] - -jobs: - CLAssistant: - runs-on: ubuntu-latest - steps: - - name: 'CLA Assistant' - if: (github.event.comment.body == 'recheckcla' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' - # Alpha Release - uses: gnosis/github-action@master - # GitHub token, automatically provided to the action - # (No need to define this secret in the repo settings) - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - with: - path-to-signatures: 'signatures/version1/cla.json' - path-to-cla-document: 'https://github.com/gnosis/safe-react/blob/main/GNOSISCLA.md' - branch: 'cla-signatures' - allowlist: lukasschor,mikheevm,rmeissner,germartinez,davidalbela,Uxio0,dasanra,francovenica,tschubotz,luarx,giacomolicari,gnosis-info,bot*,katspaugh,DaniSomoza,iamacook,yagopv - empty-commit-flag: false - blockchain-storage-flag: false diff --git a/.github/workflows/deploy-arbitrum.yml b/.github/workflows/deploy-arbitrum.yml deleted file mode 100644 index 7dd0e8dee2..0000000000 --- a/.github/workflows/deploy-arbitrum.yml +++ /dev/null @@ -1,146 +0,0 @@ -name: Deploy to Arbitrum network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'arbitrum' - REACT_APP_LATEST_SAFE_VERSION: '1.3.0' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_ARBITRUM_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_ARBITRUM }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_ARBITRUM }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # Arbitrum build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-bsc.yml b/.github/workflows/deploy-bsc.yml deleted file mode 100644 index 55fb904ffb..0000000000 --- a/.github/workflows/deploy-bsc.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: Deploy to Binance smart chain - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - branches: - - main - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'bsc' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_BSC_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_BSC }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_BSC }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to development environment - # xDai build is never created in development branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-ewc.yml b/.github/workflows/deploy-ewc.yml deleted file mode 100644 index e9c77ede8a..0000000000 --- a/.github/workflows/deploy-ewc.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: Deploy to EWC network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - branches: - - main - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'energy_web_chain' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_EWC_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_EWC }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_EWC }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # EWC build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-mainnet.yml b/.github/workflows/deploy-mainnet.yml deleted file mode 100644 index 54b192f95b..0000000000 --- a/.github/workflows/deploy-mainnet.yml +++ /dev/null @@ -1,152 +0,0 @@ -name: Deploy to Mainnet network - -# Run on pushes to main or PRs -on: - # Pull request hook without any config. Launches for every pull request - pull_request: - push: - branches: - - main - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'mainnet' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_MAINNET_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_MAINNET }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_MAINNET }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - REACT_APP_ETHERSCAN_API_KEY: ${{ secrets.REACT_APP_ETHERSCAN_API_KEY }} - REACT_APP_ETHGASSTATION_API_KEY: ${{ secrets.REACT_APP_ETHGASSTATION_API_KEY }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN: ${{ secrets.REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - TRAVIS_TAG: ${{ github.event.release.tag_name }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # Mainnet build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' # Or refs/heads/main - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-polygon.yml b/.github/workflows/deploy-polygon.yml deleted file mode 100644 index 306847229e..0000000000 --- a/.github/workflows/deploy-polygon.yml +++ /dev/null @@ -1,144 +0,0 @@ -name: Deploy to Polygon network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'polygon' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_POLYGON_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_POLYGON }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_POLYGON }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN: ${{ secrets.REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # Polygon build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-rinkeby.yml b/.github/workflows/deploy-rinkeby.yml deleted file mode 100644 index 04ee381447..0000000000 --- a/.github/workflows/deploy-rinkeby.yml +++ /dev/null @@ -1,173 +0,0 @@ -name: Deploy to Rinkeby network - -# Run on pushes to dev/main or PR -on: - # Pull request hook without any config. Launches for every pull request - pull_request: - # Launches for pushes to main or dev - push: - branches: - - main - - dev - # Launches build when release is published - release: - types: [published] - workflow_dispatch: - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'rinkeby' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_RINKEBY_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_RINKEBY }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_RINKEBY }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - REACT_APP_ETHERSCAN_API_KEY: ${{ secrets.REACT_APP_ETHERSCAN_API_KEY }} - REACT_APP_ETHGASSTATION_API_KEY: ${{ secrets.REACT_APP_ETHGASSTATION_API_KEY }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app ${{ env.REACT_APP_ENV }} - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN: ${{ secrets.REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - TRAVIS_TAG: ${{ github.event.release.tag_name }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - - # Script to notify production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} - e2e: - name: Trigger e2e tests - if: success() && github.ref == 'refs/heads/dev' - runs-on: ubuntu-latest - steps: - - name: Repository Dispatch - uses: peter-evans/repository-dispatch@v1 - with: - token: ${{ secrets.E2E_RUN_HOOK_ACCESS_TOKEN }} - repository: gnosis/safe-react-e2e-tests - event-type: run-e2e-from-safe-react - e2ePR: - name: Trigger e2e tests on pr - if: github.event.number - needs: deploy - runs-on: ubuntu-latest - steps: - - name: Repository Dispatch - uses: peter-evans/repository-dispatch@v1 - with: - token: ${{ secrets.E2E_RUN_HOOK_ACCESS_TOKEN }} - repository: gnosis/safe-react-e2e-tests - event-type: run-e2e-tests-from-safe-react-on-pr - client-payload: '{"pr_number": "${{ github.event.number }}"}' diff --git a/.github/workflows/deploy-volta.yml b/.github/workflows/deploy-volta.yml deleted file mode 100644 index 0fdaa860cd..0000000000 --- a/.github/workflows/deploy-volta.yml +++ /dev/null @@ -1,147 +0,0 @@ -name: Deploy to Volta network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - branches: - - main - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'volta' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_VOLTA_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_VOLTA }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_VOLTA }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # Volta build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/.github/workflows/deploy-xdai.yml b/.github/workflows/deploy-xdai.yml deleted file mode 100644 index 2eef022c8e..0000000000 --- a/.github/workflows/deploy-xdai.yml +++ /dev/null @@ -1,148 +0,0 @@ -name: Deploy to xDai network - -# Run on pushes to main or PRs to main -on: - push: - branches: - - main - pull_request: - branches: - - main - # Launches build when release is published - release: - types: [published] - -env: - REPO_NAME_ALPHANUMERIC: safereact - REACT_APP_NETWORK: 'xdai' - STAGING_BUCKET_NAME: ${{ secrets.STAGING_XDAI_BUCKET_NAME }} - REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_XDAI }} - REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_XDAI }} - REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} - -jobs: - debug: - name: Debug - runs-on: ubuntu-latest - steps: - - name: Dump env - run: env | sort - - name: Dump GitHub context - env: - GITHUB_CONTEXT: ${{ toJson(github) }} - run: echo "$GITHUB_CONTEXT" - deploy: - name: Deployment - runs-on: ubuntu-latest - - steps: - - name: Cancel Previous Runs - uses: styfle/cancel-workflow-action@0.8.0 - with: - access_token: ${{ github.token }} - - name: Remove broken apt repos [Ubuntu] - if: ${{ matrix.os }} == 'ubuntu-latest' - run: | - for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done - - uses: actions/checkout@v2 - - - name: Setup Node.js - uses: actions/setup-node@v2 - with: - node-version: 14 - - - uses: actions/cache@v2 - with: - path: '**/node_modules' - key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} - - - run: | - sudo apt-get update - sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev - pip install awscli --upgrade --user - # Due to some dependencies yarn may randomly throw an error about invalid cache - # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue - # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) - mkdir .yarncache - yarn install --cache-folder ./.yarncache --frozen-lockfile - rm -rf .yarncache - yarn cache clean - - # Set production flag - - name: Set production flag for release PR or tagged build - run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV - if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' - - - name: Build ${{ env.REACT_APP_NETWORK }} app - run: yarn build - env: - PUBLIC_URL: './' - REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} - REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} - REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} - REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} - REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} - - - name: Configure AWS credentials - uses: aws-actions/configure-aws-credentials@v1 - with: - aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} - aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - aws-region: ${{ secrets.AWS_DEFAULT_REGION }} - - # Script to deploy Pull Requests - - run: bash ./scripts/github/deploy_pull_request.sh - if: success() && github.event.number - env: - PR_NUMBER: ${{ github.event.number }} - REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - - - name: 'PRaul: Comment PR with app URLs' - uses: mshick/add-pr-comment@v1 - with: - message: | - * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) - repo-token: ${{ secrets.GITHUB_TOKEN }} - repo-token-user-login: 'github-actions[bot]' - if: success() && github.event.number - env: - REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com - - # Script to deploy to the dev environment - # xDai build is never created on the dev branch - - # Script to deploy to staging environment - - name: 'Deploy to S3: Staging' - if: github.ref == 'refs/heads/main' - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete - - # Script to upload release files - - name: 'Upload release build files for production' - if: startsWith(github.ref, 'refs/tags/v') - run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete - # - run: bash ./scripts/github/deploy_release.sh - # if: startsWith(github.ref, 'refs/tags/v') - # env: - # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} - # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} - # PR_NUMBER: ${{ github.event.number }} - # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} - # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} - # VERSION_TAG: ${{ github.event.release.tag_name }} - - # Script to prepare production deployments - - run: bash ./scripts/github/prepare_production_deployment.sh - if: success() && startsWith(github.ref, 'refs/tags/v') - env: - PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} - PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} - VERSION_TAG: ${{ github.event.release.tag_name }} - - # Upload Sentry source maps when sending to staging or production - - run: yarn sentry-upload-sourcemaps - if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) - env: - SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} - SENTRY_ORG: ${{ secrets.SENTRY_ORG}} - SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} diff --git a/boba_ops/safe-transaction-service b/boba_ops/safe-transaction-service index 081aebdee7..5b380d1ef0 160000 --- a/boba_ops/safe-transaction-service +++ b/boba_ops/safe-transaction-service @@ -1 +1 @@ -Subproject commit 081aebdee750fadff22ad734e6e7481ee0feff8d +Subproject commit 5b380d1ef0a92a286bcece7d39e9e64f371b0e74 From e940d76c6cbf1f093bbbbbe9cde578964360516d Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Fri, 26 Nov 2021 18:09:04 +0100 Subject: [PATCH 11/25] add deterministic addresses patch --- package.json | 2 +- .../@gnosis.pm+safe-deployments+1.4.0.patch | 119 ++++++++++-------- yarn.lock | 2 +- 3 files changed, 70 insertions(+), 53 deletions(-) diff --git a/package.json b/package.json index 3cf35fd30e..832c2401be 100644 --- a/package.json +++ b/package.json @@ -171,7 +171,7 @@ "@gnosis.pm/safe-apps-sdk": "4.3.0-next.2", "@gnosis.pm/safe-apps-sdk-v1": "npm:@gnosis.pm/safe-apps-sdk@0.4.2", "@gnosis.pm/safe-core-sdk": "^0.3.1", - "@gnosis.pm/safe-deployments": "^1.3.0", + "@gnosis.pm/safe-deployments": "1.4.0", "@gnosis.pm/safe-react-components": "^0.8.0", "@gnosis.pm/safe-react-gateway-sdk": "2.3.0", "@ledgerhq/hw-transport-node-hid-singleton": "6.3.0", diff --git a/patches/@gnosis.pm+safe-deployments+1.4.0.patch b/patches/@gnosis.pm+safe-deployments+1.4.0.patch index 45d35244b2..d30cefa934 100644 --- a/patches/@gnosis.pm+safe-deployments+1.4.0.patch +++ b/patches/@gnosis.pm+safe-deployments+1.4.0.patch @@ -1,238 +1,255 @@ diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json -index 225379c..6a22a31 100644 +index 225379c..5b32517 100644 --- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json +++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", "43114": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", "73799": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4" + "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", -+ "28": "0x999933FF5284038197602a80173F4f4ECb634866" ++ "28": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", ++ "288": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json -index e476420..e8185c6 100644 +index e476420..5acd284 100644 --- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json +++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", "43114": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", "73799": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4" + "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", -+ "28": "0xf71904bD3DCD3141BAF74AFD8F17281e207defe6" ++ "28": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", ++ "288": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json -index 550950f..bf8dee5 100644 +index 550950f..0203d88 100644 --- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json +++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", "43114": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", "73799": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" + "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", -+ "28": "0x47b45765ee4e270dE60852295bB0Dd105E1A4Df0" ++ "28": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", ++ "288": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json -index 2e36bfd..1b088c5 100644 +index 2e36bfd..3a9e05a 100644 --- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json +++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", "43114": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", "73799": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E" + "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", -+ "28": "0xE84AAb853C4FBaafd3eD795F67494d4Da1539492" ++ "28": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", ++ "288": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json -index b6e04a2..ec8d079 100644 +index b6e04a2..01fd130 100644 --- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json +++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0x998739BFdAAdde7C933B942a68053933098f9EDa", "43114": "0x998739BFdAAdde7C933B942a68053933098f9EDa", "73799": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761" + "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", -+ "28": "0xDBD71249Fe60c9f9bF581b3594734E295EAfA9b2" ++ "28": "0x998739BFdAAdde7C933B942a68053933098f9EDa", ++ "288": "0x998739BFdAAdde7C933B942a68053933098f9EDa" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json -index daccb28..9d02b96 100644 +index daccb28..4e8787e 100644 --- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json +++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", "43114": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", "73799": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D" + "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", -+ "28": "0x12D02fE0C317d6De6712441549dbB743B6f7bbB6" ++ "28": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", ++ "288": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json -index 6f7bba4..ace506a 100644 +index 6f7bba4..879e392 100644 --- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json +++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", "43114": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", "73799": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2" + "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", -+ "28": "0x172e17a6B3960940E3678f3CECb6288647e47877" ++ "28": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", ++ "288": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json -index 3a20a1e..7bb5802 100644 +index 3a20a1e..dbf928c 100644 --- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json +++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", "43114": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", "73799": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C" + "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", -+ "28": "0xe8605594628AB2e265815D918C8378801d89D7e8" ++ "28": "0xE1209DABA608dc6c07d018042a8B8Cdb784bE05b", ++ "288": "0xE1209DABA608dc6c07d018042a8B8Cdb784bE05b" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json -index 137169b..70e2786 100644 +index 137169b..2a6d2f0 100644 --- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json +++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", "43114": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", "73799": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4" + "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", -+ "28": "0x999933FF5284038197602a80173F4f4ECb634866" ++ "28": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", ++ "288": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json -index 4b2a145..25317c3 100644 +index 4b2a145..e99568f 100644 --- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json +++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", "43114": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", "73799": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4" + "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", -+ "28": "0xf71904bD3DCD3141BAF74AFD8F17281e207defe6" ++ "28": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", ++ "288": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json -index 918cf71..7d16413 100644 +index 918cf71..a642cda 100644 --- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json +++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", "43114": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", "73799": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" + "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", -+ "28": "0x47b45765ee4e270dE60852295bB0Dd105E1A4Df0" ++ "28": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", ++ "288": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json -index 6706c6f..879c09a 100644 +index 6706c6f..a9659ef 100644 --- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json +++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", "43114": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", "73799": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E" + "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", -+ "28": "0xE84AAb853C4FBaafd3eD795F67494d4Da1539492" ++ "28": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", ++ "288": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json -index e5ef031..2af3b2c 100644 +index e5ef031..985a080 100644 --- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json +++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0x998739BFdAAdde7C933B942a68053933098f9EDa", "43114": "0x998739BFdAAdde7C933B942a68053933098f9EDa", "73799": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761" + "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", -+ "28": "0xDBD71249Fe60c9f9bF581b3594734E295EAfA9b2" ++ "28": "0x998739BFdAAdde7C933B942a68053933098f9EDa", ++ "288": "0x998739BFdAAdde7C933B942a68053933098f9EDa" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json -index ba6efcf..78139b5 100644 +index ba6efcf..e674bfd 100644 --- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json +++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", "43114": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", "73799": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D" + "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", -+ "28": "0x12D02fE0C317d6De6712441549dbB743B6f7bbB6" ++ "28": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", ++ "288": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json -index 678c97a..c8eba9b 100644 +index 678c97a..a88c29e 100644 --- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json +++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", "43114": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", "73799": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2" + "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", -+ "28": "0x172e17a6B3960940E3678f3CECb6288647e47877" ++ "28": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", ++ "288": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json -index 246eae6..2112ca9 100644 +index 246eae6..2e3c3ee 100644 --- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json +++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", "43114": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", "73799": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C" + "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", -+ "28": "0xe8605594628AB2e265815D918C8378801d89D7e8" ++ "28": "0xE1209DABA608dc6c07d018042a8B8Cdb784bE05b", ++ "288": "0xE1209DABA608dc6c07d018042a8B8Cdb784bE05b" }, "abi": [ { diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json -index 7aa6831..8a2d4f9 100644 +index 7aa6831..be8ef0d 100644 --- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json +++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json -@@ -17,7 +17,8 @@ +@@ -17,7 +17,9 @@ "42220": "0x727a77a074D1E6c4530e814F89E618a3298FC044", "43114": "0x727a77a074D1E6c4530e814F89E618a3298FC044", "73799": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "333999": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da" + "333999": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", -+ "28": "0x9741744E15b03945CcfA2c27841bf972c95E0A92" ++ "28": "0x727a77a074D1E6c4530e814F89E618a3298FC044", ++ "288": "0x727a77a074D1E6c4530e814F89E618a3298FC044" }, "abi": [ { diff --git a/yarn.lock b/yarn.lock index acdc5b7b8e..e61acbbb4f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2147,7 +2147,7 @@ "@gnosis.pm/safe-core-sdk-types" "^0.1.1" ethereumjs-util "^7.0.10" -"@gnosis.pm/safe-deployments@^1.3.0": +"@gnosis.pm/safe-deployments@1.4.0": version "1.4.0" resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-deployments/-/safe-deployments-1.4.0.tgz#d49d3d36cc014ef62306d09c0f4761895a17d7a6" integrity sha512-q4salJNQ/Gx0DnZJytAFO/U4OwGI6xTGtTJSOZK+C9Fh2NW8sep+YfSunHQvCLcu4b7WgWEBhxnCV6rpyveLHg== From 27f2505cb51d53fd75fe9cbd1cd3338901e97922 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Fri, 26 Nov 2021 18:22:22 +0100 Subject: [PATCH 12/25] missing runs on .. --- .github/workflows/build-boba.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-boba.yml b/.github/workflows/build-boba.yml index c7cef7f654..99c7c810b7 100644 --- a/.github/workflows/build-boba.yml +++ b/.github/workflows/build-boba.yml @@ -8,6 +8,8 @@ on: jobs: build-publish-win: + name: Create containers + runs-on: ubuntu-latest steps: - name: Login to Docker Hub uses: docker/login-action@v1 From 75d706db658ad23da6411a0a0e6c4d2d5a8222f6 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Fri, 26 Nov 2021 18:25:01 +0100 Subject: [PATCH 13/25] env files --- boba_ops/envs/.env_safe_client_gateway | 60 +++++++++++ boba_ops/envs/.env_safe_config_service | 108 ++++++++++++++++++++ boba_ops/envs/.env_safe_transaction_service | 11 ++ 3 files changed, 179 insertions(+) create mode 100644 boba_ops/envs/.env_safe_client_gateway create mode 100644 boba_ops/envs/.env_safe_config_service create mode 100644 boba_ops/envs/.env_safe_transaction_service diff --git a/boba_ops/envs/.env_safe_client_gateway b/boba_ops/envs/.env_safe_client_gateway new file mode 100644 index 0000000000..3346f9cc6f --- /dev/null +++ b/boba_ops/envs/.env_safe_client_gateway @@ -0,0 +1,60 @@ +# Staging +CONFIG_SERVICE_URI=http://nginx-safe-config-service +# Production +# CONFIG_SERVICE_URI=https://safe-config.gnosis.io + +# Feature Flags +FEATURE_FLAG_NESTED_DECODING=true +FEATURE_FLAG_BALANCES_RATE_IMPLEMENTATION=false + +SCHEME=http +# Random string (generated with openssl rand -base64 32) +ROCKET_SECRET_KEY=Qt6DPFUU8qO4BKTCQnKAgt9FBBJxIWAYUGyHuruVfpE= +ROCKET_LOG_LEVEL=debug +ROCKET_PORT=8000 +ROCKET_ADDRESS=127.0.0.1 +# ROCKET_PORT=8000 +# ROCKET_ADDRESS=localhost +WEBHOOK_TOKEN=some_random_token +# Rocket logs are noise-y, this value filters the logs for errors and our perf monitor +# Set to "debug" when developing +# You can select which proportion of the time logs are emited with LOG_THRESHOLD values range [0.0, 1.0] +# Each time we log, we will generate a random (from a uniform distribution) number that we will test against LOG_THRESHOLD +RUST_LOG=safe_client_gateway=debug,safe_client_gateway::monitoring=info +LOG_ALL_ERROR_RESPONSES=true +VPC_TRANSACTION_SERVICE_URI=true +CONCURRENT_BALANCE_TOKEN_REQUESTS=5 +# LOG_THRESHOLD=0.1 + +# Time outs for caches (all have defaults in the code) +# The unit of these values is "milliseconds" +# SAFE_INFO_CACHE_DURATION=1000 +# ADDRESS_INFO_CACHE_DURATION=1000 +# TOKEN_INFO_CACHE_DURATION=1000 +# CHAIN_INFO_CACHE_DURATION=1000 +# CHAIN_INFO_RESPONSE_CACHE_DURATION=1000 +# EXCHANGE_API_CACHE_DURATION=1000 +# REQUEST_CACHE_DURATION=1000 +# ABOUT_CACHE_DURATION=1000 +# BALANCES_REQUEST_CACHE_DURATION=1000 +# SAFE_APP_MANIFEST_CACHE_DURATION=1000 +# REQS_ERROR_CACHE_DURATION=1000 +# OWNERS_FOR_SAFES_CACHE_DURATION=1000 +# INDEFINITE_TIMEOUT=1000 # long cache duration of your choice +# SHORT_ERROR_DURATION=1000 +# LONG_ERROR_DURATION=1000 +# SAFE_APPS_CACHE_DURATION=1000 + +# Http request time outs +# The unit of these values is "milliseconds" +INTERNAL_CLIENT_CONNECT_TIMEOUT=10000 +SAFE_APP_INFO_REQUEST_TIMEOUT=10000 +CHAIN_INFO_REQUEST_TIMEOUT=15000 + +# Redis +#REDIS_URI=redis://127.0.0.1:6380 +# REDIS_SCAN_COUNT=300 + +# Exchange rate API: https://exchangeratesapi.io/ +EXCHANGE_API_BASE_URI=http://api.exchangeratesapi.io/latest +EXCHANGE_API_KEY=your_exchange_rate_api_token diff --git a/boba_ops/envs/.env_safe_config_service b/boba_ops/envs/.env_safe_config_service new file mode 100644 index 0000000000..26f6a19e08 --- /dev/null +++ b/boba_ops/envs/.env_safe_config_service @@ -0,0 +1,108 @@ +# Default values are optimized for production to avoid having to configure +# much in production. +# +# However it should be easy to get going in development too. If you see an +# uncommented option that means it's either mandatory to set it or it's being +# overwritten in development to make your life easier. + +# In development avoid writing out bytecode to __pycache__ directories. +PYTHONDONTWRITEBYTECODE=true + +# You should generate a random string of 50+ characters for this value in prod. +SECRET_KEY=insecure_key_for_dev + +# This should never be set to true in production but it should be enabled in dev. +DEBUG=true + +# Root log level (default is INFO) +# Possible values are DEBUG | INFO | WARNING | ERROR | CRITICAL +ROOT_LOG_LEVEL=DEBUG + +# A comma separated list of allowed hosts. In production this should be your +# domain name, such as "example.com,www.example.com" or ".example.com" to +# support both example.com and all sub-domains for your domain. +# +# This is being overwritten in development to support multiple Docker dev +# environments where you might be connecting over a local network IP address +# instead of localhost. You should not use "*" in production. +DJANGO_ALLOWED_HOSTS=".localhost,127.0.0.1,[::1],*,safe-client-gateway" + +# The bind port for gunicorn. +# +# Be warned that if you change this value you'll need to change 8000 in both +# your Dockerfile and in a few spots in docker-compose.yml due to the nature of +# how this value can be set (Docker Compose doesn't support nested ENV vars). +GUNICORN_BIND_PORT=8000 + +# Docker Nginx Volume Root +DOCKER_NGINX_VOLUME_ROOT=/nginx + +# The bind socket for gunicorn +GUNICORN_BIND_SOCKET=unix:${DOCKER_NGINX_VOLUME_ROOT}/gunicorn.socket + +# The port exposed to the host by the nginx image. +NGINX_HOST_PORT=8080 + +# A directory where the result of executing envsubst is output (default: /etc/nginx/conf.d) +# Used by the nginx docker image in the templating system in order to use the environment variables set +NGINX_ENVSUBST_OUTPUT_DIR=/etc/nginx/ + +# Should the Webpack watcher use polling? Not all Docker hosts support inotify. +# If you find your assets aren't updating in development then set this to true. +#WEBPACK_WATCHER_POLL=false + +# You'll always want to set the POSTGRES_USER and POSTGRES_PASSWORD since the +# postgres Docker image uses them for its default database user and password. +POSTGRES_USER=postgres +POSTGRES_PASSWORD=postgres +POSTGRES_NAME=postgres +POSTGRES_HOST=db +POSTGRES_PORT=5432 + +# What volume path should be used? In development we want to volume mount +# everything so we can develop our code without rebuilding our Docker images. +# DOCKER_WEB_VOLUME=.:/app + +# Restart workers when code changes. +# This setting is intended for development. It will cause workers to be restarted whenever application code changes. +GUNICORN_WEB_RELOAD=false + +# The Client Gateway URL. This is for triggering webhooks to invalidate its cache for example +CGW_URL=http://127.0.0.1 + +# The Client Gateway /flush token. +#CGW_FLUSH_TOKEN=example-flush-token + +# What CPU and memory constraints will be added to your services? When left at +# 0, they will happily use as much as needed. +#DOCKER_POSTGRES_CPUS=0 +#DOCKER_POSTGRES_MEMORY=0 +#DOCKER_REDIS_CPUS=0 +#DOCKER_REDIS_MEMORY=0 +#DOCKER_WEB_CPUS=0 +#DOCKER_WEB_MEMORY=0 +#DOCKER_WORKER_CPUS=0 +#DOCKER_WORKER_MEMORY=0 + +# Default file storage class to be used for any file-related operations that don’t specify a particular storage system. +# storages.backends.s3boto3.S3Boto3Storage – Used for S3 configuration (AWS needs to be configured) +# django.core.files.storage.FileSystemStorage – Django default +DEFAULT_FILE_STORAGE=django.core.files.storage.FileSystemStorage +#DEFAULT_FILE_STORAGE=storages.backends.s3boto3.S3Boto3Storage + +# django-storages – Amazon S3 configuration +# See https://django-storages.readthedocs.io/en/latest/backends/amazon-S3.html + +# Your Amazon Web Services access key, as a string. +#AWS_ACCESS_KEY_ID= + +# Your Amazon Web Services secret access key, as a string. +#AWS_SECRET_ACCESS_KEY= + +# Your Amazon Web Services storage bucket name, as a string. +#AWS_STORAGE_BUCKET_NAME= + +# If you're using S3 as a CDN (via CloudFront), you'll probably want this storage to serve those files using tha +# This is just the domain name ie.: no protocol should be set here and it should not end in a slash `/` +# eg.: AWS_S3_CUSTOM_DOMAIN=cdn.mydomain.com +#AWS_S3_CUSTOM_DOMAIN= diff --git a/boba_ops/envs/.env_safe_transaction_service b/boba_ops/envs/.env_safe_transaction_service new file mode 100644 index 0000000000..6c95df813b --- /dev/null +++ b/boba_ops/envs/.env_safe_transaction_service @@ -0,0 +1,11 @@ +PYTHONPATH=/app/ +DJANGO_SETTINGS_MODULE=config.settings.local +DJANGO_SECRET_KEY='Very-secure-secret-string' +C_FORCE_ROOT=true +DEBUG=0 +DATABASE_URL=psql://postgres:postgres@db:5432/postgres +ETHEREUM_NODE_URL=https://rinkeby.boba.network +ETHEREUM_TRACING_NODE_URL=https://rinkeby.boba.network +ETH_L2_NETWORK=1 +REDIS_URL=redis://redis:6379/0 +CELERY_BROKER_URL=redis://redis:6379/1 From cb64910c3c630eb5d567d010878ba70fb9bd7ea5 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Fri, 26 Nov 2021 18:28:57 +0100 Subject: [PATCH 14/25] pull submodules --- .github/workflows/build-boba.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-boba.yml b/.github/workflows/build-boba.yml index 99c7c810b7..1a781e6045 100644 --- a/.github/workflows/build-boba.yml +++ b/.github/workflows/build-boba.yml @@ -33,7 +33,7 @@ jobs: - name: Get services working-directory: ./boba_ops - run: git submodule sync --recursive + run: git submodule sync --recursive && git submodule update --recursive --init - name: Build the services working-directory: ./boba_ops From af44f9f886aa04675db02825e2f3001b6217a1e4 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Fri, 26 Nov 2021 18:46:50 +0100 Subject: [PATCH 15/25] wrong directory --- .github/workflows/build-boba.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-boba.yml b/.github/workflows/build-boba.yml index 1a781e6045..b147e2ef20 100644 --- a/.github/workflows/build-boba.yml +++ b/.github/workflows/build-boba.yml @@ -40,15 +40,16 @@ jobs: run: docker compose build - name: Tag - working-directory: ./ops + working-directory: ./boba_ops run: | + docker images for i in $(docker images --format "{{.Repository}}:{{.Tag}}" | grep bobanetwork); do docker image tag "$i" bobanetwork/$(echo $i | awk -F'/' '{print $2}' | awk -F':' '{print $1}'):latest done docker images - name: Push - working-directory: ./ops + working-directory: ./boba_ops run: | for i in $(docker images --format "{{.Repository}}:{{.Tag}}" | grep bobanetwork); do echo "$1" From 92df3eacad77a369f9d9792a90774f77990fcd5b Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Mon, 29 Nov 2021 19:51:10 +0100 Subject: [PATCH 16/25] updates --- Dockerfile | 9 +++- boba_ops/README.md | 4 +- boba_ops/boba_chains.json | 54 +++++++++++++++++++++ boba_ops/build-ci.sh | 3 ++ boba_ops/create_user | 4 ++ boba_ops/docker-compose.yml | 18 ++++++- boba_ops/envs/.env_safe_client_gateway | 2 +- boba_ops/envs/.env_safe_react | 2 + boba_ops/envs/.env_safe_transaction_service | 1 + boba_ops/load_chain | 5 ++ boba_ops/run | 50 +++++++++++++++++++ src/config/networks/boba.ts | 7 +-- src/config/networks/boba_rinkeby.ts | 3 +- 13 files changed, 153 insertions(+), 9 deletions(-) create mode 100644 boba_ops/boba_chains.json create mode 100755 boba_ops/build-ci.sh create mode 100755 boba_ops/create_user create mode 100644 boba_ops/envs/.env_safe_react create mode 100755 boba_ops/load_chain create mode 100755 boba_ops/run diff --git a/Dockerfile b/Dockerfile index 54c769f356..f543489add 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,9 +8,14 @@ COPY package.json ./ COPY yarn.lock ./ -RUN yarn install +ADD src/ ./src +ADD config/ ./config +ADD patches/ ./patches +ADD scripts/ ./scripts +ADD public/ ./public +ADD docs/ ./docs -COPY . . +RUN yarn install EXPOSE 3000 diff --git a/boba_ops/README.md b/boba_ops/README.md index a187f44262..5adcd65a38 100644 --- a/boba_ops/README.md +++ b/boba_ops/README.md @@ -2,7 +2,9 @@ Add users: docker exec -it boba_ops-safe-transaction-service-1 python manage.py createsuperuser Add chain: +./load_chain + \ No newline at end of file diff --git a/boba_ops/boba_chains.json b/boba_ops/boba_chains.json new file mode 100644 index 0000000000..ae4bb5abf0 --- /dev/null +++ b/boba_ops/boba_chains.json @@ -0,0 +1,54 @@ +[ + { + "model": "chains.chain", + "pk": 288, + "fields": { + "relevance": 1, + "name": "Boba", + "short_name": "boba", + "description": "Boba Network", + "l2": true, + "rpc_authentication": "API_KEY_PATH", + "rpc_uri": "https://mainnet.boba.network/", + "safe_apps_rpc_authentication": "NO_AUTHENTICATION", + "safe_apps_rpc_uri": "https://mainnet.boba.network/", + "block_explorer_uri_address_template": "https://blockexplorer.boba.network/address/{{address}}", + "block_explorer_uri_tx_hash_template": "https://blockexplorer.boba.network/tx/{{txHash}}", + "currency_name": "Ether", + "currency_symbol": "ETH", + "currency_decimals": 18, + "currency_logo_uri": "chains/1/currency_logo.png", + "transaction_service_uri": "http://nginx-safe-transaction-service:8000", + "vpc_transaction_service_uri": "http://nginx-safe-transaction-service:8000", + "theme_text_color": "#001428", + "theme_background_color": "#E8E7E6", + "recommended_master_copy_version": "1.3.0" + } + }, + { + "model": "chains.chain", + "pk": 28, + "fields": { + "relevance": 2, + "name": "Boba Rinkeby", + "short_name": "boba_rinkeby", + "description": "Boba Network Rinkeby", + "l2": true, + "rpc_authentication": "NO_AUTHENTICATION", + "rpc_uri": "https://rinkeby.boba.network", + "safe_apps_rpc_authentication": "NO_AUTHENTICATION", + "safe_apps_rpc_uri": "https://rinkeby.boba.network", + "block_explorer_uri_address_template": "https://blockexplorer.rinkeby.boba.network/address/{{address}}", + "block_explorer_uri_tx_hash_template": "https://blockexplorer.rinkeby.boba.network/tx/{{txHash}}", + "currency_name": "Ether", + "currency_symbol": "ETH", + "currency_decimals": 18, + "currency_logo_uri": "chains/1/currency_logo.png", + "transaction_service_uri": "http://nginx-safe-transaction-service:8000", + "vpc_transaction_service_uri": "http://nginx-safe-transaction-service:8000", + "theme_text_color": "#ffffff", + "theme_background_color": "#E8673C", + "recommended_master_copy_version": "1.3.0" + } + } +] \ No newline at end of file diff --git a/boba_ops/build-ci.sh b/boba_ops/build-ci.sh new file mode 100755 index 0000000000..db83bd7143 --- /dev/null +++ b/boba_ops/build-ci.sh @@ -0,0 +1,3 @@ +DOCKER_BUILDKIT=1 +COMPOSE_DOCKER_CLI_BUILD=1 +docker-compose build -- safe-react safe-config-service safe-client-gateway safe-transaction-service \ No newline at end of file diff --git a/boba_ops/create_user b/boba_ops/create_user new file mode 100755 index 0000000000..d24173f43d --- /dev/null +++ b/boba_ops/create_user @@ -0,0 +1,4 @@ +#!/usr/bin/env bash + +set -eo pipefail +docker exec -it boba_ops-safe-transaction-service-1 python manage.py createsuperuser diff --git a/boba_ops/docker-compose.yml b/boba_ops/docker-compose.yml index 8f5e99db76..acb39934b5 100644 --- a/boba_ops/docker-compose.yml +++ b/boba_ops/docker-compose.yml @@ -62,6 +62,7 @@ services: - "8888:8888" volumes: - nginx-shared:/nginx + restart: always command: ./docker/web/run_web.sh worker: &worker @@ -74,6 +75,7 @@ services: depends_on: - db - redis + restart: always command: ./docker/web/celery/worker/run.sh scheduler: @@ -107,4 +109,18 @@ services: env_file: - envs/.env_safe_config_service depends_on: - - db \ No newline at end of file + - db + + safe-react: + image: bobanetwork/safe-react + build: + context: ../ + dockerfile: ./Dockerfile + env_file: + - envs/.env_safe_react + volumes: + - /app/node_modules + - ../:/app + restart: always + ports: + - 3000:3000 \ No newline at end of file diff --git a/boba_ops/envs/.env_safe_client_gateway b/boba_ops/envs/.env_safe_client_gateway index 3346f9cc6f..6779928479 100644 --- a/boba_ops/envs/.env_safe_client_gateway +++ b/boba_ops/envs/.env_safe_client_gateway @@ -57,4 +57,4 @@ CHAIN_INFO_REQUEST_TIMEOUT=15000 # Exchange rate API: https://exchangeratesapi.io/ EXCHANGE_API_BASE_URI=http://api.exchangeratesapi.io/latest -EXCHANGE_API_KEY=your_exchange_rate_api_token +EXCHANGE_API_KEY= diff --git a/boba_ops/envs/.env_safe_react b/boba_ops/envs/.env_safe_react new file mode 100644 index 0000000000..540022df46 --- /dev/null +++ b/boba_ops/envs/.env_safe_react @@ -0,0 +1,2 @@ +REACT_APP_NETWORK=BOBA_RINKEBY +NODE_ENV=test \ No newline at end of file diff --git a/boba_ops/envs/.env_safe_transaction_service b/boba_ops/envs/.env_safe_transaction_service index 6c95df813b..b0351b48fb 100644 --- a/boba_ops/envs/.env_safe_transaction_service +++ b/boba_ops/envs/.env_safe_transaction_service @@ -9,3 +9,4 @@ ETHEREUM_TRACING_NODE_URL=https://rinkeby.boba.network ETH_L2_NETWORK=1 REDIS_URL=redis://redis:6379/0 CELERY_BROKER_URL=redis://redis:6379/1 +DJANGO_ALLOWED_HOSTS="localhost,0.0.0.0,127.0.0.1,*,172.22.0.9" \ No newline at end of file diff --git a/boba_ops/load_chain b/boba_ops/load_chain new file mode 100755 index 0000000000..6421072f81 --- /dev/null +++ b/boba_ops/load_chain @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +set -eo pipefail +docker compose cp boba_chains.json safe-config-service:/tmp/boba_chains.json +./run manage loaddata /tmp/boba_chains.json \ No newline at end of file diff --git a/boba_ops/run b/boba_ops/run new file mode 100755 index 0000000000..dfedacec94 --- /dev/null +++ b/boba_ops/run @@ -0,0 +1,50 @@ +#!/usr/bin/env bash + +set -eo pipefail + +DC="${DC:-exec}" + +# If we're running in CI we need to disable TTY allocation for docker-compose +# commands that enable it by default, such as exec and run. +TTY="" +if [[ ! -t 1 ]]; then + TTY="-T" +fi + +# ----------------------------------------------------------------------------- +# Helper functions start with _ and aren't listed in this script's help menu. +# ----------------------------------------------------------------------------- + +function _dc { + docker-compose "${DC}" ${TTY} "${@}" +} + +# ----------------------------------------------------------------------------- + +function cmd { + # Run any command you want in the safe-config-service container + _dc safe-config-service "${@}" +} + +function manage { + # Run any manage.py commands + + # We need to collectstatic before we run our tests. + if [ "${1-''}" == "test" ]; then + cmd python src/manage.py collectstatic --no-input + fi + + cmd python src/manage.py "${@}" +} + +function help { + printf "%s [args]\n\nTasks:\n" "${0}" + + compgen -A function | grep -v "^_" | cat -n + + printf "\nExtended help:\n Each task has comments for general usage\n" +} + +# This idea is heavily inspired by: https://github.com/adriancooney/Taskfile +TIMEFORMAT=$'\nTask completed in %3lR' +time "${@:-help}" diff --git a/src/config/networks/boba.ts b/src/config/networks/boba.ts index d44722a939..4bde906674 100644 --- a/src/config/networks/boba.ts +++ b/src/config/networks/boba.ts @@ -9,9 +9,10 @@ import { } from 'src/config/networks/network.d' const baseConfig: EnvironmentSettings = { - clientGatewayUrl: 'http://127.0.0.1:8000/v1', - txServiceUrl: 'http://127.0.0.1:8001/api/v1', - safeUrl: 'http://localhost:3000/app', + //this is the frontend2backend url + clientGatewayUrl: 'http://127.0.0.1:8002/v1', + txServiceUrl: 'http://127.0.0.1:8000/api/v1', + safeUrl: 'http://gnosis-safe.mainnet.boba:3000/app', gasPriceOracles: [ { url: 'https://mainnet.boba.network/', diff --git a/src/config/networks/boba_rinkeby.ts b/src/config/networks/boba_rinkeby.ts index e36611e70d..fe721558a6 100644 --- a/src/config/networks/boba_rinkeby.ts +++ b/src/config/networks/boba_rinkeby.ts @@ -9,9 +9,10 @@ import { } from 'src/config/networks/network.d' const baseConfig: EnvironmentSettings = { + //this is the frontend2backend url clientGatewayUrl: 'http://127.0.0.1:8002/v1', txServiceUrl: 'http://127.0.0.1:8000/api/v1', - safeUrl: 'http://localhost:3000/app', + safeUrl: 'http://gnosis-safe.rinkeby.boba:3000/app', gasPriceOracles: [ { url: 'https://rinkeby.boba.network/', From c4491f82e5766b0a5093af71cb9594b6bcbe5c4f Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Wed, 1 Dec 2021 14:49:28 +0100 Subject: [PATCH 17/25] bump safe config service to 2.7.1 --- boba_ops/safe-config-service | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/boba_ops/safe-config-service b/boba_ops/safe-config-service index 5c23662135..b6488385e2 160000 --- a/boba_ops/safe-config-service +++ b/boba_ops/safe-config-service @@ -1 +1 @@ -Subproject commit 5c2366213588879f82491617d2239188eb7d753d +Subproject commit b6488385e2a5d41e9693e48b34696840fe73ab9e From 7f40b937b888bf64abcdff36e1be89892e92937e Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Wed, 8 Dec 2021 12:41:33 +0100 Subject: [PATCH 18/25] bump safe deployments with boba support --- .../@gnosis.pm+safe-deployments+1.4.0.patch | 255 ---- patches/package/LICENSE | 9 + patches/package/README.md | 91 ++ patches/package/package.json | 48 + .../src/assets/v1.0.0/gnosis_safe.json | 418 ++++++ .../assets/v1.1.1/create_and_add_modules.json | 49 + .../src/assets/v1.1.1/create_call.json | 84 ++ .../v1.1.1/default_callback_handler.json | 206 +++ .../src/assets/v1.1.1/gnosis_safe.json | 995 ++++++++++++++ .../package/src/assets/v1.1.1/multi_send.json | 39 + .../src/assets/v1.1.1/proxy_factory.json | 185 +++ .../src/assets/v1.2.0/gnosis_safe.json | 1016 +++++++++++++++ .../compatibility_fallback_handler.json | 347 +++++ .../src/assets/v1.3.0/create_call.json | 90 ++ .../src/assets/v1.3.0/gnosis_safe.json | 1055 +++++++++++++++ .../src/assets/v1.3.0/gnosis_safe_l2.json | 1160 +++++++++++++++++ .../package/src/assets/v1.3.0/multi_send.json | 42 + .../assets/v1.3.0/multi_send_call_only.json | 37 + .../src/assets/v1.3.0/proxy_factory.json | 185 +++ .../src/assets/v1.3.0/sign_message_lib.json | 69 + .../assets/v1.3.0/simulate_tx_accessor.json | 73 ++ patches/package/src/factories.ts | 15 + patches/package/src/handler.ts | 31 + patches/package/src/index.ts | 5 + patches/package/src/libs.ts | 42 + patches/package/src/safes.ts | 25 + patches/package/src/types.ts | 14 + patches/package/src/utils.ts | 14 + yarn.lock | 8 +- 29 files changed, 6348 insertions(+), 259 deletions(-) delete mode 100644 patches/@gnosis.pm+safe-deployments+1.4.0.patch create mode 100644 patches/package/LICENSE create mode 100644 patches/package/README.md create mode 100644 patches/package/package.json create mode 100644 patches/package/src/assets/v1.0.0/gnosis_safe.json create mode 100644 patches/package/src/assets/v1.1.1/create_and_add_modules.json create mode 100644 patches/package/src/assets/v1.1.1/create_call.json create mode 100644 patches/package/src/assets/v1.1.1/default_callback_handler.json create mode 100644 patches/package/src/assets/v1.1.1/gnosis_safe.json create mode 100644 patches/package/src/assets/v1.1.1/multi_send.json create mode 100644 patches/package/src/assets/v1.1.1/proxy_factory.json create mode 100644 patches/package/src/assets/v1.2.0/gnosis_safe.json create mode 100644 patches/package/src/assets/v1.3.0/compatibility_fallback_handler.json create mode 100644 patches/package/src/assets/v1.3.0/create_call.json create mode 100644 patches/package/src/assets/v1.3.0/gnosis_safe.json create mode 100644 patches/package/src/assets/v1.3.0/gnosis_safe_l2.json create mode 100644 patches/package/src/assets/v1.3.0/multi_send.json create mode 100644 patches/package/src/assets/v1.3.0/multi_send_call_only.json create mode 100644 patches/package/src/assets/v1.3.0/proxy_factory.json create mode 100644 patches/package/src/assets/v1.3.0/sign_message_lib.json create mode 100644 patches/package/src/assets/v1.3.0/simulate_tx_accessor.json create mode 100644 patches/package/src/factories.ts create mode 100644 patches/package/src/handler.ts create mode 100644 patches/package/src/index.ts create mode 100644 patches/package/src/libs.ts create mode 100644 patches/package/src/safes.ts create mode 100644 patches/package/src/types.ts create mode 100644 patches/package/src/utils.ts diff --git a/patches/@gnosis.pm+safe-deployments+1.4.0.patch b/patches/@gnosis.pm+safe-deployments+1.4.0.patch deleted file mode 100644 index d30cefa934..0000000000 --- a/patches/@gnosis.pm+safe-deployments+1.4.0.patch +++ /dev/null @@ -1,255 +0,0 @@ -diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json -index 225379c..5b32517 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json -+++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/compatibility_fallback_handler.json -@@ -17,7 +17,9 @@ - "42220": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", - "43114": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", - "73799": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", -- "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4" -+ "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", -+ "28": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", -+ "288": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json -index e476420..5acd284 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json -+++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/create_call.json -@@ -17,7 +17,9 @@ - "42220": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", - "43114": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", - "73799": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", -- "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4" -+ "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", -+ "28": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", -+ "288": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json -index 550950f..0203d88 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json -+++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe.json -@@ -17,7 +17,9 @@ - "42220": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", - "43114": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", - "73799": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", -- "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" -+ "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", -+ "28": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", -+ "288": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json -index 2e36bfd..3a9e05a 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json -+++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/gnosis_safe_l2.json -@@ -17,7 +17,9 @@ - "42220": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", - "43114": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", - "73799": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", -- "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E" -+ "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", -+ "28": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", -+ "288": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json -index b6e04a2..01fd130 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json -+++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send.json -@@ -17,7 +17,9 @@ - "42220": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "43114": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "73799": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", -- "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761" -+ "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", -+ "28": "0x998739BFdAAdde7C933B942a68053933098f9EDa", -+ "288": "0x998739BFdAAdde7C933B942a68053933098f9EDa" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json -index daccb28..4e8787e 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json -+++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/multi_send_call_only.json -@@ -17,7 +17,9 @@ - "42220": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", - "43114": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", - "73799": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", -- "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D" -+ "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", -+ "28": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", -+ "288": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json -index 6f7bba4..879e392 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json -+++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/proxy_factory.json -@@ -17,7 +17,9 @@ - "42220": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", - "43114": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", - "73799": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", -- "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2" -+ "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", -+ "28": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", -+ "288": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json -index 3a20a1e..dbf928c 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json -+++ b/node_modules/@gnosis.pm/safe-deployments/dist/assets/v1.3.0/sign_message_lib.json -@@ -17,7 +17,9 @@ - "42220": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", - "43114": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", - "73799": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", -- "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C" -+ "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", -+ "28": "0xE1209DABA608dc6c07d018042a8B8Cdb784bE05b", -+ "288": "0xE1209DABA608dc6c07d018042a8B8Cdb784bE05b" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json -index 137169b..2a6d2f0 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json -+++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/compatibility_fallback_handler.json -@@ -17,7 +17,9 @@ - "42220": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", - "43114": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", - "73799": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", -- "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4" -+ "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", -+ "28": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", -+ "288": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json -index 4b2a145..e99568f 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json -+++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/create_call.json -@@ -17,7 +17,9 @@ - "42220": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", - "43114": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", - "73799": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", -- "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4" -+ "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", -+ "28": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", -+ "288": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json -index 918cf71..a642cda 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json -+++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe.json -@@ -17,7 +17,9 @@ - "42220": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", - "43114": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", - "73799": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", -- "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" -+ "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", -+ "28": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", -+ "288": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json -index 6706c6f..a9659ef 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json -+++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/gnosis_safe_l2.json -@@ -17,7 +17,9 @@ - "42220": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", - "43114": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", - "73799": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", -- "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E" -+ "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", -+ "28": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", -+ "288": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json -index e5ef031..985a080 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json -+++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send.json -@@ -17,7 +17,9 @@ - "42220": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "43114": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "73799": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", -- "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761" -+ "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", -+ "28": "0x998739BFdAAdde7C933B942a68053933098f9EDa", -+ "288": "0x998739BFdAAdde7C933B942a68053933098f9EDa" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json -index ba6efcf..e674bfd 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json -+++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/multi_send_call_only.json -@@ -17,7 +17,9 @@ - "42220": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", - "43114": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", - "73799": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", -- "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D" -+ "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", -+ "28": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", -+ "288": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json -index 678c97a..a88c29e 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json -+++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/proxy_factory.json -@@ -17,7 +17,9 @@ - "42220": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", - "43114": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", - "73799": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", -- "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2" -+ "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", -+ "28": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", -+ "288": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json -index 246eae6..2e3c3ee 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json -+++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/sign_message_lib.json -@@ -17,7 +17,9 @@ - "42220": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", - "43114": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", - "73799": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", -- "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C" -+ "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", -+ "28": "0xE1209DABA608dc6c07d018042a8B8Cdb784bE05b", -+ "288": "0xE1209DABA608dc6c07d018042a8B8Cdb784bE05b" - }, - "abi": [ - { -diff --git a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json -index 7aa6831..be8ef0d 100644 ---- a/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json -+++ b/node_modules/@gnosis.pm/safe-deployments/src/assets/v1.3.0/simulate_tx_accessor.json -@@ -17,7 +17,9 @@ - "42220": "0x727a77a074D1E6c4530e814F89E618a3298FC044", - "43114": "0x727a77a074D1E6c4530e814F89E618a3298FC044", - "73799": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", -- "333999": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da" -+ "333999": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", -+ "28": "0x727a77a074D1E6c4530e814F89E618a3298FC044", -+ "288": "0x727a77a074D1E6c4530e814F89E618a3298FC044" - }, - "abi": [ - { diff --git a/patches/package/LICENSE b/patches/package/LICENSE new file mode 100644 index 0000000000..0e499e80cf --- /dev/null +++ b/patches/package/LICENSE @@ -0,0 +1,9 @@ +MIT License + +Copyright (c) 2018 Gnosis Ltd + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/patches/package/README.md b/patches/package/README.md new file mode 100644 index 0000000000..a25ece1698 --- /dev/null +++ b/patches/package/README.md @@ -0,0 +1,91 @@ +# Gnosis Safe Deployments + +[![npm version](https://badge.fury.io/js/%40gnosis.pm%2Fsafe-deployments.svg)](https://badge.fury.io/js/%40gnosis.pm%2Fsafe-deployments) + +This contract contains a collection of deployments of the contract of the [Safe contracts repository](https://github.com/gnosis/safe-contracts). + +For each deployment the address on the different networks and the abi files are available. To get an overview of the available versions check the available [json assets](./src/assets/). + +To add additional deployments please follow the [deployment steps in the Safe contract repository](https://github.com/gnosis/safe-contracts#deployments). + +## Install +- npm - `npm i @gnosis.pm/safe-deployments` +- yarn - `yarn add @gnosis.pm/safe-deployments` + +## Usage + +It is possible to directly use the json files in the [assets folder](./src/assets/) that contain the addresses and abi definitions. + +An alternative is to use the JavaScript library methods to query the correct deployment. The library supports different methods to get the deployment of a specific contract. + +Each of the method takes an optional `DeploymentFilter` as a parameter. + +```ts +interface DeploymentFilter { + version?: string, + released?: boolean, // Defaults to true if no filter is specified + network?: string // Chain id of the network +} +``` + +The method will return a `SingletonDeployment` object or `undefined` if no deployment was found for the specified filter. + +```ts +interface SingletonDeployment { + defaultAddress: string, // Address the contract was deployed to by the Gnosis team + version: string, + abi: any[], + networkAddresses: Record, // Address of the contract by network + contractName: string, + released: boolean // A released version was audited and has a running bug bounty +} +``` + +- Gnosis Safe +```ts +const safeSingleton = getSafeSingletonDeployment() + +// Returns latest contract version, even if not finally released yet +const safeSingletonNightly = getSafeSingletonDeployment({ released: undefined }) + +// Returns released contract version for specific network +const safeSingletonGörli = getSafeSingletonDeployment({ network: "5" }) + +// Returns released contract version for specific version +const safeSingleton100 = getSafeSingletonDeployment({ version: "1.0.0" }) + +// Version with additional events used on L2 networks +const safeL2Singleton = getSafeL2SingletonDeployment() +``` + +- Factories +```ts +const proxyFactory = getProxyFactoryDeployment() +``` + +- Libraries +```ts +const multiSendLib = getMultiSendDeployment() + +const multiSendCallOnlyLib = getMultiSendCallOnlyDeployment() + +const createCallLib = getCreateCallDeployment() +``` + +- Handler +```ts +// Returns recommended handler +const fallbackHandler = getFallbackHandlerDeployment() + +const callbackHandler = getDefaultCallbackHandlerDeployment() + +const compatHandler = getCompatibilityFallbackHandlerDeployment() +``` + +## Notes + +A list of network information can be found at [chainid.network](https://chainid.network/) + +## License + +This library is released under MIT. \ No newline at end of file diff --git a/patches/package/package.json b/patches/package/package.json new file mode 100644 index 0000000000..3080a94945 --- /dev/null +++ b/patches/package/package.json @@ -0,0 +1,48 @@ +{ + "name": "@gnosis.pm/safe-deployments", + "version": "1.4.0", + "description": "Collection of Safe singleton deployments", + "homepage": "https://github.com/gnosis/safe-deployments/", + "license": "LGPL-3.0", + "main": "dist/index.js", + "typings": "dist/index.d.ts", + "files": [ + "dist", + "src", + "test", + "build" + ], + "scripts": { + "build": "yarn rimraf dist && tsc", + "lint": "eslint --max-warnings 0 .", + "prepack": "yarn build", + "prepare": "husky install" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/gnosis/gnosis-deployments.git" + }, + "keywords": [ + "Ethereum", + "Wallet", + "Safe" + ], + "author": "richard@gnosis.io", + "bugs": { + "url": "https://github.com/gnosis/gnosis-deployments/issues" + }, + "devDependencies": { + "@types/node": "^14.14.21", + "@typescript-eslint/eslint-plugin": "^4.7.0", + "@typescript-eslint/parser": "^4.7.0", + "eslint": "^7.13.0", + "eslint-config-prettier": "^6.15.0", + "eslint-plugin-import": "^2.22.1", + "eslint-plugin-no-only-tests": "^2.4.0", + "eslint-plugin-prettier": "^3.1.4", + "husky": "^5.1.3", + "prettier": "^2.1.2", + "ts-node": "^9.1.1", + "typescript": "^4.2.4" + } +} diff --git a/patches/package/src/assets/v1.0.0/gnosis_safe.json b/patches/package/src/assets/v1.0.0/gnosis_safe.json new file mode 100644 index 0000000000..ab5d083f2f --- /dev/null +++ b/patches/package/src/assets/v1.0.0/gnosis_safe.json @@ -0,0 +1,418 @@ +{ + "defaultAddress": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", + "released": true, + "contractName": "GnosisSafe", + "version": "1.0.0", + "networkAddresses": { + "1": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", + "4": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", + "5": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", + "42": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A" + }, + "abi": [ + { + "constant": false, + "inputs": [ + { "name": "owner", "type": "address" }, + { "name": "_threshold", "type": "uint256" } + ], + "name": "addOwnerWithThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "DOMAIN_SEPARATOR_TYPEHASH", + "outputs": [{ "name": "", "type": "bytes32" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [{ "name": "owner", "type": "address" }], + "name": "isOwner", + "outputs": [{ "name": "", "type": "bool" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { "name": "to", "type": "address" }, + { "name": "value", "type": "uint256" }, + { "name": "data", "type": "bytes" }, + { "name": "operation", "type": "uint8" } + ], + "name": "execTransactionFromModule", + "outputs": [{ "name": "success", "type": "bool" }], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [{ "name": "", "type": "bytes32" }], + "name": "signedMessages", + "outputs": [{ "name": "", "type": "uint256" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [{ "name": "module", "type": "address" }], + "name": "enableModule", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [{ "name": "_threshold", "type": "uint256" }], + "name": "changeThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { "name": "", "type": "address" }, + { "name": "", "type": "bytes32" } + ], + "name": "approvedHashes", + "outputs": [{ "name": "", "type": "uint256" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [{ "name": "_masterCopy", "type": "address" }], + "name": "changeMasterCopy", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "SENTINEL_MODULES", + "outputs": [{ "name": "", "type": "address" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "SENTINEL_OWNERS", + "outputs": [{ "name": "", "type": "address" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getOwners", + "outputs": [{ "name": "", "type": "address[]" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "NAME", + "outputs": [{ "name": "", "type": "string" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "nonce", + "outputs": [{ "name": "", "type": "uint256" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getModules", + "outputs": [{ "name": "", "type": "address[]" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "SAFE_MSG_TYPEHASH", + "outputs": [{ "name": "", "type": "bytes32" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "SAFE_TX_TYPEHASH", + "outputs": [{ "name": "", "type": "bytes32" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { "name": "prevModule", "type": "address" }, + { "name": "module", "type": "address" } + ], + "name": "disableModule", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { "name": "prevOwner", "type": "address" }, + { "name": "oldOwner", "type": "address" }, + { "name": "newOwner", "type": "address" } + ], + "name": "swapOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getThreshold", + "outputs": [{ "name": "", "type": "uint256" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "domainSeparator", + "outputs": [{ "name": "", "type": "bytes32" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { "name": "prevOwner", "type": "address" }, + { "name": "owner", "type": "address" }, + { "name": "_threshold", "type": "uint256" } + ], + "name": "removeOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "VERSION", + "outputs": [{ "name": "", "type": "string" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { "payable": true, "stateMutability": "payable", "type": "fallback" }, + { + "anonymous": false, + "inputs": [{ "indexed": false, "name": "txHash", "type": "bytes32" }], + "name": "ExecutionFailed", + "type": "event" + }, + { + "anonymous": false, + "inputs": [{ "indexed": false, "name": "owner", "type": "address" }], + "name": "AddedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [{ "indexed": false, "name": "owner", "type": "address" }], + "name": "RemovedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [{ "indexed": false, "name": "threshold", "type": "uint256" }], + "name": "ChangedThreshold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [{ "indexed": false, "name": "module", "type": "address" }], + "name": "EnabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [{ "indexed": false, "name": "module", "type": "address" }], + "name": "DisabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { "indexed": false, "name": "newContract", "type": "address" } + ], + "name": "ContractCreation", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { "name": "_owners", "type": "address[]" }, + { "name": "_threshold", "type": "uint256" }, + { "name": "to", "type": "address" }, + { "name": "data", "type": "bytes" }, + { "name": "paymentToken", "type": "address" }, + { "name": "payment", "type": "uint256" }, + { "name": "paymentReceiver", "type": "address" } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { "name": "to", "type": "address" }, + { "name": "value", "type": "uint256" }, + { "name": "data", "type": "bytes" }, + { "name": "operation", "type": "uint8" }, + { "name": "safeTxGas", "type": "uint256" }, + { "name": "baseGas", "type": "uint256" }, + { "name": "gasPrice", "type": "uint256" }, + { "name": "gasToken", "type": "address" }, + { "name": "refundReceiver", "type": "address" }, + { "name": "signatures", "type": "bytes" } + ], + "name": "execTransaction", + "outputs": [{ "name": "success", "type": "bool" }], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { "name": "to", "type": "address" }, + { "name": "value", "type": "uint256" }, + { "name": "data", "type": "bytes" }, + { "name": "operation", "type": "uint8" } + ], + "name": "requiredTxGas", + "outputs": [{ "name": "", "type": "uint256" }], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [{ "name": "hashToApprove", "type": "bytes32" }], + "name": "approveHash", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [{ "name": "_data", "type": "bytes" }], + "name": "signMessage", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { "name": "_data", "type": "bytes" }, + { "name": "_signature", "type": "bytes" } + ], + "name": "isValidSignature", + "outputs": [{ "name": "", "type": "bytes4" }], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [{ "name": "message", "type": "bytes" }], + "name": "getMessageHash", + "outputs": [{ "name": "", "type": "bytes32" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { "name": "to", "type": "address" }, + { "name": "value", "type": "uint256" }, + { "name": "data", "type": "bytes" }, + { "name": "operation", "type": "uint8" }, + { "name": "safeTxGas", "type": "uint256" }, + { "name": "baseGas", "type": "uint256" }, + { "name": "gasPrice", "type": "uint256" }, + { "name": "gasToken", "type": "address" }, + { "name": "refundReceiver", "type": "address" }, + { "name": "_nonce", "type": "uint256" } + ], + "name": "encodeTransactionData", + "outputs": [{ "name": "", "type": "bytes" }], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { "name": "to", "type": "address" }, + { "name": "value", "type": "uint256" }, + { "name": "data", "type": "bytes" }, + { "name": "operation", "type": "uint8" }, + { "name": "safeTxGas", "type": "uint256" }, + { "name": "baseGas", "type": "uint256" }, + { "name": "gasPrice", "type": "uint256" }, + { "name": "gasToken", "type": "address" }, + { "name": "refundReceiver", "type": "address" }, + { "name": "_nonce", "type": "uint256" } + ], + "name": "getTransactionHash", + "outputs": [{ "name": "", "type": "bytes32" }], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.1.1/create_and_add_modules.json b/patches/package/src/assets/v1.1.1/create_and_add_modules.json new file mode 100644 index 0000000000..a011c816a7 --- /dev/null +++ b/patches/package/src/assets/v1.1.1/create_and_add_modules.json @@ -0,0 +1,49 @@ +{ + "defaultAddress": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", + "released": true, + "contractName": "CreateAndAddModules", + "version": "1.1.1", + "networkAddresses": { + "1": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", + "4": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", + "5": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", + "42": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", + "88": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", + "100": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", + "246": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", + "73799": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0" + }, + "abi": [ + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "proxyFactory", + "type": "address" + }, + { "internalType": "bytes", "name": "data", "type": "bytes" } + ], + "name": "createAndAddModules", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract Module", + "name": "module", + "type": "address" + } + ], + "name": "enableModule", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.1.1/create_call.json b/patches/package/src/assets/v1.1.1/create_call.json new file mode 100644 index 0000000000..8d3ce06b82 --- /dev/null +++ b/patches/package/src/assets/v1.1.1/create_call.json @@ -0,0 +1,84 @@ +{ + "defaultAddress": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", + "released": true, + "contractName": "CreateCall", + "version": "1.1.1", + "networkAddresses": { + "1": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", + "4": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", + "5": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", + "42": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", + "88": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", + "100": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", + "246": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", + "73799": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a" + }, + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newContract", + "type": "address" + } + ], + "name": "ContractCreation", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "deploymentData", + "type": "bytes" + } + ], + "name": "performCreate", + "outputs": [ + { + "internalType": "address", + "name": "newContract", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "deploymentData", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + } + ], + "name": "performCreate2", + "outputs": [ + { + "internalType": "address", + "name": "newContract", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.1.1/default_callback_handler.json b/patches/package/src/assets/v1.1.1/default_callback_handler.json new file mode 100644 index 0000000000..99158a9e1a --- /dev/null +++ b/patches/package/src/assets/v1.1.1/default_callback_handler.json @@ -0,0 +1,206 @@ +{ + "defaultAddress": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", + "released": true, + "contractName": "DefaultCallbackHandler", + "version": "1.1.1", + "networkAddresses": { + "1": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", + "4": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", + "5": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", + "42": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", + "88": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", + "100": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", + "246": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", + "73799": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44" + }, + "abi": [ + { + "constant": true, + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "tokensReceived", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.1.1/gnosis_safe.json b/patches/package/src/assets/v1.1.1/gnosis_safe.json new file mode 100644 index 0000000000..2e93912e58 --- /dev/null +++ b/patches/package/src/assets/v1.1.1/gnosis_safe.json @@ -0,0 +1,995 @@ +{ + "defaultAddress": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", + "released": true, + "contractName": "GnosisSafe", + "version": "1.1.1", + "networkAddresses": { + "1": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", + "4": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", + "5": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", + "42": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", + "88": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", + "100": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", + "246": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", + "73799": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F" + }, + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "AddedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "approvedHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ApproveHash", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "masterCopy", + "type": "address" + } + ], + "name": "ChangedMasterCopy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ], + "name": "ChangedThreshold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract Module", + "name": "module", + "type": "address" + } + ], + "name": "DisabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract Module", + "name": "module", + "type": "address" + } + ], + "name": "EnabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payment", + "type": "uint256" + } + ], + "name": "ExecutionFailure", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "ExecutionFromModuleFailure", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "ExecutionFromModuleSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payment", + "type": "uint256" + } + ], + "name": "ExecutionSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "RemovedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "msgHash", + "type": "bytes32" + } + ], + "name": "SignMsg", + "type": "event" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "addOwnerWithThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "approvedHashes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_masterCopy", + "type": "address" + } + ], + "name": "changeMasterCopy", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "changeThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract Module", + "name": "prevModule", + "type": "address" + }, + { + "internalType": "contract Module", + "name": "module", + "type": "address" + } + ], + "name": "disableModule", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "domainSeparator", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract Module", + "name": "module", + "type": "address" + } + ], + "name": "enableModule", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "execTransactionFromModule", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "execTransactionFromModuleReturnData", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getModules", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "start", + "type": "address" + }, + { + "internalType": "uint256", + "name": "pageSize", + "type": "uint256" + } + ], + "name": "getModulesPaginated", + "outputs": [ + { + "internalType": "address[]", + "name": "array", + "type": "address[]" + }, + { + "internalType": "address", + "name": "next", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getOwners", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "nonce", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "prevOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "removeOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "handler", + "type": "address" + } + ], + "name": "setFallbackHandler", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "signedMessages", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "prevOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "swapOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address[]", + "name": "_owners", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "address", + "name": "fallbackHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "paymentToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "paymentReceiver", + "type": "address" + } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address payable", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + } + ], + "name": "execTransaction", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "requiredTxGas", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes32", + "name": "hashToApprove", + "type": "bytes32" + } + ], + "name": "approveHash", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "signMessage", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "_signature", + "type": "bytes" + } + ], + "name": "isValidSignature", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes", + "name": "message", + "type": "bytes" + } + ], + "name": "getMessageHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "encodeTransactionData", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "getTransactionHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.1.1/multi_send.json b/patches/package/src/assets/v1.1.1/multi_send.json new file mode 100644 index 0000000000..392b87e8e0 --- /dev/null +++ b/patches/package/src/assets/v1.1.1/multi_send.json @@ -0,0 +1,39 @@ +{ + "defaultAddress": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", + "released": true, + "contractName": "MultiSend", + "version": "1.1.1", + "networkAddresses": { + "1": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", + "4": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", + "5": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", + "42": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", + "88": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", + "100": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", + "246": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", + "73799": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD" + }, + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "transactions", + "type": "bytes" + } + ], + "name": "multiSend", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.1.1/proxy_factory.json b/patches/package/src/assets/v1.1.1/proxy_factory.json new file mode 100644 index 0000000000..4622e315bf --- /dev/null +++ b/patches/package/src/assets/v1.1.1/proxy_factory.json @@ -0,0 +1,185 @@ +{ + "defaultAddress": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", + "released": true, + "contractName": "ProxyFactory", + "version": "1.1.1", + "networkAddresses": { + "1": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", + "4": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", + "5": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", + "42": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", + "88": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", + "100": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", + "246": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", + "73799": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B" + }, + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract GnosisSafeProxy", + "name": "proxy", + "type": "address" + } + ], + "name": "ProxyCreation", + "type": "event" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "masterCopy", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "createProxy", + "outputs": [ + { + "internalType": "contract GnosisSafeProxy", + "name": "proxy", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proxyRuntimeCode", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "proxyCreationCode", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "pure", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_mastercopy", + "type": "address" + }, + { + "internalType": "bytes", + "name": "initializer", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "saltNonce", + "type": "uint256" + } + ], + "name": "createProxyWithNonce", + "outputs": [ + { + "internalType": "contract GnosisSafeProxy", + "name": "proxy", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_mastercopy", + "type": "address" + }, + { + "internalType": "bytes", + "name": "initializer", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "saltNonce", + "type": "uint256" + }, + { + "internalType": "contract IProxyCreationCallback", + "name": "callback", + "type": "address" + } + ], + "name": "createProxyWithCallback", + "outputs": [ + { + "internalType": "contract GnosisSafeProxy", + "name": "proxy", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_mastercopy", + "type": "address" + }, + { + "internalType": "bytes", + "name": "initializer", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "saltNonce", + "type": "uint256" + } + ], + "name": "calculateCreateProxyWithNonceAddress", + "outputs": [ + { + "internalType": "contract GnosisSafeProxy", + "name": "proxy", + "type": "address" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.2.0/gnosis_safe.json b/patches/package/src/assets/v1.2.0/gnosis_safe.json new file mode 100644 index 0000000000..eb7f940a59 --- /dev/null +++ b/patches/package/src/assets/v1.2.0/gnosis_safe.json @@ -0,0 +1,1016 @@ +{ + "defaultAddress": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", + "released": true, + "contractName": "GnosisSafe", + "version": "1.2.0", + "networkAddresses": { + "1": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", + "4": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", + "42": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", + "5": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", + "88": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", + "100": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", + "246": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", + "73799": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185" + }, + "abi": [ + { + "inputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "AddedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "approvedHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ApproveHash", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "masterCopy", + "type": "address" + } + ], + "name": "ChangedMasterCopy", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ], + "name": "ChangedThreshold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract Module", + "name": "module", + "type": "address" + } + ], + "name": "DisabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract Module", + "name": "module", + "type": "address" + } + ], + "name": "EnabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payment", + "type": "uint256" + } + ], + "name": "ExecutionFailure", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "ExecutionFromModuleFailure", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "ExecutionFromModuleSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payment", + "type": "uint256" + } + ], + "name": "ExecutionSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "RemovedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "msgHash", + "type": "bytes32" + } + ], + "name": "SignMsg", + "type": "event" + }, + { + "payable": true, + "stateMutability": "payable", + "type": "fallback" + }, + { + "constant": true, + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "addOwnerWithThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "approvedHashes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "_masterCopy", + "type": "address" + } + ], + "name": "changeMasterCopy", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "changeThreshold", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract Module", + "name": "prevModule", + "type": "address" + }, + { + "internalType": "contract Module", + "name": "module", + "type": "address" + } + ], + "name": "disableModule", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "domainSeparator", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "contract Module", + "name": "module", + "type": "address" + } + ], + "name": "enableModule", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "execTransactionFromModule", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "execTransactionFromModuleReturnData", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getModules", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "start", + "type": "address" + }, + { + "internalType": "uint256", + "name": "pageSize", + "type": "uint256" + } + ], + "name": "getModulesPaginated", + "outputs": [ + { + "internalType": "address[]", + "name": "array", + "type": "address[]" + }, + { + "internalType": "address", + "name": "next", + "type": "address" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getOwners", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "getThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "contract Module", + "name": "module", + "type": "address" + } + ], + "name": "isModuleEnabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [], + "name": "nonce", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "prevOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "removeOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "handler", + "type": "address" + } + ], + "name": "setFallbackHandler", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "signedMessages", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "prevOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "swapOwner", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address[]", + "name": "_owners", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "address", + "name": "fallbackHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "paymentToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "paymentReceiver", + "type": "address" + } + ], + "name": "setup", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address payable", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + } + ], + "name": "execTransaction", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "payable": true, + "stateMutability": "payable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "requiredTxGas", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes32", + "name": "hashToApprove", + "type": "bytes32" + } + ], + "name": "approveHash", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "signMessage", + "outputs": [], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": false, + "inputs": [ + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "_signature", + "type": "bytes" + } + ], + "name": "isValidSignature", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "payable": false, + "stateMutability": "nonpayable", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "bytes", + "name": "message", + "type": "bytes" + } + ], + "name": "getMessageHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "encodeTransactionData", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + }, + { + "constant": true, + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "getTransactionHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "payable": false, + "stateMutability": "view", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.3.0/compatibility_fallback_handler.json b/patches/package/src/assets/v1.3.0/compatibility_fallback_handler.json new file mode 100644 index 0000000000..137169b116 --- /dev/null +++ b/patches/package/src/assets/v1.3.0/compatibility_fallback_handler.json @@ -0,0 +1,347 @@ +{ + "defaultAddress": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "released": true, + "contractName": "CompatibilityFallbackHandler", + "version": "1.3.0", + "networkAddresses": { + "1": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "4": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "42": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "5": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "56": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "100": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "137": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "246": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "4002": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "42161": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "42220": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", + "43114": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", + "73799": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", + "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4" + }, + "abi": [ + { + "inputs": [], + "name": "NAME", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "message", + "type": "bytes" + } + ], + "name": "getMessageHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "contract GnosisSafe", + "name": "safe", + "type": "address" + }, + { + "internalType": "bytes", + "name": "message", + "type": "bytes" + } + ], + "name": "getMessageHashForSafe", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getModules", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "_dataHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "_signature", + "type": "bytes" + } + ], + "name": "isValidSignature", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "_signature", + "type": "bytes" + } + ], + "name": "isValidSignature", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "uint256[]", + "name": "", + "type": "uint256[]" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155BatchReceived", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC1155Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "onERC721Received", + "outputs": [ + { + "internalType": "bytes4", + "name": "", + "type": "bytes4" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "targetContract", + "type": "address" + }, + { + "internalType": "bytes", + "name": "calldataPayload", + "type": "bytes" + } + ], + "name": "simulate", + "outputs": [ + { + "internalType": "bytes", + "name": "response", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes4", + "name": "interfaceId", + "type": "bytes4" + } + ], + "name": "supportsInterface", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "uint256", + "name": "", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "name": "tokensReceived", + "outputs": [], + "stateMutability": "pure", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.3.0/create_call.json b/patches/package/src/assets/v1.3.0/create_call.json new file mode 100644 index 0000000000..4b2a14531b --- /dev/null +++ b/patches/package/src/assets/v1.3.0/create_call.json @@ -0,0 +1,90 @@ +{ + "defaultAddress": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "released": true, + "contractName": "CreateCall", + "version": "1.3.0", + "networkAddresses": { + "1": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "4": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "42": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "5": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "56": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "100": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "137": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "246": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "4002": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "42161": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "42220": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", + "43114": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", + "73799": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", + "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4" + }, + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "newContract", + "type": "address" + } + ], + "name": "ContractCreation", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "deploymentData", + "type": "bytes" + } + ], + "name": "performCreate", + "outputs": [ + { + "internalType": "address", + "name": "newContract", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "deploymentData", + "type": "bytes" + }, + { + "internalType": "bytes32", + "name": "salt", + "type": "bytes32" + } + ], + "name": "performCreate2", + "outputs": [ + { + "internalType": "address", + "name": "newContract", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.3.0/gnosis_safe.json b/patches/package/src/assets/v1.3.0/gnosis_safe.json new file mode 100644 index 0000000000..918cf719d4 --- /dev/null +++ b/patches/package/src/assets/v1.3.0/gnosis_safe.json @@ -0,0 +1,1055 @@ +{ + "defaultAddress": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "released": true, + "contractName": "GnosisSafe", + "version": "1.3.0", + "networkAddresses": { + "1": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "4": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "42": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "5": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "56": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "100": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "137": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "246": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "4002": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "42161": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "42220": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", + "43114": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", + "73799": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", + "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" + }, + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "AddedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "approvedHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ApproveHash", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "handler", + "type": "address" + } + ], + "name": "ChangedFallbackHandler", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "guard", + "type": "address" + } + ], + "name": "ChangedGuard", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ], + "name": "ChangedThreshold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "DisabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "EnabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payment", + "type": "uint256" + } + ], + "name": "ExecutionFailure", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "ExecutionFromModuleFailure", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "ExecutionFromModuleSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payment", + "type": "uint256" + } + ], + "name": "ExecutionSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "RemovedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "initiator", + "type": "address" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "owners", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "initializer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "fallbackHandler", + "type": "address" + } + ], + "name": "SafeSetup", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "msgHash", + "type": "bytes32" + } + ], + "name": "SignMsg", + "type": "event" + }, + { + "stateMutability": "nonpayable", + "type": "fallback" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "addOwnerWithThreshold", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "hashToApprove", + "type": "bytes32" + } + ], + "name": "approveHash", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "approvedHashes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "changeThreshold", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "dataHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "requiredSignatures", + "type": "uint256" + } + ], + "name": "checkNSignatures", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "dataHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + } + ], + "name": "checkSignatures", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "prevModule", + "type": "address" + }, + { + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "disableModule", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "domainSeparator", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "enableModule", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "encodeTransactionData", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address payable", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + } + ], + "name": "execTransaction", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "execTransactionFromModule", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "execTransactionFromModuleReturnData", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getChainId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "start", + "type": "address" + }, + { + "internalType": "uint256", + "name": "pageSize", + "type": "uint256" + } + ], + "name": "getModulesPaginated", + "outputs": [ + { + "internalType": "address[]", + "name": "array", + "type": "address[]" + }, + { + "internalType": "address", + "name": "next", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwners", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "offset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "getStorageAt", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "getTransactionHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "isModuleEnabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nonce", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "prevOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "requiredTxGas", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "handler", + "type": "address" + } + ], + "name": "setFallbackHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "guard", + "type": "address" + } + ], + "name": "setGuard", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_owners", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "address", + "name": "fallbackHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "paymentToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "paymentReceiver", + "type": "address" + } + ], + "name": "setup", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "signedMessages", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "targetContract", + "type": "address" + }, + { + "internalType": "bytes", + "name": "calldataPayload", + "type": "bytes" + } + ], + "name": "simulateAndRevert", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "prevOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "swapOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] +} diff --git a/patches/package/src/assets/v1.3.0/gnosis_safe_l2.json b/patches/package/src/assets/v1.3.0/gnosis_safe_l2.json new file mode 100644 index 0000000000..6706c6ff14 --- /dev/null +++ b/patches/package/src/assets/v1.3.0/gnosis_safe_l2.json @@ -0,0 +1,1160 @@ +{ + "defaultAddress": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "released": true, + "contractName": "GnosisSafeL2", + "version": "1.3.0", + "networkAddresses": { + "1": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "4": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "42": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "5": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "56": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "100": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "137": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "246": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "4002": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "42161": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "42220": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", + "43114": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", + "73799": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", + "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E" + }, + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "AddedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "approvedHash", + "type": "bytes32" + }, + { + "indexed": true, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "ApproveHash", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "handler", + "type": "address" + } + ], + "name": "ChangedFallbackHandler", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "guard", + "type": "address" + } + ], + "name": "ChangedGuard", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + } + ], + "name": "ChangedThreshold", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "DisabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "EnabledModule", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payment", + "type": "uint256" + } + ], + "name": "ExecutionFailure", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "ExecutionFromModuleFailure", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "ExecutionFromModuleSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "bytes32", + "name": "txHash", + "type": "bytes32" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "payment", + "type": "uint256" + } + ], + "name": "ExecutionSuccess", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "RemovedOwner", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "module", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "SafeModuleTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "indexed": false, + "internalType": "address payable", + "name": "refundReceiver", + "type": "address" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + }, + { + "indexed": false, + "internalType": "bytes", + "name": "additionalInfo", + "type": "bytes" + } + ], + "name": "SafeMultiSigTransaction", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "sender", + "type": "address" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "value", + "type": "uint256" + } + ], + "name": "SafeReceived", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "address", + "name": "initiator", + "type": "address" + }, + { + "indexed": false, + "internalType": "address[]", + "name": "owners", + "type": "address[]" + }, + { + "indexed": false, + "internalType": "uint256", + "name": "threshold", + "type": "uint256" + }, + { + "indexed": false, + "internalType": "address", + "name": "initializer", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "fallbackHandler", + "type": "address" + } + ], + "name": "SafeSetup", + "type": "event" + }, + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "msgHash", + "type": "bytes32" + } + ], + "name": "SignMsg", + "type": "event" + }, + { + "stateMutability": "nonpayable", + "type": "fallback" + }, + { + "inputs": [], + "name": "VERSION", + "outputs": [ + { + "internalType": "string", + "name": "", + "type": "string" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "addOwnerWithThreshold", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "hashToApprove", + "type": "bytes32" + } + ], + "name": "approveHash", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "", + "type": "address" + }, + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "approvedHashes", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "changeThreshold", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "dataHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "requiredSignatures", + "type": "uint256" + } + ], + "name": "checkNSignatures", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "dataHash", + "type": "bytes32" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + } + ], + "name": "checkSignatures", + "outputs": [], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "prevModule", + "type": "address" + }, + { + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "disableModule", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "domainSeparator", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "enableModule", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "encodeTransactionData", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address payable", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "bytes", + "name": "signatures", + "type": "bytes" + } + ], + "name": "execTransaction", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "payable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "execTransactionFromModule", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "execTransactionFromModuleReturnData", + "outputs": [ + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "getChainId", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "start", + "type": "address" + }, + { + "internalType": "uint256", + "name": "pageSize", + "type": "uint256" + } + ], + "name": "getModulesPaginated", + "outputs": [ + { + "internalType": "address[]", + "name": "array", + "type": "address[]" + }, + { + "internalType": "address", + "name": "next", + "type": "address" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getOwners", + "outputs": [ + { + "internalType": "address[]", + "name": "", + "type": "address[]" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "uint256", + "name": "offset", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "length", + "type": "uint256" + } + ], + "name": "getStorageAt", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "getThreshold", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + }, + { + "internalType": "uint256", + "name": "safeTxGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "baseGas", + "type": "uint256" + }, + { + "internalType": "uint256", + "name": "gasPrice", + "type": "uint256" + }, + { + "internalType": "address", + "name": "gasToken", + "type": "address" + }, + { + "internalType": "address", + "name": "refundReceiver", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_nonce", + "type": "uint256" + } + ], + "name": "getTransactionHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "module", + "type": "address" + } + ], + "name": "isModuleEnabled", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "owner", + "type": "address" + } + ], + "name": "isOwner", + "outputs": [ + { + "internalType": "bool", + "name": "", + "type": "bool" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [], + "name": "nonce", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "prevOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "owner", + "type": "address" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + } + ], + "name": "removeOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "requiredTxGas", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "handler", + "type": "address" + } + ], + "name": "setFallbackHandler", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "guard", + "type": "address" + } + ], + "name": "setGuard", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address[]", + "name": "_owners", + "type": "address[]" + }, + { + "internalType": "uint256", + "name": "_threshold", + "type": "uint256" + }, + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "address", + "name": "fallbackHandler", + "type": "address" + }, + { + "internalType": "address", + "name": "paymentToken", + "type": "address" + }, + { + "internalType": "uint256", + "name": "payment", + "type": "uint256" + }, + { + "internalType": "address payable", + "name": "paymentReceiver", + "type": "address" + } + ], + "name": "setup", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "name": "signedMessages", + "outputs": [ + { + "internalType": "uint256", + "name": "", + "type": "uint256" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "targetContract", + "type": "address" + }, + { + "internalType": "bytes", + "name": "calldataPayload", + "type": "bytes" + } + ], + "name": "simulateAndRevert", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "prevOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "oldOwner", + "type": "address" + }, + { + "internalType": "address", + "name": "newOwner", + "type": "address" + } + ], + "name": "swapOwner", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "stateMutability": "payable", + "type": "receive" + } + ] +} diff --git a/patches/package/src/assets/v1.3.0/multi_send.json b/patches/package/src/assets/v1.3.0/multi_send.json new file mode 100644 index 0000000000..e5ef0312d4 --- /dev/null +++ b/patches/package/src/assets/v1.3.0/multi_send.json @@ -0,0 +1,42 @@ +{ + "defaultAddress": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "released": true, + "contractName": "MultiSend", + "version": "1.3.0", + "networkAddresses": { + "1": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "4": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "42": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "5": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "56": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "100": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "137": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "246": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "4002": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "42161": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "42220": "0x998739BFdAAdde7C933B942a68053933098f9EDa", + "43114": "0x998739BFdAAdde7C933B942a68053933098f9EDa", + "73799": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", + "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761" + }, + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "transactions", + "type": "bytes" + } + ], + "name": "multiSend", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.3.0/multi_send_call_only.json b/patches/package/src/assets/v1.3.0/multi_send_call_only.json new file mode 100644 index 0000000000..ba6efcf8d3 --- /dev/null +++ b/patches/package/src/assets/v1.3.0/multi_send_call_only.json @@ -0,0 +1,37 @@ +{ + "defaultAddress": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "released": true, + "contractName": "MultiSendCallOnly", + "version": "1.3.0", + "networkAddresses": { + "1": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "4": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "42": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "5": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "56": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "100": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "137": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "246": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "4002": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "42161": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "42220": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", + "43114": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", + "73799": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", + "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D" + }, + "abi": [ + { + "inputs": [ + { + "internalType": "bytes", + "name": "transactions", + "type": "bytes" + } + ], + "name": "multiSend", + "outputs": [], + "stateMutability": "payable", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.3.0/proxy_factory.json b/patches/package/src/assets/v1.3.0/proxy_factory.json new file mode 100644 index 0000000000..678c97a8b8 --- /dev/null +++ b/patches/package/src/assets/v1.3.0/proxy_factory.json @@ -0,0 +1,185 @@ +{ + "defaultAddress": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "released": true, + "contractName": "GnosisSafeProxyFactory", + "version": "1.3.0", + "networkAddresses": { + "1": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "4": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "42": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "5": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "56": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "100": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "137": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "246": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "4002": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "42161": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "42220": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", + "43114": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", + "73799": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", + "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2" + }, + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": false, + "internalType": "contract GnosisSafeProxy", + "name": "proxy", + "type": "address" + }, + { + "indexed": false, + "internalType": "address", + "name": "singleton", + "type": "address" + } + ], + "name": "ProxyCreation", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_singleton", + "type": "address" + }, + { + "internalType": "bytes", + "name": "initializer", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "saltNonce", + "type": "uint256" + } + ], + "name": "calculateCreateProxyWithNonceAddress", + "outputs": [ + { + "internalType": "contract GnosisSafeProxy", + "name": "proxy", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "singleton", + "type": "address" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + } + ], + "name": "createProxy", + "outputs": [ + { + "internalType": "contract GnosisSafeProxy", + "name": "proxy", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_singleton", + "type": "address" + }, + { + "internalType": "bytes", + "name": "initializer", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "saltNonce", + "type": "uint256" + }, + { + "internalType": "contract IProxyCreationCallback", + "name": "callback", + "type": "address" + } + ], + "name": "createProxyWithCallback", + "outputs": [ + { + "internalType": "contract GnosisSafeProxy", + "name": "proxy", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "_singleton", + "type": "address" + }, + { + "internalType": "bytes", + "name": "initializer", + "type": "bytes" + }, + { + "internalType": "uint256", + "name": "saltNonce", + "type": "uint256" + } + ], + "name": "createProxyWithNonce", + "outputs": [ + { + "internalType": "contract GnosisSafeProxy", + "name": "proxy", + "type": "address" + } + ], + "stateMutability": "nonpayable", + "type": "function" + }, + { + "inputs": [], + "name": "proxyCreationCode", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + }, + { + "inputs": [], + "name": "proxyRuntimeCode", + "outputs": [ + { + "internalType": "bytes", + "name": "", + "type": "bytes" + } + ], + "stateMutability": "pure", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.3.0/sign_message_lib.json b/patches/package/src/assets/v1.3.0/sign_message_lib.json new file mode 100644 index 0000000000..246eae66ce --- /dev/null +++ b/patches/package/src/assets/v1.3.0/sign_message_lib.json @@ -0,0 +1,69 @@ +{ + "defaultAddress": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "contractName": "SignMessageLib", + "version": "1.3.0", + "released": true, + "networkAddresses": { + "1": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "4": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "42": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "5": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "56": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "100": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "137": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "246": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "4002": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "42161": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "42220": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", + "43114": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", + "73799": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", + "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C" + }, + "abi": [ + { + "anonymous": false, + "inputs": [ + { + "indexed": true, + "internalType": "bytes32", + "name": "msgHash", + "type": "bytes32" + } + ], + "name": "SignMsg", + "type": "event" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "message", + "type": "bytes" + } + ], + "name": "getMessageHash", + "outputs": [ + { + "internalType": "bytes32", + "name": "", + "type": "bytes32" + } + ], + "stateMutability": "view", + "type": "function" + }, + { + "inputs": [ + { + "internalType": "bytes", + "name": "_data", + "type": "bytes" + } + ], + "name": "signMessage", + "outputs": [], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/patches/package/src/assets/v1.3.0/simulate_tx_accessor.json b/patches/package/src/assets/v1.3.0/simulate_tx_accessor.json new file mode 100644 index 0000000000..7aa6831318 --- /dev/null +++ b/patches/package/src/assets/v1.3.0/simulate_tx_accessor.json @@ -0,0 +1,73 @@ +{ + "defaultAddress": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "released": true, + "contractName": "SimulateTxAccesor", + "version": "1.3.0", + "networkAddresses": { + "1": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "4": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "42": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "5": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "56": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "100": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "137": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "246": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "4002": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "42161": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "42220": "0x727a77a074D1E6c4530e814F89E618a3298FC044", + "43114": "0x727a77a074D1E6c4530e814F89E618a3298FC044", + "73799": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", + "333999": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da" + }, + "abi": [ + { + "inputs": [], + "stateMutability": "nonpayable", + "type": "constructor" + }, + { + "inputs": [ + { + "internalType": "address", + "name": "to", + "type": "address" + }, + { + "internalType": "uint256", + "name": "value", + "type": "uint256" + }, + { + "internalType": "bytes", + "name": "data", + "type": "bytes" + }, + { + "internalType": "enum Enum.Operation", + "name": "operation", + "type": "uint8" + } + ], + "name": "simulate", + "outputs": [ + { + "internalType": "uint256", + "name": "estimate", + "type": "uint256" + }, + { + "internalType": "bool", + "name": "success", + "type": "bool" + }, + { + "internalType": "bytes", + "name": "returnData", + "type": "bytes" + } + ], + "stateMutability": "nonpayable", + "type": "function" + } + ] +} diff --git a/patches/package/src/factories.ts b/patches/package/src/factories.ts new file mode 100644 index 0000000000..a2845668cd --- /dev/null +++ b/patches/package/src/factories.ts @@ -0,0 +1,15 @@ +import ProxyFactory111 from './assets/v1.1.1/proxy_factory.json' +import ProxyFactory130 from './assets/v1.3.0/proxy_factory.json' +import { DeploymentFilter, SingletonDeployment } from './types' +import { applyFilterDefaults, findDeployment } from './utils' + + + +// This is a sorted array (newest to oldest) +const factoryDeployments: SingletonDeployment[] = [ + ProxyFactory130, ProxyFactory111 +] + +export const getProxyFactoryDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { + return findDeployment(applyFilterDefaults(filter), factoryDeployments) +} \ No newline at end of file diff --git a/patches/package/src/handler.ts b/patches/package/src/handler.ts new file mode 100644 index 0000000000..3755544648 --- /dev/null +++ b/patches/package/src/handler.ts @@ -0,0 +1,31 @@ +import DefaultCallbackHandler130 from './assets/v1.1.1/default_callback_handler.json' +import CompatibilityFallbackHandler from './assets/v1.3.0/compatibility_fallback_handler.json' +import { DeploymentFilter, SingletonDeployment } from './types' +import { applyFilterDefaults, findDeployment } from './utils' + +// This is a sorted array (by preference) +const defaultCallbackHandlerDeployments: SingletonDeployment[] = [ + DefaultCallbackHandler130 +] + +export const getDefaultCallbackHandlerDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { + return findDeployment(applyFilterDefaults(filter), defaultCallbackHandlerDeployments) +} + +// This is a sorted array (by preference) +const compatFallbackHandlerDeployments: SingletonDeployment[] = [ + CompatibilityFallbackHandler +] + +export const getCompatibilityFallbackHandlerDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { + return findDeployment(applyFilterDefaults(filter), compatFallbackHandlerDeployments) +} + +// This is a sorted array (by preference) +const fallbackHandlerDeployments: SingletonDeployment[] = [ + CompatibilityFallbackHandler, DefaultCallbackHandler130 +] + +export const getFallbackHandlerDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { + return findDeployment(applyFilterDefaults(filter), fallbackHandlerDeployments) +} \ No newline at end of file diff --git a/patches/package/src/index.ts b/patches/package/src/index.ts new file mode 100644 index 0000000000..a449e8fa6b --- /dev/null +++ b/patches/package/src/index.ts @@ -0,0 +1,5 @@ +export * from './types' +export * from './safes' +export * from './factories' +export * from './libs' +export * from './handler' \ No newline at end of file diff --git a/patches/package/src/libs.ts b/patches/package/src/libs.ts new file mode 100644 index 0000000000..12c9dfb99e --- /dev/null +++ b/patches/package/src/libs.ts @@ -0,0 +1,42 @@ +import CreateCall130 from './assets/v1.3.0/create_call.json' +import MultiSend111 from './assets/v1.1.1/multi_send.json' +import MultiSend130 from './assets/v1.3.0/multi_send.json' +import MultiSendCallOnly130 from './assets/v1.3.0/multi_send_call_only.json' +import SignMessageLib130 from './assets/v1.3.0/sign_message_lib.json' +import { DeploymentFilter, SingletonDeployment } from './types' +import { applyFilterDefaults, findDeployment } from './utils' + +// This is a sorted array (by preference, currently we use 111 in most cases) +const multiSendDeployments: SingletonDeployment[] = [ + MultiSend130, MultiSend111 +] + +export const getMultiSendDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { + return findDeployment(applyFilterDefaults(filter), multiSendDeployments) +} + +// This is a sorted array (by preference) +const multiSendCallOnlyDeployments: SingletonDeployment[] = [ + MultiSendCallOnly130 +] + +export const getMultiSendCallOnlyDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { + return findDeployment(applyFilterDefaults(filter), multiSendCallOnlyDeployments) +} + +// This is a sorted array (by preference) +const createCallDeployments: SingletonDeployment[] = [ + CreateCall130 +] + +export const getCreateCallDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { + return findDeployment(applyFilterDefaults(filter), createCallDeployments) +} + +const signMessageLibDeployments: SingletonDeployment[] = [ + SignMessageLib130 +] + +export const getSignMessageLibDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { + return findDeployment(applyFilterDefaults(filter), signMessageLibDeployments) +} \ No newline at end of file diff --git a/patches/package/src/safes.ts b/patches/package/src/safes.ts new file mode 100644 index 0000000000..44c1ecfb1a --- /dev/null +++ b/patches/package/src/safes.ts @@ -0,0 +1,25 @@ +import GnosisSafeL2130 from './assets/v1.3.0/gnosis_safe_l2.json' +import GnosisSafe130 from './assets/v1.3.0/gnosis_safe.json' +import GnosisSafe120 from './assets/v1.2.0/gnosis_safe.json' +import GnosisSafe111 from './assets/v1.1.1/gnosis_safe.json' +import GnosisSafe100 from './assets/v1.0.0/gnosis_safe.json' +import { DeploymentFilter, SingletonDeployment } from './types' +import { applyFilterDefaults, findDeployment } from './utils' + +// This is a sorted array (newest to oldest) +const safeDeployments: SingletonDeployment[] = [ + GnosisSafe130, GnosisSafe120, GnosisSafe111, GnosisSafe100 +] + +export const getSafeSingletonDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { + return findDeployment(applyFilterDefaults(filter), safeDeployments) +} + +// This is a sorted array (newest to oldest) +const safeL2Deployments: SingletonDeployment[] = [ + GnosisSafeL2130 +] + +export const getSafeL2SingletonDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { + return findDeployment(applyFilterDefaults(filter), safeL2Deployments) +} \ No newline at end of file diff --git a/patches/package/src/types.ts b/patches/package/src/types.ts new file mode 100644 index 0000000000..0734587f90 --- /dev/null +++ b/patches/package/src/types.ts @@ -0,0 +1,14 @@ +export interface SingletonDeployment { + defaultAddress: string, + version: string, + abi: any[], + networkAddresses: Record, + contractName: string, + released: boolean +} + +export interface DeploymentFilter { + version?: string, + released?: boolean, + network?: string +} \ No newline at end of file diff --git a/patches/package/src/utils.ts b/patches/package/src/utils.ts new file mode 100644 index 0000000000..92ea007032 --- /dev/null +++ b/patches/package/src/utils.ts @@ -0,0 +1,14 @@ +import { DeploymentFilter, SingletonDeployment } from "./types" + +export const findDeployment = (criteria: DeploymentFilter, deployments: SingletonDeployment[]): SingletonDeployment | undefined => + deployments.find((deployment) => { + if (criteria.version && deployment.version !== criteria.version) return false + if (criteria.released && deployment.released != criteria.released) return false + if (criteria.network && !deployment.networkAddresses[criteria.network]) return false + return true + }) + +export const applyFilterDefaults = (filter?: DeploymentFilter): DeploymentFilter => { + if (!filter) return { released: true } + return filter +} \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index e61acbbb4f..e85b6b485e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2147,10 +2147,10 @@ "@gnosis.pm/safe-core-sdk-types" "^0.1.1" ethereumjs-util "^7.0.10" -"@gnosis.pm/safe-deployments@1.4.0": - version "1.4.0" - resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-deployments/-/safe-deployments-1.4.0.tgz#d49d3d36cc014ef62306d09c0f4761895a17d7a6" - integrity sha512-q4salJNQ/Gx0DnZJytAFO/U4OwGI6xTGtTJSOZK+C9Fh2NW8sep+YfSunHQvCLcu4b7WgWEBhxnCV6rpyveLHg== +"@gnosis.pm/safe-deployments@^1.5.0": + version "1.5.0" + resolved "https://registry.yarnpkg.com/@gnosis.pm/safe-deployments/-/safe-deployments-1.5.0.tgz#5e01ccc2e2d78bf91ecb4453a64d1cac3a5ba2d6" + integrity sha512-IDU7I+IQr1zUU94/uD8shDVI+/nUA1unQUg8jtbTG0YGcmm49Lu8G01rqtWt2mhLxZWzFsgbLWGnU+/BzUqk7g== "@gnosis.pm/safe-react-components@^0.8.0": version "0.8.0" From b21cdb626f6955156feaf58c181ea3101d653356 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Wed, 8 Dec 2021 12:43:22 +0100 Subject: [PATCH 19/25] bump safe deployments with boba support --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 832c2401be..c5879ebee2 100644 --- a/package.json +++ b/package.json @@ -171,7 +171,7 @@ "@gnosis.pm/safe-apps-sdk": "4.3.0-next.2", "@gnosis.pm/safe-apps-sdk-v1": "npm:@gnosis.pm/safe-apps-sdk@0.4.2", "@gnosis.pm/safe-core-sdk": "^0.3.1", - "@gnosis.pm/safe-deployments": "1.4.0", + "@gnosis.pm/safe-deployments": "^1.5.0", "@gnosis.pm/safe-react-components": "^0.8.0", "@gnosis.pm/safe-react-gateway-sdk": "2.3.0", "@ledgerhq/hw-transport-node-hid-singleton": "6.3.0", From cf481e04c113a8bb60042a70e6e61813bf488a9c Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Wed, 8 Dec 2021 13:07:17 +0100 Subject: [PATCH 20/25] pull gnosis sts --- .gitmodules | 5 +---- boba_ops/safe-transaction-service | 1 - 2 files changed, 1 insertion(+), 5 deletions(-) delete mode 160000 boba_ops/safe-transaction-service diff --git a/.gitmodules b/.gitmodules index d41f98c3e8..6a74a5f631 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,7 +3,4 @@ url = https://github.com/gnosis/safe-client-gateway.git [submodule "boba_ops/safe-config-service"] path = boba_ops/safe-config-service - url = https://github.com/gnosis/safe-config-service -[submodule "boba_ops/safe-transaction-service"] - path = boba_ops/safe-transaction-service - url = https://github.com/omgnetwork/safe-transaction-service + url = https://github.com/gnosis/safe-config-service \ No newline at end of file diff --git a/boba_ops/safe-transaction-service b/boba_ops/safe-transaction-service deleted file mode 160000 index 5b380d1ef0..0000000000 --- a/boba_ops/safe-transaction-service +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 5b380d1ef0a92a286bcece7d39e9e64f371b0e74 From 2febec3af65675f21f1d4eca1a0a1bc2c3621366 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Wed, 8 Dec 2021 13:15:54 +0100 Subject: [PATCH 21/25] pull gnosis sts --- .gitmodules | 5 ++++- boba_ops/safe-transaction-service | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) create mode 160000 boba_ops/safe-transaction-service diff --git a/.gitmodules b/.gitmodules index 6a74a5f631..5d7b9e71b2 100644 --- a/.gitmodules +++ b/.gitmodules @@ -3,4 +3,7 @@ url = https://github.com/gnosis/safe-client-gateway.git [submodule "boba_ops/safe-config-service"] path = boba_ops/safe-config-service - url = https://github.com/gnosis/safe-config-service \ No newline at end of file + url = https://github.com/gnosis/safe-config-service +[submodule "boba_ops/safe-transaction-service"] + path = boba_ops/safe-transaction-service + url = https://github.com/gnosis/safe-transaction-service diff --git a/boba_ops/safe-transaction-service b/boba_ops/safe-transaction-service new file mode 160000 index 0000000000..c9a41020f0 --- /dev/null +++ b/boba_ops/safe-transaction-service @@ -0,0 +1 @@ +Subproject commit c9a41020f04df06d001b12c81c9bc1fcf10582c8 From 107b2b2752e3bd079eef22e7a08ea790e3e43ccf Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Wed, 8 Dec 2021 13:21:50 +0100 Subject: [PATCH 22/25] faulty patch --- patches/package/LICENSE | 9 - patches/package/README.md | 91 -- patches/package/package.json | 48 - .../src/assets/v1.0.0/gnosis_safe.json | 418 ------ .../assets/v1.1.1/create_and_add_modules.json | 49 - .../src/assets/v1.1.1/create_call.json | 84 -- .../v1.1.1/default_callback_handler.json | 206 --- .../src/assets/v1.1.1/gnosis_safe.json | 995 -------------- .../package/src/assets/v1.1.1/multi_send.json | 39 - .../src/assets/v1.1.1/proxy_factory.json | 185 --- .../src/assets/v1.2.0/gnosis_safe.json | 1016 --------------- .../compatibility_fallback_handler.json | 347 ----- .../src/assets/v1.3.0/create_call.json | 90 -- .../src/assets/v1.3.0/gnosis_safe.json | 1055 --------------- .../src/assets/v1.3.0/gnosis_safe_l2.json | 1160 ----------------- .../package/src/assets/v1.3.0/multi_send.json | 42 - .../assets/v1.3.0/multi_send_call_only.json | 37 - .../src/assets/v1.3.0/proxy_factory.json | 185 --- .../src/assets/v1.3.0/sign_message_lib.json | 69 - .../assets/v1.3.0/simulate_tx_accessor.json | 73 -- patches/package/src/factories.ts | 15 - patches/package/src/handler.ts | 31 - patches/package/src/index.ts | 5 - patches/package/src/libs.ts | 42 - patches/package/src/safes.ts | 25 - patches/package/src/types.ts | 14 - patches/package/src/utils.ts | 14 - 27 files changed, 6344 deletions(-) delete mode 100644 patches/package/LICENSE delete mode 100644 patches/package/README.md delete mode 100644 patches/package/package.json delete mode 100644 patches/package/src/assets/v1.0.0/gnosis_safe.json delete mode 100644 patches/package/src/assets/v1.1.1/create_and_add_modules.json delete mode 100644 patches/package/src/assets/v1.1.1/create_call.json delete mode 100644 patches/package/src/assets/v1.1.1/default_callback_handler.json delete mode 100644 patches/package/src/assets/v1.1.1/gnosis_safe.json delete mode 100644 patches/package/src/assets/v1.1.1/multi_send.json delete mode 100644 patches/package/src/assets/v1.1.1/proxy_factory.json delete mode 100644 patches/package/src/assets/v1.2.0/gnosis_safe.json delete mode 100644 patches/package/src/assets/v1.3.0/compatibility_fallback_handler.json delete mode 100644 patches/package/src/assets/v1.3.0/create_call.json delete mode 100644 patches/package/src/assets/v1.3.0/gnosis_safe.json delete mode 100644 patches/package/src/assets/v1.3.0/gnosis_safe_l2.json delete mode 100644 patches/package/src/assets/v1.3.0/multi_send.json delete mode 100644 patches/package/src/assets/v1.3.0/multi_send_call_only.json delete mode 100644 patches/package/src/assets/v1.3.0/proxy_factory.json delete mode 100644 patches/package/src/assets/v1.3.0/sign_message_lib.json delete mode 100644 patches/package/src/assets/v1.3.0/simulate_tx_accessor.json delete mode 100644 patches/package/src/factories.ts delete mode 100644 patches/package/src/handler.ts delete mode 100644 patches/package/src/index.ts delete mode 100644 patches/package/src/libs.ts delete mode 100644 patches/package/src/safes.ts delete mode 100644 patches/package/src/types.ts delete mode 100644 patches/package/src/utils.ts diff --git a/patches/package/LICENSE b/patches/package/LICENSE deleted file mode 100644 index 0e499e80cf..0000000000 --- a/patches/package/LICENSE +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) 2018 Gnosis Ltd - -Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. \ No newline at end of file diff --git a/patches/package/README.md b/patches/package/README.md deleted file mode 100644 index a25ece1698..0000000000 --- a/patches/package/README.md +++ /dev/null @@ -1,91 +0,0 @@ -# Gnosis Safe Deployments - -[![npm version](https://badge.fury.io/js/%40gnosis.pm%2Fsafe-deployments.svg)](https://badge.fury.io/js/%40gnosis.pm%2Fsafe-deployments) - -This contract contains a collection of deployments of the contract of the [Safe contracts repository](https://github.com/gnosis/safe-contracts). - -For each deployment the address on the different networks and the abi files are available. To get an overview of the available versions check the available [json assets](./src/assets/). - -To add additional deployments please follow the [deployment steps in the Safe contract repository](https://github.com/gnosis/safe-contracts#deployments). - -## Install -- npm - `npm i @gnosis.pm/safe-deployments` -- yarn - `yarn add @gnosis.pm/safe-deployments` - -## Usage - -It is possible to directly use the json files in the [assets folder](./src/assets/) that contain the addresses and abi definitions. - -An alternative is to use the JavaScript library methods to query the correct deployment. The library supports different methods to get the deployment of a specific contract. - -Each of the method takes an optional `DeploymentFilter` as a parameter. - -```ts -interface DeploymentFilter { - version?: string, - released?: boolean, // Defaults to true if no filter is specified - network?: string // Chain id of the network -} -``` - -The method will return a `SingletonDeployment` object or `undefined` if no deployment was found for the specified filter. - -```ts -interface SingletonDeployment { - defaultAddress: string, // Address the contract was deployed to by the Gnosis team - version: string, - abi: any[], - networkAddresses: Record, // Address of the contract by network - contractName: string, - released: boolean // A released version was audited and has a running bug bounty -} -``` - -- Gnosis Safe -```ts -const safeSingleton = getSafeSingletonDeployment() - -// Returns latest contract version, even if not finally released yet -const safeSingletonNightly = getSafeSingletonDeployment({ released: undefined }) - -// Returns released contract version for specific network -const safeSingletonGörli = getSafeSingletonDeployment({ network: "5" }) - -// Returns released contract version for specific version -const safeSingleton100 = getSafeSingletonDeployment({ version: "1.0.0" }) - -// Version with additional events used on L2 networks -const safeL2Singleton = getSafeL2SingletonDeployment() -``` - -- Factories -```ts -const proxyFactory = getProxyFactoryDeployment() -``` - -- Libraries -```ts -const multiSendLib = getMultiSendDeployment() - -const multiSendCallOnlyLib = getMultiSendCallOnlyDeployment() - -const createCallLib = getCreateCallDeployment() -``` - -- Handler -```ts -// Returns recommended handler -const fallbackHandler = getFallbackHandlerDeployment() - -const callbackHandler = getDefaultCallbackHandlerDeployment() - -const compatHandler = getCompatibilityFallbackHandlerDeployment() -``` - -## Notes - -A list of network information can be found at [chainid.network](https://chainid.network/) - -## License - -This library is released under MIT. \ No newline at end of file diff --git a/patches/package/package.json b/patches/package/package.json deleted file mode 100644 index 3080a94945..0000000000 --- a/patches/package/package.json +++ /dev/null @@ -1,48 +0,0 @@ -{ - "name": "@gnosis.pm/safe-deployments", - "version": "1.4.0", - "description": "Collection of Safe singleton deployments", - "homepage": "https://github.com/gnosis/safe-deployments/", - "license": "LGPL-3.0", - "main": "dist/index.js", - "typings": "dist/index.d.ts", - "files": [ - "dist", - "src", - "test", - "build" - ], - "scripts": { - "build": "yarn rimraf dist && tsc", - "lint": "eslint --max-warnings 0 .", - "prepack": "yarn build", - "prepare": "husky install" - }, - "repository": { - "type": "git", - "url": "git+https://github.com/gnosis/gnosis-deployments.git" - }, - "keywords": [ - "Ethereum", - "Wallet", - "Safe" - ], - "author": "richard@gnosis.io", - "bugs": { - "url": "https://github.com/gnosis/gnosis-deployments/issues" - }, - "devDependencies": { - "@types/node": "^14.14.21", - "@typescript-eslint/eslint-plugin": "^4.7.0", - "@typescript-eslint/parser": "^4.7.0", - "eslint": "^7.13.0", - "eslint-config-prettier": "^6.15.0", - "eslint-plugin-import": "^2.22.1", - "eslint-plugin-no-only-tests": "^2.4.0", - "eslint-plugin-prettier": "^3.1.4", - "husky": "^5.1.3", - "prettier": "^2.1.2", - "ts-node": "^9.1.1", - "typescript": "^4.2.4" - } -} diff --git a/patches/package/src/assets/v1.0.0/gnosis_safe.json b/patches/package/src/assets/v1.0.0/gnosis_safe.json deleted file mode 100644 index ab5d083f2f..0000000000 --- a/patches/package/src/assets/v1.0.0/gnosis_safe.json +++ /dev/null @@ -1,418 +0,0 @@ -{ - "defaultAddress": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", - "released": true, - "contractName": "GnosisSafe", - "version": "1.0.0", - "networkAddresses": { - "1": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", - "4": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", - "5": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", - "42": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A" - }, - "abi": [ - { - "constant": false, - "inputs": [ - { "name": "owner", "type": "address" }, - { "name": "_threshold", "type": "uint256" } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "DOMAIN_SEPARATOR_TYPEHASH", - "outputs": [{ "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "name": "owner", "type": "address" }], - "name": "isOwner", - "outputs": [{ "name": "", "type": "bool" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "name": "to", "type": "address" }, - { "name": "value", "type": "uint256" }, - { "name": "data", "type": "bytes" }, - { "name": "operation", "type": "uint8" } - ], - "name": "execTransactionFromModule", - "outputs": [{ "name": "success", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "name": "", "type": "bytes32" }], - "name": "signedMessages", - "outputs": [{ "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [{ "name": "module", "type": "address" }], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [{ "name": "_threshold", "type": "uint256" }], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "name": "", "type": "address" }, - { "name": "", "type": "bytes32" } - ], - "name": "approvedHashes", - "outputs": [{ "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [{ "name": "_masterCopy", "type": "address" }], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_MODULES", - "outputs": [{ "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SENTINEL_OWNERS", - "outputs": [{ "name": "", "type": "address" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [{ "name": "", "type": "address[]" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [{ "name": "", "type": "string" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nonce", - "outputs": [{ "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [{ "name": "", "type": "address[]" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SAFE_MSG_TYPEHASH", - "outputs": [{ "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "SAFE_TX_TYPEHASH", - "outputs": [{ "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "name": "prevModule", "type": "address" }, - { "name": "module", "type": "address" } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "name": "prevOwner", "type": "address" }, - { "name": "oldOwner", "type": "address" }, - { "name": "newOwner", "type": "address" } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [{ "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "domainSeparator", - "outputs": [{ "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "name": "prevOwner", "type": "address" }, - { "name": "owner", "type": "address" }, - { "name": "_threshold", "type": "uint256" } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [{ "name": "", "type": "string" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { "payable": true, "stateMutability": "payable", "type": "fallback" }, - { - "anonymous": false, - "inputs": [{ "indexed": false, "name": "txHash", "type": "bytes32" }], - "name": "ExecutionFailed", - "type": "event" - }, - { - "anonymous": false, - "inputs": [{ "indexed": false, "name": "owner", "type": "address" }], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [{ "indexed": false, "name": "owner", "type": "address" }], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [{ "indexed": false, "name": "threshold", "type": "uint256" }], - "name": "ChangedThreshold", - "type": "event" - }, - { - "anonymous": false, - "inputs": [{ "indexed": false, "name": "module", "type": "address" }], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [{ "indexed": false, "name": "module", "type": "address" }], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { "indexed": false, "name": "newContract", "type": "address" } - ], - "name": "ContractCreation", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { "name": "_owners", "type": "address[]" }, - { "name": "_threshold", "type": "uint256" }, - { "name": "to", "type": "address" }, - { "name": "data", "type": "bytes" }, - { "name": "paymentToken", "type": "address" }, - { "name": "payment", "type": "uint256" }, - { "name": "paymentReceiver", "type": "address" } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "name": "to", "type": "address" }, - { "name": "value", "type": "uint256" }, - { "name": "data", "type": "bytes" }, - { "name": "operation", "type": "uint8" }, - { "name": "safeTxGas", "type": "uint256" }, - { "name": "baseGas", "type": "uint256" }, - { "name": "gasPrice", "type": "uint256" }, - { "name": "gasToken", "type": "address" }, - { "name": "refundReceiver", "type": "address" }, - { "name": "signatures", "type": "bytes" } - ], - "name": "execTransaction", - "outputs": [{ "name": "success", "type": "bool" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "name": "to", "type": "address" }, - { "name": "value", "type": "uint256" }, - { "name": "data", "type": "bytes" }, - { "name": "operation", "type": "uint8" } - ], - "name": "requiredTxGas", - "outputs": [{ "name": "", "type": "uint256" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [{ "name": "hashToApprove", "type": "bytes32" }], - "name": "approveHash", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [{ "name": "_data", "type": "bytes" }], - "name": "signMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { "name": "_data", "type": "bytes" }, - { "name": "_signature", "type": "bytes" } - ], - "name": "isValidSignature", - "outputs": [{ "name": "", "type": "bytes4" }], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [{ "name": "message", "type": "bytes" }], - "name": "getMessageHash", - "outputs": [{ "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "name": "to", "type": "address" }, - { "name": "value", "type": "uint256" }, - { "name": "data", "type": "bytes" }, - { "name": "operation", "type": "uint8" }, - { "name": "safeTxGas", "type": "uint256" }, - { "name": "baseGas", "type": "uint256" }, - { "name": "gasPrice", "type": "uint256" }, - { "name": "gasToken", "type": "address" }, - { "name": "refundReceiver", "type": "address" }, - { "name": "_nonce", "type": "uint256" } - ], - "name": "encodeTransactionData", - "outputs": [{ "name": "", "type": "bytes" }], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { "name": "to", "type": "address" }, - { "name": "value", "type": "uint256" }, - { "name": "data", "type": "bytes" }, - { "name": "operation", "type": "uint8" }, - { "name": "safeTxGas", "type": "uint256" }, - { "name": "baseGas", "type": "uint256" }, - { "name": "gasPrice", "type": "uint256" }, - { "name": "gasToken", "type": "address" }, - { "name": "refundReceiver", "type": "address" }, - { "name": "_nonce", "type": "uint256" } - ], - "name": "getTransactionHash", - "outputs": [{ "name": "", "type": "bytes32" }], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.1.1/create_and_add_modules.json b/patches/package/src/assets/v1.1.1/create_and_add_modules.json deleted file mode 100644 index a011c816a7..0000000000 --- a/patches/package/src/assets/v1.1.1/create_and_add_modules.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "defaultAddress": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", - "released": true, - "contractName": "CreateAndAddModules", - "version": "1.1.1", - "networkAddresses": { - "1": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", - "4": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", - "5": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", - "42": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", - "88": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", - "100": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", - "246": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0", - "73799": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0" - }, - "abi": [ - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "proxyFactory", - "type": "address" - }, - { "internalType": "bytes", "name": "data", "type": "bytes" } - ], - "name": "createAndAddModules", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Module", - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.1.1/create_call.json b/patches/package/src/assets/v1.1.1/create_call.json deleted file mode 100644 index 8d3ce06b82..0000000000 --- a/patches/package/src/assets/v1.1.1/create_call.json +++ /dev/null @@ -1,84 +0,0 @@ -{ - "defaultAddress": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", - "released": true, - "contractName": "CreateCall", - "version": "1.1.1", - "networkAddresses": { - "1": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", - "4": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", - "5": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", - "42": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", - "88": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", - "100": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", - "246": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a", - "73799": "0x8538fcbccba7f5303d2c679fa5d7a629a8c9bf4a" - }, - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "deploymentData", - "type": "bytes" - } - ], - "name": "performCreate", - "outputs": [ - { - "internalType": "address", - "name": "newContract", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "deploymentData", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - } - ], - "name": "performCreate2", - "outputs": [ - { - "internalType": "address", - "name": "newContract", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.1.1/default_callback_handler.json b/patches/package/src/assets/v1.1.1/default_callback_handler.json deleted file mode 100644 index 99158a9e1a..0000000000 --- a/patches/package/src/assets/v1.1.1/default_callback_handler.json +++ /dev/null @@ -1,206 +0,0 @@ -{ - "defaultAddress": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", - "released": true, - "contractName": "DefaultCallbackHandler", - "version": "1.1.1", - "networkAddresses": { - "1": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", - "4": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", - "5": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", - "42": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", - "88": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", - "100": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", - "246": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44", - "73799": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44" - }, - "abi": [ - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "tokensReceived", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.1.1/gnosis_safe.json b/patches/package/src/assets/v1.1.1/gnosis_safe.json deleted file mode 100644 index 2e93912e58..0000000000 --- a/patches/package/src/assets/v1.1.1/gnosis_safe.json +++ /dev/null @@ -1,995 +0,0 @@ -{ - "defaultAddress": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", - "released": true, - "contractName": "GnosisSafe", - "version": "1.1.1", - "networkAddresses": { - "1": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", - "4": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", - "5": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", - "42": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", - "88": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", - "100": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", - "246": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F", - "73799": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F" - }, - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "approvedHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ApproveHash", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "masterCopy", - "type": "address" - } - ], - "name": "ChangedMasterCopy", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "threshold", - "type": "uint256" - } - ], - "name": "ChangedThreshold", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "contract Module", - "name": "module", - "type": "address" - } - ], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "contract Module", - "name": "module", - "type": "address" - } - ], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payment", - "type": "uint256" - } - ], - "name": "ExecutionFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "ExecutionFromModuleFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "ExecutionFromModuleSuccess", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payment", - "type": "uint256" - } - ], - "name": "ExecutionSuccess", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "name": "SignMsg", - "type": "event" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "approvedHashes", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Module", - "name": "prevModule", - "type": "address" - }, - { - "internalType": "contract Module", - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Module", - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModuleReturnData", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "returnData", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "start", - "type": "address" - }, - { - "internalType": "uint256", - "name": "pageSize", - "type": "uint256" - } - ], - "name": "getModulesPaginated", - "outputs": [ - { - "internalType": "address[]", - "name": "array", - "type": "address[]" - }, - { - "internalType": "address", - "name": "next", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "prevOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "handler", - "type": "address" - } - ], - "name": "setFallbackHandler", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "signedMessages", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "prevOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "oldOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address[]", - "name": "_owners", - "type": "address[]" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "address", - "name": "fallbackHandler", - "type": "address" - }, - { - "internalType": "address", - "name": "paymentToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "address payable", - "name": "paymentReceiver", - "type": "address" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address payable", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "bytes", - "name": "signatures", - "type": "bytes" - } - ], - "name": "execTransaction", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "requiredTxGas", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes32", - "name": "hashToApprove", - "type": "bytes32" - } - ], - "name": "approveHash", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "signMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "_signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - } - ], - "name": "getMessageHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "encodeTransactionData", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.1.1/multi_send.json b/patches/package/src/assets/v1.1.1/multi_send.json deleted file mode 100644 index 392b87e8e0..0000000000 --- a/patches/package/src/assets/v1.1.1/multi_send.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "defaultAddress": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", - "released": true, - "contractName": "MultiSend", - "version": "1.1.1", - "networkAddresses": { - "1": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", - "4": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", - "5": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", - "42": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", - "88": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", - "100": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", - "246": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD", - "73799": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD" - }, - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes", - "name": "transactions", - "type": "bytes" - } - ], - "name": "multiSend", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.1.1/proxy_factory.json b/patches/package/src/assets/v1.1.1/proxy_factory.json deleted file mode 100644 index 4622e315bf..0000000000 --- a/patches/package/src/assets/v1.1.1/proxy_factory.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "defaultAddress": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", - "released": true, - "contractName": "ProxyFactory", - "version": "1.1.1", - "networkAddresses": { - "1": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", - "4": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", - "5": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", - "42": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", - "88": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", - "100": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", - "246": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B", - "73799": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B" - }, - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "contract GnosisSafeProxy", - "name": "proxy", - "type": "address" - } - ], - "name": "ProxyCreation", - "type": "event" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "masterCopy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "createProxy", - "outputs": [ - { - "internalType": "contract GnosisSafeProxy", - "name": "proxy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proxyRuntimeCode", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "proxyCreationCode", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "pure", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_mastercopy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "initializer", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "saltNonce", - "type": "uint256" - } - ], - "name": "createProxyWithNonce", - "outputs": [ - { - "internalType": "contract GnosisSafeProxy", - "name": "proxy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_mastercopy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "initializer", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "saltNonce", - "type": "uint256" - }, - { - "internalType": "contract IProxyCreationCallback", - "name": "callback", - "type": "address" - } - ], - "name": "createProxyWithCallback", - "outputs": [ - { - "internalType": "contract GnosisSafeProxy", - "name": "proxy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_mastercopy", - "type": "address" - }, - { - "internalType": "bytes", - "name": "initializer", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "saltNonce", - "type": "uint256" - } - ], - "name": "calculateCreateProxyWithNonceAddress", - "outputs": [ - { - "internalType": "contract GnosisSafeProxy", - "name": "proxy", - "type": "address" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.2.0/gnosis_safe.json b/patches/package/src/assets/v1.2.0/gnosis_safe.json deleted file mode 100644 index eb7f940a59..0000000000 --- a/patches/package/src/assets/v1.2.0/gnosis_safe.json +++ /dev/null @@ -1,1016 +0,0 @@ -{ - "defaultAddress": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", - "released": true, - "contractName": "GnosisSafe", - "version": "1.2.0", - "networkAddresses": { - "1": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", - "4": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", - "42": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", - "5": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", - "88": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", - "100": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", - "246": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185", - "73799": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185" - }, - "abi": [ - { - "inputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "approvedHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ApproveHash", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "masterCopy", - "type": "address" - } - ], - "name": "ChangedMasterCopy", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "threshold", - "type": "uint256" - } - ], - "name": "ChangedThreshold", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "contract Module", - "name": "module", - "type": "address" - } - ], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "contract Module", - "name": "module", - "type": "address" - } - ], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payment", - "type": "uint256" - } - ], - "name": "ExecutionFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "ExecutionFromModuleFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "ExecutionFromModuleSuccess", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payment", - "type": "uint256" - } - ], - "name": "ExecutionSuccess", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "name": "SignMsg", - "type": "event" - }, - { - "payable": true, - "stateMutability": "payable", - "type": "fallback" - }, - { - "constant": true, - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "approvedHashes", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "_masterCopy", - "type": "address" - } - ], - "name": "changeMasterCopy", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Module", - "name": "prevModule", - "type": "address" - }, - { - "internalType": "contract Module", - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "contract Module", - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModuleReturnData", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "returnData", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getModules", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "start", - "type": "address" - }, - { - "internalType": "uint256", - "name": "pageSize", - "type": "uint256" - } - ], - "name": "getModulesPaginated", - "outputs": [ - { - "internalType": "address[]", - "name": "array", - "type": "address[]" - }, - { - "internalType": "address", - "name": "next", - "type": "address" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "contract Module", - "name": "module", - "type": "address" - } - ], - "name": "isModuleEnabled", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [], - "name": "nonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "prevOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "handler", - "type": "address" - } - ], - "name": "setFallbackHandler", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "signedMessages", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "prevOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "oldOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address[]", - "name": "_owners", - "type": "address[]" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "address", - "name": "fallbackHandler", - "type": "address" - }, - { - "internalType": "address", - "name": "paymentToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "address payable", - "name": "paymentReceiver", - "type": "address" - } - ], - "name": "setup", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address payable", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "bytes", - "name": "signatures", - "type": "bytes" - } - ], - "name": "execTransaction", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "payable": true, - "stateMutability": "payable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "requiredTxGas", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes32", - "name": "hashToApprove", - "type": "bytes32" - } - ], - "name": "approveHash", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "signMessage", - "outputs": [], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": false, - "inputs": [ - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "_signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "payable": false, - "stateMutability": "nonpayable", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - } - ], - "name": "getMessageHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "encodeTransactionData", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - }, - { - "constant": true, - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "payable": false, - "stateMutability": "view", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.3.0/compatibility_fallback_handler.json b/patches/package/src/assets/v1.3.0/compatibility_fallback_handler.json deleted file mode 100644 index 137169b116..0000000000 --- a/patches/package/src/assets/v1.3.0/compatibility_fallback_handler.json +++ /dev/null @@ -1,347 +0,0 @@ -{ - "defaultAddress": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "released": true, - "contractName": "CompatibilityFallbackHandler", - "version": "1.3.0", - "networkAddresses": { - "1": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "4": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "42": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "5": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "56": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "100": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "137": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "246": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "4002": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "42161": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "42220": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", - "43114": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804", - "73799": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4", - "333999": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4" - }, - "abi": [ - { - "inputs": [], - "name": "NAME", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - } - ], - "name": "getMessageHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "contract GnosisSafe", - "name": "safe", - "type": "address" - }, - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - } - ], - "name": "getMessageHashForSafe", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getModules", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "_dataHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "_signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "_signature", - "type": "bytes" - } - ], - "name": "isValidSignature", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "uint256[]", - "name": "", - "type": "uint256[]" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155BatchReceived", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC1155Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "onERC721Received", - "outputs": [ - { - "internalType": "bytes4", - "name": "", - "type": "bytes4" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "targetContract", - "type": "address" - }, - { - "internalType": "bytes", - "name": "calldataPayload", - "type": "bytes" - } - ], - "name": "simulate", - "outputs": [ - { - "internalType": "bytes", - "name": "response", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes4", - "name": "interfaceId", - "type": "bytes4" - } - ], - "name": "supportsInterface", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "uint256", - "name": "", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "name": "tokensReceived", - "outputs": [], - "stateMutability": "pure", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.3.0/create_call.json b/patches/package/src/assets/v1.3.0/create_call.json deleted file mode 100644 index 4b2a14531b..0000000000 --- a/patches/package/src/assets/v1.3.0/create_call.json +++ /dev/null @@ -1,90 +0,0 @@ -{ - "defaultAddress": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "released": true, - "contractName": "CreateCall", - "version": "1.3.0", - "networkAddresses": { - "1": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "4": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "42": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "5": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "56": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "100": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "137": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "246": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "4002": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "42161": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "42220": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", - "43114": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d", - "73799": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4", - "333999": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4" - }, - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "newContract", - "type": "address" - } - ], - "name": "ContractCreation", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "deploymentData", - "type": "bytes" - } - ], - "name": "performCreate", - "outputs": [ - { - "internalType": "address", - "name": "newContract", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "deploymentData", - "type": "bytes" - }, - { - "internalType": "bytes32", - "name": "salt", - "type": "bytes32" - } - ], - "name": "performCreate2", - "outputs": [ - { - "internalType": "address", - "name": "newContract", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.3.0/gnosis_safe.json b/patches/package/src/assets/v1.3.0/gnosis_safe.json deleted file mode 100644 index 918cf719d4..0000000000 --- a/patches/package/src/assets/v1.3.0/gnosis_safe.json +++ /dev/null @@ -1,1055 +0,0 @@ -{ - "defaultAddress": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "released": true, - "contractName": "GnosisSafe", - "version": "1.3.0", - "networkAddresses": { - "1": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "4": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "42": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "5": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "56": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "100": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "137": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "246": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "4002": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "42161": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "42220": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", - "43114": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938", - "73799": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552", - "333999": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552" - }, - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "approvedHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ApproveHash", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "handler", - "type": "address" - } - ], - "name": "ChangedFallbackHandler", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "guard", - "type": "address" - } - ], - "name": "ChangedGuard", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "threshold", - "type": "uint256" - } - ], - "name": "ChangedThreshold", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payment", - "type": "uint256" - } - ], - "name": "ExecutionFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "ExecutionFromModuleFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "ExecutionFromModuleSuccess", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payment", - "type": "uint256" - } - ], - "name": "ExecutionSuccess", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "SafeReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "initiator", - "type": "address" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "owners", - "type": "address[]" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "threshold", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "initializer", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "fallbackHandler", - "type": "address" - } - ], - "name": "SafeSetup", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "name": "SignMsg", - "type": "event" - }, - { - "stateMutability": "nonpayable", - "type": "fallback" - }, - { - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "hashToApprove", - "type": "bytes32" - } - ], - "name": "approveHash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "approvedHashes", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "dataHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signatures", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "requiredSignatures", - "type": "uint256" - } - ], - "name": "checkNSignatures", - "outputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "dataHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signatures", - "type": "bytes" - } - ], - "name": "checkSignatures", - "outputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "prevModule", - "type": "address" - }, - { - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "encodeTransactionData", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address payable", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "bytes", - "name": "signatures", - "type": "bytes" - } - ], - "name": "execTransaction", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModuleReturnData", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "returnData", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "start", - "type": "address" - }, - { - "internalType": "uint256", - "name": "pageSize", - "type": "uint256" - } - ], - "name": "getModulesPaginated", - "outputs": [ - { - "internalType": "address[]", - "name": "array", - "type": "address[]" - }, - { - "internalType": "address", - "name": "next", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "offset", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "getStorageAt", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "isModuleEnabled", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "nonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "prevOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "requiredTxGas", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "handler", - "type": "address" - } - ], - "name": "setFallbackHandler", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "guard", - "type": "address" - } - ], - "name": "setGuard", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "_owners", - "type": "address[]" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "address", - "name": "fallbackHandler", - "type": "address" - }, - { - "internalType": "address", - "name": "paymentToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "address payable", - "name": "paymentReceiver", - "type": "address" - } - ], - "name": "setup", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "signedMessages", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "targetContract", - "type": "address" - }, - { - "internalType": "bytes", - "name": "calldataPayload", - "type": "bytes" - } - ], - "name": "simulateAndRevert", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "prevOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "oldOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ] -} diff --git a/patches/package/src/assets/v1.3.0/gnosis_safe_l2.json b/patches/package/src/assets/v1.3.0/gnosis_safe_l2.json deleted file mode 100644 index 6706c6ff14..0000000000 --- a/patches/package/src/assets/v1.3.0/gnosis_safe_l2.json +++ /dev/null @@ -1,1160 +0,0 @@ -{ - "defaultAddress": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "released": true, - "contractName": "GnosisSafeL2", - "version": "1.3.0", - "networkAddresses": { - "1": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "4": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "42": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "5": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "56": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "100": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "137": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "246": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "4002": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "42161": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "42220": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", - "43114": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA", - "73799": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E", - "333999": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E" - }, - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "AddedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "approvedHash", - "type": "bytes32" - }, - { - "indexed": true, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "ApproveHash", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "handler", - "type": "address" - } - ], - "name": "ChangedFallbackHandler", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "guard", - "type": "address" - } - ], - "name": "ChangedGuard", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "uint256", - "name": "threshold", - "type": "uint256" - } - ], - "name": "ChangedThreshold", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "DisabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "EnabledModule", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payment", - "type": "uint256" - } - ], - "name": "ExecutionFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "ExecutionFromModuleFailure", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "ExecutionFromModuleSuccess", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "bytes32", - "name": "txHash", - "type": "bytes32" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "payment", - "type": "uint256" - } - ], - "name": "ExecutionSuccess", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "RemovedOwner", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "module", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "SafeModuleTransaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "indexed": false, - "internalType": "address payable", - "name": "refundReceiver", - "type": "address" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "signatures", - "type": "bytes" - }, - { - "indexed": false, - "internalType": "bytes", - "name": "additionalInfo", - "type": "bytes" - } - ], - "name": "SafeMultiSigTransaction", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "sender", - "type": "address" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "value", - "type": "uint256" - } - ], - "name": "SafeReceived", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "address", - "name": "initiator", - "type": "address" - }, - { - "indexed": false, - "internalType": "address[]", - "name": "owners", - "type": "address[]" - }, - { - "indexed": false, - "internalType": "uint256", - "name": "threshold", - "type": "uint256" - }, - { - "indexed": false, - "internalType": "address", - "name": "initializer", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "fallbackHandler", - "type": "address" - } - ], - "name": "SafeSetup", - "type": "event" - }, - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "name": "SignMsg", - "type": "event" - }, - { - "stateMutability": "nonpayable", - "type": "fallback" - }, - { - "inputs": [], - "name": "VERSION", - "outputs": [ - { - "internalType": "string", - "name": "", - "type": "string" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "addOwnerWithThreshold", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "hashToApprove", - "type": "bytes32" - } - ], - "name": "approveHash", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "", - "type": "address" - }, - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "approvedHashes", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "changeThreshold", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "dataHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signatures", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "requiredSignatures", - "type": "uint256" - } - ], - "name": "checkNSignatures", - "outputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "dataHash", - "type": "bytes32" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "bytes", - "name": "signatures", - "type": "bytes" - } - ], - "name": "checkSignatures", - "outputs": [], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "prevModule", - "type": "address" - }, - { - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "disableModule", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "domainSeparator", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "enableModule", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "encodeTransactionData", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address payable", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "bytes", - "name": "signatures", - "type": "bytes" - } - ], - "name": "execTransaction", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "payable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModule", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "execTransactionFromModuleReturnData", - "outputs": [ - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "returnData", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "getChainId", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "start", - "type": "address" - }, - { - "internalType": "uint256", - "name": "pageSize", - "type": "uint256" - } - ], - "name": "getModulesPaginated", - "outputs": [ - { - "internalType": "address[]", - "name": "array", - "type": "address[]" - }, - { - "internalType": "address", - "name": "next", - "type": "address" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getOwners", - "outputs": [ - { - "internalType": "address[]", - "name": "", - "type": "address[]" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "uint256", - "name": "offset", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "length", - "type": "uint256" - } - ], - "name": "getStorageAt", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "getThreshold", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - }, - { - "internalType": "uint256", - "name": "safeTxGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "baseGas", - "type": "uint256" - }, - { - "internalType": "uint256", - "name": "gasPrice", - "type": "uint256" - }, - { - "internalType": "address", - "name": "gasToken", - "type": "address" - }, - { - "internalType": "address", - "name": "refundReceiver", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_nonce", - "type": "uint256" - } - ], - "name": "getTransactionHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "module", - "type": "address" - } - ], - "name": "isModuleEnabled", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "owner", - "type": "address" - } - ], - "name": "isOwner", - "outputs": [ - { - "internalType": "bool", - "name": "", - "type": "bool" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [], - "name": "nonce", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "prevOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "owner", - "type": "address" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - } - ], - "name": "removeOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "requiredTxGas", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "handler", - "type": "address" - } - ], - "name": "setFallbackHandler", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "guard", - "type": "address" - } - ], - "name": "setGuard", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address[]", - "name": "_owners", - "type": "address[]" - }, - { - "internalType": "uint256", - "name": "_threshold", - "type": "uint256" - }, - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "address", - "name": "fallbackHandler", - "type": "address" - }, - { - "internalType": "address", - "name": "paymentToken", - "type": "address" - }, - { - "internalType": "uint256", - "name": "payment", - "type": "uint256" - }, - { - "internalType": "address payable", - "name": "paymentReceiver", - "type": "address" - } - ], - "name": "setup", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "name": "signedMessages", - "outputs": [ - { - "internalType": "uint256", - "name": "", - "type": "uint256" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "targetContract", - "type": "address" - }, - { - "internalType": "bytes", - "name": "calldataPayload", - "type": "bytes" - } - ], - "name": "simulateAndRevert", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "prevOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "oldOwner", - "type": "address" - }, - { - "internalType": "address", - "name": "newOwner", - "type": "address" - } - ], - "name": "swapOwner", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "stateMutability": "payable", - "type": "receive" - } - ] -} diff --git a/patches/package/src/assets/v1.3.0/multi_send.json b/patches/package/src/assets/v1.3.0/multi_send.json deleted file mode 100644 index e5ef0312d4..0000000000 --- a/patches/package/src/assets/v1.3.0/multi_send.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "defaultAddress": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "released": true, - "contractName": "MultiSend", - "version": "1.3.0", - "networkAddresses": { - "1": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "4": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "42": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "5": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "56": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "100": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "137": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "246": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "4002": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "42161": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "42220": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "43114": "0x998739BFdAAdde7C933B942a68053933098f9EDa", - "73799": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761", - "333999": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761" - }, - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "transactions", - "type": "bytes" - } - ], - "name": "multiSend", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.3.0/multi_send_call_only.json b/patches/package/src/assets/v1.3.0/multi_send_call_only.json deleted file mode 100644 index ba6efcf8d3..0000000000 --- a/patches/package/src/assets/v1.3.0/multi_send_call_only.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "defaultAddress": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "released": true, - "contractName": "MultiSendCallOnly", - "version": "1.3.0", - "networkAddresses": { - "1": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "4": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "42": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "5": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "56": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "100": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "137": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "246": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "4002": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "42161": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "42220": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", - "43114": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B", - "73799": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D", - "333999": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D" - }, - "abi": [ - { - "inputs": [ - { - "internalType": "bytes", - "name": "transactions", - "type": "bytes" - } - ], - "name": "multiSend", - "outputs": [], - "stateMutability": "payable", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.3.0/proxy_factory.json b/patches/package/src/assets/v1.3.0/proxy_factory.json deleted file mode 100644 index 678c97a8b8..0000000000 --- a/patches/package/src/assets/v1.3.0/proxy_factory.json +++ /dev/null @@ -1,185 +0,0 @@ -{ - "defaultAddress": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "released": true, - "contractName": "GnosisSafeProxyFactory", - "version": "1.3.0", - "networkAddresses": { - "1": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "4": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "42": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "5": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "56": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "100": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "137": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "246": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "4002": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "42161": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "42220": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", - "43114": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC", - "73799": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2", - "333999": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2" - }, - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": false, - "internalType": "contract GnosisSafeProxy", - "name": "proxy", - "type": "address" - }, - { - "indexed": false, - "internalType": "address", - "name": "singleton", - "type": "address" - } - ], - "name": "ProxyCreation", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_singleton", - "type": "address" - }, - { - "internalType": "bytes", - "name": "initializer", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "saltNonce", - "type": "uint256" - } - ], - "name": "calculateCreateProxyWithNonceAddress", - "outputs": [ - { - "internalType": "contract GnosisSafeProxy", - "name": "proxy", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "singleton", - "type": "address" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - } - ], - "name": "createProxy", - "outputs": [ - { - "internalType": "contract GnosisSafeProxy", - "name": "proxy", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_singleton", - "type": "address" - }, - { - "internalType": "bytes", - "name": "initializer", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "saltNonce", - "type": "uint256" - }, - { - "internalType": "contract IProxyCreationCallback", - "name": "callback", - "type": "address" - } - ], - "name": "createProxyWithCallback", - "outputs": [ - { - "internalType": "contract GnosisSafeProxy", - "name": "proxy", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "_singleton", - "type": "address" - }, - { - "internalType": "bytes", - "name": "initializer", - "type": "bytes" - }, - { - "internalType": "uint256", - "name": "saltNonce", - "type": "uint256" - } - ], - "name": "createProxyWithNonce", - "outputs": [ - { - "internalType": "contract GnosisSafeProxy", - "name": "proxy", - "type": "address" - } - ], - "stateMutability": "nonpayable", - "type": "function" - }, - { - "inputs": [], - "name": "proxyCreationCode", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "pure", - "type": "function" - }, - { - "inputs": [], - "name": "proxyRuntimeCode", - "outputs": [ - { - "internalType": "bytes", - "name": "", - "type": "bytes" - } - ], - "stateMutability": "pure", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.3.0/sign_message_lib.json b/patches/package/src/assets/v1.3.0/sign_message_lib.json deleted file mode 100644 index 246eae66ce..0000000000 --- a/patches/package/src/assets/v1.3.0/sign_message_lib.json +++ /dev/null @@ -1,69 +0,0 @@ -{ - "defaultAddress": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "contractName": "SignMessageLib", - "version": "1.3.0", - "released": true, - "networkAddresses": { - "1": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "4": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "42": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "5": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "56": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "100": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "137": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "246": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "4002": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "42161": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "42220": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", - "43114": "0x98FFBBF51bb33A056B08ddf711f289936AafF717", - "73799": "0xa25b3579a295be016de5eb5F082b54B12d45F72C", - "333999": "0xa25b3579a295be016de5eb5F082b54B12d45F72C" - }, - "abi": [ - { - "anonymous": false, - "inputs": [ - { - "indexed": true, - "internalType": "bytes32", - "name": "msgHash", - "type": "bytes32" - } - ], - "name": "SignMsg", - "type": "event" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "message", - "type": "bytes" - } - ], - "name": "getMessageHash", - "outputs": [ - { - "internalType": "bytes32", - "name": "", - "type": "bytes32" - } - ], - "stateMutability": "view", - "type": "function" - }, - { - "inputs": [ - { - "internalType": "bytes", - "name": "_data", - "type": "bytes" - } - ], - "name": "signMessage", - "outputs": [], - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/patches/package/src/assets/v1.3.0/simulate_tx_accessor.json b/patches/package/src/assets/v1.3.0/simulate_tx_accessor.json deleted file mode 100644 index 7aa6831318..0000000000 --- a/patches/package/src/assets/v1.3.0/simulate_tx_accessor.json +++ /dev/null @@ -1,73 +0,0 @@ -{ - "defaultAddress": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "released": true, - "contractName": "SimulateTxAccesor", - "version": "1.3.0", - "networkAddresses": { - "1": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "4": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "42": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "5": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "56": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "100": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "137": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "246": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "4002": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "42161": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "42220": "0x727a77a074D1E6c4530e814F89E618a3298FC044", - "43114": "0x727a77a074D1E6c4530e814F89E618a3298FC044", - "73799": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da", - "333999": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da" - }, - "abi": [ - { - "inputs": [], - "stateMutability": "nonpayable", - "type": "constructor" - }, - { - "inputs": [ - { - "internalType": "address", - "name": "to", - "type": "address" - }, - { - "internalType": "uint256", - "name": "value", - "type": "uint256" - }, - { - "internalType": "bytes", - "name": "data", - "type": "bytes" - }, - { - "internalType": "enum Enum.Operation", - "name": "operation", - "type": "uint8" - } - ], - "name": "simulate", - "outputs": [ - { - "internalType": "uint256", - "name": "estimate", - "type": "uint256" - }, - { - "internalType": "bool", - "name": "success", - "type": "bool" - }, - { - "internalType": "bytes", - "name": "returnData", - "type": "bytes" - } - ], - "stateMutability": "nonpayable", - "type": "function" - } - ] -} diff --git a/patches/package/src/factories.ts b/patches/package/src/factories.ts deleted file mode 100644 index a2845668cd..0000000000 --- a/patches/package/src/factories.ts +++ /dev/null @@ -1,15 +0,0 @@ -import ProxyFactory111 from './assets/v1.1.1/proxy_factory.json' -import ProxyFactory130 from './assets/v1.3.0/proxy_factory.json' -import { DeploymentFilter, SingletonDeployment } from './types' -import { applyFilterDefaults, findDeployment } from './utils' - - - -// This is a sorted array (newest to oldest) -const factoryDeployments: SingletonDeployment[] = [ - ProxyFactory130, ProxyFactory111 -] - -export const getProxyFactoryDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { - return findDeployment(applyFilterDefaults(filter), factoryDeployments) -} \ No newline at end of file diff --git a/patches/package/src/handler.ts b/patches/package/src/handler.ts deleted file mode 100644 index 3755544648..0000000000 --- a/patches/package/src/handler.ts +++ /dev/null @@ -1,31 +0,0 @@ -import DefaultCallbackHandler130 from './assets/v1.1.1/default_callback_handler.json' -import CompatibilityFallbackHandler from './assets/v1.3.0/compatibility_fallback_handler.json' -import { DeploymentFilter, SingletonDeployment } from './types' -import { applyFilterDefaults, findDeployment } from './utils' - -// This is a sorted array (by preference) -const defaultCallbackHandlerDeployments: SingletonDeployment[] = [ - DefaultCallbackHandler130 -] - -export const getDefaultCallbackHandlerDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { - return findDeployment(applyFilterDefaults(filter), defaultCallbackHandlerDeployments) -} - -// This is a sorted array (by preference) -const compatFallbackHandlerDeployments: SingletonDeployment[] = [ - CompatibilityFallbackHandler -] - -export const getCompatibilityFallbackHandlerDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { - return findDeployment(applyFilterDefaults(filter), compatFallbackHandlerDeployments) -} - -// This is a sorted array (by preference) -const fallbackHandlerDeployments: SingletonDeployment[] = [ - CompatibilityFallbackHandler, DefaultCallbackHandler130 -] - -export const getFallbackHandlerDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { - return findDeployment(applyFilterDefaults(filter), fallbackHandlerDeployments) -} \ No newline at end of file diff --git a/patches/package/src/index.ts b/patches/package/src/index.ts deleted file mode 100644 index a449e8fa6b..0000000000 --- a/patches/package/src/index.ts +++ /dev/null @@ -1,5 +0,0 @@ -export * from './types' -export * from './safes' -export * from './factories' -export * from './libs' -export * from './handler' \ No newline at end of file diff --git a/patches/package/src/libs.ts b/patches/package/src/libs.ts deleted file mode 100644 index 12c9dfb99e..0000000000 --- a/patches/package/src/libs.ts +++ /dev/null @@ -1,42 +0,0 @@ -import CreateCall130 from './assets/v1.3.0/create_call.json' -import MultiSend111 from './assets/v1.1.1/multi_send.json' -import MultiSend130 from './assets/v1.3.0/multi_send.json' -import MultiSendCallOnly130 from './assets/v1.3.0/multi_send_call_only.json' -import SignMessageLib130 from './assets/v1.3.0/sign_message_lib.json' -import { DeploymentFilter, SingletonDeployment } from './types' -import { applyFilterDefaults, findDeployment } from './utils' - -// This is a sorted array (by preference, currently we use 111 in most cases) -const multiSendDeployments: SingletonDeployment[] = [ - MultiSend130, MultiSend111 -] - -export const getMultiSendDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { - return findDeployment(applyFilterDefaults(filter), multiSendDeployments) -} - -// This is a sorted array (by preference) -const multiSendCallOnlyDeployments: SingletonDeployment[] = [ - MultiSendCallOnly130 -] - -export const getMultiSendCallOnlyDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { - return findDeployment(applyFilterDefaults(filter), multiSendCallOnlyDeployments) -} - -// This is a sorted array (by preference) -const createCallDeployments: SingletonDeployment[] = [ - CreateCall130 -] - -export const getCreateCallDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { - return findDeployment(applyFilterDefaults(filter), createCallDeployments) -} - -const signMessageLibDeployments: SingletonDeployment[] = [ - SignMessageLib130 -] - -export const getSignMessageLibDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { - return findDeployment(applyFilterDefaults(filter), signMessageLibDeployments) -} \ No newline at end of file diff --git a/patches/package/src/safes.ts b/patches/package/src/safes.ts deleted file mode 100644 index 44c1ecfb1a..0000000000 --- a/patches/package/src/safes.ts +++ /dev/null @@ -1,25 +0,0 @@ -import GnosisSafeL2130 from './assets/v1.3.0/gnosis_safe_l2.json' -import GnosisSafe130 from './assets/v1.3.0/gnosis_safe.json' -import GnosisSafe120 from './assets/v1.2.0/gnosis_safe.json' -import GnosisSafe111 from './assets/v1.1.1/gnosis_safe.json' -import GnosisSafe100 from './assets/v1.0.0/gnosis_safe.json' -import { DeploymentFilter, SingletonDeployment } from './types' -import { applyFilterDefaults, findDeployment } from './utils' - -// This is a sorted array (newest to oldest) -const safeDeployments: SingletonDeployment[] = [ - GnosisSafe130, GnosisSafe120, GnosisSafe111, GnosisSafe100 -] - -export const getSafeSingletonDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { - return findDeployment(applyFilterDefaults(filter), safeDeployments) -} - -// This is a sorted array (newest to oldest) -const safeL2Deployments: SingletonDeployment[] = [ - GnosisSafeL2130 -] - -export const getSafeL2SingletonDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { - return findDeployment(applyFilterDefaults(filter), safeL2Deployments) -} \ No newline at end of file diff --git a/patches/package/src/types.ts b/patches/package/src/types.ts deleted file mode 100644 index 0734587f90..0000000000 --- a/patches/package/src/types.ts +++ /dev/null @@ -1,14 +0,0 @@ -export interface SingletonDeployment { - defaultAddress: string, - version: string, - abi: any[], - networkAddresses: Record, - contractName: string, - released: boolean -} - -export interface DeploymentFilter { - version?: string, - released?: boolean, - network?: string -} \ No newline at end of file diff --git a/patches/package/src/utils.ts b/patches/package/src/utils.ts deleted file mode 100644 index 92ea007032..0000000000 --- a/patches/package/src/utils.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { DeploymentFilter, SingletonDeployment } from "./types" - -export const findDeployment = (criteria: DeploymentFilter, deployments: SingletonDeployment[]): SingletonDeployment | undefined => - deployments.find((deployment) => { - if (criteria.version && deployment.version !== criteria.version) return false - if (criteria.released && deployment.released != criteria.released) return false - if (criteria.network && !deployment.networkAddresses[criteria.network]) return false - return true - }) - -export const applyFilterDefaults = (filter?: DeploymentFilter): DeploymentFilter => { - if (!filter) return { released: true } - return filter -} \ No newline at end of file From 9e96ae6dc46f316f845f94b7edfd555d216cca1f Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Wed, 8 Dec 2021 13:30:06 +0100 Subject: [PATCH 23/25] revert deleted files --- .github/workflows/cla.yml | 26 +++++ .github/workflows/deploy.yml | 190 +++++++++++++++++++++++++++++++++++ 2 files changed, 216 insertions(+) create mode 100644 .github/workflows/cla.yml create mode 100644 .github/workflows/deploy.yml diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml new file mode 100644 index 0000000000..fa2f29e07f --- /dev/null +++ b/.github/workflows/cla.yml @@ -0,0 +1,26 @@ +name: 'CLA Assistant' +on: + issue_comment: + types: [created] + pull_request_target: + types: [opened, closed, synchronize] + +jobs: + CLAssistant: + runs-on: ubuntu-latest + steps: + - name: 'CLA Assistant' + if: (github.event.comment.body == 'recheckcla' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target' + # Alpha Release + uses: gnosis/github-action@master + # GitHub token, automatically provided to the action + # (No need to define this secret in the repo settings) + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + path-to-signatures: 'signatures/version1/cla.json' + path-to-cla-document: 'https://github.com/gnosis/safe-react/blob/main/GNOSISCLA.md' + branch: 'cla-signatures' + allowlist: lukasschor,mikheevm,rmeissner,germartinez,davidalbela,Uxio0,dasanra,francovenica,tschubotz,luarx,giacomolicari,gnosis-info,bot*,katspaugh,DaniSomoza,iamacook,yagopv + empty-commit-flag: false + blockchain-storage-flag: false diff --git a/.github/workflows/deploy.yml b/.github/workflows/deploy.yml new file mode 100644 index 0000000000..e6560e28d6 --- /dev/null +++ b/.github/workflows/deploy.yml @@ -0,0 +1,190 @@ +name: Deploy + +# Run on pushes to main or PRs +on: + # Pull request hook without any config. Launches for every pull request + pull_request: + # Launches for pushes to main or dev + push: + branches: + - main + - dev + # Launches build when release is published + release: + types: [published] + +env: + REPO_NAME_ALPHANUMERIC: safereact + STAGING_BUCKET_NAME: ${{ secrets.STAGING_MAINNET_BUCKET_NAME }} + REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_MAINNET }} + REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_MAINNET }} + REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} + REACT_APP_ETHERSCAN_API_KEY: ${{ secrets.REACT_APP_ETHERSCAN_API_KEY }} + REACT_APP_ETHGASSTATION_API_KEY: ${{ secrets.REACT_APP_ETHGASSTATION_API_KEY }} + +jobs: + debug: + name: Debug + runs-on: ubuntu-latest + steps: + - name: Dump env + run: env | sort + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + deploy: + name: Deployment + runs-on: ubuntu-latest + + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@0.8.0 + with: + access_token: ${{ github.token }} + - name: Remove broken apt repos [Ubuntu] + if: ${{ matrix.os }} == 'ubuntu-latest' + run: | + for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done + - uses: actions/checkout@v2 + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: 14 + + - uses: actions/cache@v2 + with: + path: '**/node_modules' + key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} + + - run: | + sudo apt-get update + sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev + pip install awscli --upgrade --user + # Due to some dependencies yarn may randomly throw an error about invalid cache + # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue + # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) + mkdir .yarncache + yarn install --cache-folder ./.yarncache --frozen-lockfile + rm -rf .yarncache + yarn cache clean + + # Set dev flag (for PR deployments) + - name: Set PR flag + run: echo "REACT_APP_ENV=dev" >> $GITHUB_ENV + if: github.ref != 'refs/heads/main' + + # Set production flag on staging + - name: Set production flag for staging + run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV + if: github.ref == 'refs/heads/main' + + # Set production flag on prod + - name: Set production flag for release PR or tagged build + run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV + if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' + + - name: Build app + run: yarn build + env: + REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} + REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} + REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN: ${{ secrets.REACT_APP_SAFE_APPS_RPC_INFURA_TOKEN }} + REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} + REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} + REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_DEFAULT_REGION }} + + # Script to deploy Pull Requests + - run: bash ./scripts/github/deploy_pull_request.sh + if: success() && github.event.number + env: + AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + PR_NUMBER: ${{ github.event.number }} + REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} + + - name: 'PRaul: Comment PR with app URLs' + uses: mshick/add-pr-comment@v1 + with: + message: | + * [Safe Rinkeby](${{ env.REVIEW_FEATURE_URL }}/rinkeby) + * [Safe Mainnet](${{ env.REVIEW_FEATURE_URL }}/mainnet) + * [Safe Polygon](${{ env.REVIEW_FEATURE_URL }}/polygon) + * [Safe BSC](${{ env.REVIEW_FEATURE_URL }}/bsc) + * [Safe Arbitrum](${{ env.REVIEW_FEATURE_URL }}/arbitrum) + * Unified app on *dev*: https://safe-team.dev.gnosisdev.com/app/ + repo-token: ${{ secrets.GITHUB_TOKEN }} + repo-token-user-login: 'github-actions[bot]' + if: success() && github.event.number + env: + REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--safereact.review-safe.gnosisdev.com/app + + # Script to deploy to the dev environment + - name: 'Deploy to S3: Dev' + if: github.ref == 'refs/heads/dev' + run: aws s3 sync build s3://${{ secrets.AWS_DEV_BUCKET_NAME }}/app --delete + + # Script to deploy to staging environment + - name: 'Deploy to S3: Staging' + if: github.ref == 'refs/heads/main' + run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete + + # Script to upload release files + - name: 'Upload release build files for production' + if: startsWith(github.ref, 'refs/tags/v') + run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete + # - run: bash ./scripts/github/deploy_release.sh + # if: startsWith(github.ref, 'refs/tags/v') + # env: + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # PR_NUMBER: ${{ github.event.number }} + # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} + # VERSION_TAG: ${{ github.event.release.tag_name }} + + # Script to prepare production deployments + - run: bash ./scripts/github/prepare_production_deployment.sh + if: success() && startsWith(github.ref, 'refs/tags/v') + env: + PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} + PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} + VERSION_TAG: ${{ github.event.release.tag_name }} + + # Upload Sentry source maps when sending to staging or production + - run: yarn sentry-upload-sourcemaps + if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) + env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_ORG: ${{ secrets.SENTRY_ORG }} + SENTRY_PROJECT: ${{ secrets.SENTRY_PROJECT }} + e2e: + name: Trigger e2e tests + if: success() && github.ref == 'refs/heads/dev' + runs-on: ubuntu-latest + steps: + - name: Repository Dispatch + uses: peter-evans/repository-dispatch@v1 + with: + token: ${{ secrets.E2E_RUN_HOOK_ACCESS_TOKEN }} + repository: gnosis/safe-react-e2e-tests + event-type: run-e2e-from-safe-react + e2ePR: + name: Trigger e2e tests on pr + if: github.event.number + needs: deploy + runs-on: ubuntu-latest + steps: + - name: Repository Dispatch + uses: peter-evans/repository-dispatch@v1 + with: + token: ${{ secrets.E2E_RUN_HOOK_ACCESS_TOKEN }} + repository: gnosis/safe-react-e2e-tests + event-type: run-e2e-tests-from-safe-react-on-pr + client-payload: '{"pr_number": "${{ github.event.number }}"}' From 39404ed8c418542b0fff408cb2afa03aeddb1524 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Wed, 8 Dec 2021 13:31:26 +0100 Subject: [PATCH 24/25] deploy arbitrum --- .github/workflows/deploy-arbitrum.yml | 145 ++++++++++++++++++++++++++ 1 file changed, 145 insertions(+) create mode 100644 .github/workflows/deploy-arbitrum.yml diff --git a/.github/workflows/deploy-arbitrum.yml b/.github/workflows/deploy-arbitrum.yml new file mode 100644 index 0000000000..ee593ddb87 --- /dev/null +++ b/.github/workflows/deploy-arbitrum.yml @@ -0,0 +1,145 @@ + name: Deploy to Arbitrum network + +# Run on pushes to main or PRs to main +on: + push: + branches: + - main + pull_request: + # Launches build when release is published + release: + types: [published] + +env: + REPO_NAME_ALPHANUMERIC: safereact + REACT_APP_NETWORK: 'arbitrum' + REACT_APP_LATEST_SAFE_VERSION: '1.3.0' + STAGING_BUCKET_NAME: ${{ secrets.STAGING_ARBITRUM_BUCKET_NAME }} + REACT_APP_SENTRY_DSN: ${{ secrets.SENTRY_DSN_ARBITRUM }} + REACT_APP_GOOGLE_ANALYTICS: ${{ secrets.REACT_APP_GOOGLE_ANALYTICS_ID_ARBITRUM }} + REACT_APP_GNOSIS_APPS_URL: ${{ secrets.REACT_APP_GNOSIS_APPS_URL_PROD }} + +jobs: + debug: + name: Debug + runs-on: ubuntu-latest + steps: + - name: Dump env + run: env | sort + - name: Dump GitHub context + env: + GITHUB_CONTEXT: ${{ toJson(github) }} + run: echo "$GITHUB_CONTEXT" + deploy: + name: Deployment + runs-on: ubuntu-latest + + steps: + - name: Cancel Previous Runs + uses: styfle/cancel-workflow-action@0.8.0 + with: + access_token: ${{ github.token }} + - name: Remove broken apt repos [Ubuntu] + if: ${{ matrix.os }} == 'ubuntu-latest' + run: | + for apt_file in `grep -lr microsoft /etc/apt/sources.list.d/`; do sudo rm $apt_file; done + - uses: actions/checkout@v2 + + - name: Setup Node.js + uses: actions/setup-node@v2 + with: + node-version: 14 + + - uses: actions/cache@v2 + with: + path: '**/node_modules' + key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }} + + - run: | + sudo apt-get update + sudo apt-get -y install python3-pip python3-dev libusb-1.0-0-dev libudev-dev + pip install awscli --upgrade --user + # Due to some dependencies yarn may randomly throw an error about invalid cache + # This approach is taken from https://github.com/yarnpkg/yarn/issues/7212#issuecomment-506155894 to fix the issue + # Another approach is to install with flag --network-concurrency 1, but this will make the installation pretty slow (default value is 8) + mkdir .yarncache + yarn install --cache-folder ./.yarncache --frozen-lockfile + rm -rf .yarncache + yarn cache clean + # Set production flag + - name: Set production flag for release PR or tagged build + run: echo "REACT_APP_ENV=production" >> $GITHUB_ENV + if: startsWith(github.ref, 'refs/tags/v') || github.base_ref == 'main' + + - name: Build ${{ env.REACT_APP_NETWORK }} app + run: yarn build + env: + PUBLIC_URL: './' + REACT_APP_FORTMATIC_KEY: ${{ secrets.REACT_APP_FORTMATIC_KEY }} + REACT_APP_INFURA_TOKEN: ${{ secrets.REACT_APP_INFURA_TOKEN }} + REACT_APP_PORTIS_ID: ${{ secrets.REACT_APP_PORTIS_ID }} + REACT_APP_INTERCOM_ID: ${{ secrets.REACT_APP_INTERCOM_ID }} + REACT_APP_IPFS_GATEWAY: ${{ secrets.REACT_APP_IPFS_GATEWAY }} + + - name: Configure AWS credentials + uses: aws-actions/configure-aws-credentials@v1 + with: + aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }} + aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + aws-region: ${{ secrets.AWS_DEFAULT_REGION }} + + # Script to deploy Pull Requests + - run: bash ./scripts/github/deploy_pull_request.sh + if: success() && github.event.number + env: + PR_NUMBER: ${{ github.event.number }} + REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} + REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} + + - name: 'PRaul: Comment PR with app URLs' + uses: mshick/add-pr-comment@v1 + with: + message: | + * [Safe Multisig app ${{ env.REACT_APP_NETWORK }}](${{ env.REVIEW_FEATURE_URL }}/${{ env.REACT_APP_NETWORK }}/app/) + repo-token: ${{ secrets.GITHUB_TOKEN }} + repo-token-user-login: 'github-actions[bot]' + if: success() && github.event.number + env: + REVIEW_FEATURE_URL: https://pr${{ github.event.number }}--${{ env.REPO_NAME_ALPHANUMERIC }}.review.gnosisdev.com + + # Script to deploy to the dev environment + # Arbitrum build is never created on the dev branch + + # Script to deploy to staging environment + - name: 'Deploy to S3: Staging' + if: github.ref == 'refs/heads/main' + run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/current/app --delete + + # Script to upload release files + - name: 'Upload release build files for production' + if: startsWith(github.ref, 'refs/tags/v') + run: aws s3 sync build s3://${{ env.STAGING_BUCKET_NAME }}/releases/${{ github.event.release.tag_name }} --delete + # - run: bash ./scripts/github/deploy_release.sh + # if: startsWith(github.ref, 'refs/tags/v') + # env: + # AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY }} + # AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID }} + # PR_NUMBER: ${{ github.event.number }} + # REVIEW_BUCKET_NAME: ${{ secrets.AWS_REVIEW_BUCKET_NAME }} + # REACT_APP_NETWORK: ${{ env.REACT_APP_NETWORK }} + # VERSION_TAG: ${{ github.event.release.tag_name }} + # Script to prepare production deployments + - run: bash ./scripts/github/prepare_production_deployment.sh + if: success() && startsWith(github.ref, 'refs/tags/v') + env: + PROD_DEPLOYMENT_HOOK_TOKEN: ${{ secrets.PROD_DEPLOYMENT_HOOK_TOKEN }} + PROD_DEPLOYMENT_HOOK_URL: ${{ secrets.PROD_DEPLOYMENT_HOOK_URL }} + VERSION_TAG: ${{ github.event.release.tag_name }} + + # Upload Sentry source maps when sending to staging or production + - run: yarn sentry-upload-sourcemaps + if: success() && (github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')) + env: + SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }} + SENTRY_ORG: ${{ secrets.SENTRY_ORG}} + SENTRY_PROJECT: gnosis-safe-multisig-${{ env.REACT_APP_NETWORK }} From 63ec8c071bd531a7252a531a4f0f261210c9f148 Mon Sep 17 00:00:00 2001 From: Ino Murko <2582555+InoMurko@users.noreply.github.com> Date: Wed, 8 Dec 2021 13:32:09 +0100 Subject: [PATCH 25/25] deploy arbitrum --- .github/workflows/deploy-arbitrum.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/deploy-arbitrum.yml b/.github/workflows/deploy-arbitrum.yml index ee593ddb87..3876e808eb 100644 --- a/.github/workflows/deploy-arbitrum.yml +++ b/.github/workflows/deploy-arbitrum.yml @@ -1,4 +1,4 @@ - name: Deploy to Arbitrum network +name: Deploy to Arbitrum network # Run on pushes to main or PRs to main on: