@safe-global/safe-deployments 1.37.1 → 1.37.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/README.md +102 -11
  2. package/dist/accessors.d.ts +14 -1
  3. package/dist/accessors.js +19 -9
  4. package/dist/assets/v1.0.0/gnosis_safe.json +5 -3
  5. package/dist/assets/v1.0.0/proxy_factory.json +5 -3
  6. package/dist/assets/v1.1.1/default_callback_handler.json +5 -3
  7. package/dist/assets/v1.1.1/gnosis_safe.json +5 -3
  8. package/dist/assets/v1.1.1/multi_send.json +5 -3
  9. package/dist/assets/v1.1.1/proxy_factory.json +5 -3
  10. package/dist/assets/v1.2.0/gnosis_safe.json +5 -3
  11. package/dist/assets/v1.3.0/compatibility_fallback_handler.json +26 -5
  12. package/dist/assets/v1.3.0/create_call.json +26 -5
  13. package/dist/assets/v1.3.0/gnosis_safe.json +26 -5
  14. package/dist/assets/v1.3.0/gnosis_safe_l2.json +26 -5
  15. package/dist/assets/v1.3.0/multi_send.json +26 -5
  16. package/dist/assets/v1.3.0/multi_send_call_only.json +26 -5
  17. package/dist/assets/v1.3.0/proxy_factory.json +26 -5
  18. package/dist/assets/v1.3.0/sign_message_lib.json +26 -5
  19. package/dist/assets/v1.3.0/simulate_tx_accessor.json +26 -5
  20. package/dist/assets/v1.4.1/compatibility_fallback_handler.json +12 -3
  21. package/dist/assets/v1.4.1/create_call.json +12 -3
  22. package/dist/assets/v1.4.1/multi_send.json +12 -3
  23. package/dist/assets/v1.4.1/multi_send_call_only.json +12 -3
  24. package/dist/assets/v1.4.1/safe.json +12 -3
  25. package/dist/assets/v1.4.1/safe_l2.json +12 -3
  26. package/dist/assets/v1.4.1/safe_proxy_factory.json +12 -3
  27. package/dist/assets/v1.4.1/sign_message_lib.json +12 -3
  28. package/dist/assets/v1.4.1/simulate_tx_accessor.json +12 -3
  29. package/dist/deployments.d.ts +12 -0
  30. package/dist/deployments.js +71 -0
  31. package/dist/factories.d.ts +12 -1
  32. package/dist/factories.js +17 -16
  33. package/dist/handler.d.ts +29 -1
  34. package/dist/handler.js +55 -25
  35. package/dist/libs.d.ts +45 -1
  36. package/dist/libs.js +62 -24
  37. package/dist/safes.d.ts +23 -3
  38. package/dist/safes.js +32 -23
  39. package/dist/types.d.ts +21 -12
  40. package/dist/types.js +0 -11
  41. package/dist/utils.d.ts +5 -2
  42. package/dist/utils.js +30 -11
  43. package/package.json +6 -5
  44. package/src/__tests__/assets/v1/v1.0.0/gnosis_safe.json +5 -3
  45. package/src/__tests__/assets/v1/v1.0.0/proxy_factory.json +5 -3
  46. package/src/__tests__/assets/v1/v1.1.1/create_and_add_modules.json +5 -3
  47. package/src/__tests__/assets/v1/v1.1.1/create_call.json +5 -3
  48. package/src/__tests__/assets/v1/v1.1.1/default_callback_handler.json +5 -3
  49. package/src/__tests__/assets/v1/v1.1.1/gnosis_safe.json +5 -3
  50. package/src/__tests__/assets/v1/v1.1.1/multi_send.json +5 -3
  51. package/src/__tests__/assets/v1/v1.1.1/proxy_factory.json +5 -3
  52. package/src/__tests__/assets/v1/v1.2.0/gnosis_safe.json +5 -3
  53. package/src/__tests__/assets/v1/v1.3.0/compatibility_fallback_handler.json +13 -5
  54. package/src/__tests__/assets/v1/v1.3.0/create_call.json +13 -5
  55. package/src/__tests__/assets/v1/v1.3.0/gnosis_safe.json +13 -5
  56. package/src/__tests__/assets/v1/v1.3.0/gnosis_safe_l2.json +13 -5
  57. package/src/__tests__/assets/v1/v1.3.0/multi_send.json +13 -5
  58. package/src/__tests__/assets/v1/v1.3.0/multi_send_call_only.json +13 -5
  59. package/src/__tests__/assets/v1/v1.3.0/proxy_factory.json +13 -5
  60. package/src/__tests__/assets/v1/v1.3.0/sign_message_lib.json +13 -5
  61. package/src/__tests__/assets/v1/v1.3.0/simulate_tx_accessor.json +13 -5
  62. package/src/__tests__/assets/v1/v1.4.1/compatibility_fallback_handler.json +5 -3
  63. package/src/__tests__/assets/v1/v1.4.1/create_call.json +5 -3
  64. package/src/__tests__/assets/v1/v1.4.1/multi_send.json +5 -3
  65. package/src/__tests__/assets/v1/v1.4.1/multi_send_call_only.json +5 -3
  66. package/src/__tests__/assets/v1/v1.4.1/safe.json +5 -3
  67. package/src/__tests__/assets/v1/v1.4.1/safe_l2.json +5 -3
  68. package/src/__tests__/assets/v1/v1.4.1/safe_proxy_factory.json +5 -3
  69. package/src/__tests__/assets/v1/v1.4.1/sign_message_lib.json +5 -3
  70. package/src/__tests__/assets/v1/v1.4.1/simulate_tx_accessor.json +5 -3
  71. package/src/__tests__/assets.test.ts +7 -7
  72. package/src/__tests__/utils.test.ts +386 -236
  73. package/src/accessors.ts +19 -8
  74. package/src/assets/v1.0.0/gnosis_safe.json +5 -3
  75. package/src/assets/v1.0.0/proxy_factory.json +5 -3
  76. package/src/assets/v1.1.1/create_and_add_modules.json +5 -3
  77. package/src/assets/v1.1.1/create_call.json +5 -3
  78. package/src/assets/v1.1.1/default_callback_handler.json +5 -3
  79. package/src/assets/v1.1.1/gnosis_safe.json +5 -3
  80. package/src/assets/v1.1.1/multi_send.json +5 -3
  81. package/src/assets/v1.1.1/proxy_factory.json +5 -3
  82. package/src/assets/v1.2.0/gnosis_safe.json +5 -3
  83. package/src/assets/v1.3.0/compatibility_fallback_handler.json +26 -5
  84. package/src/assets/v1.3.0/create_call.json +26 -5
  85. package/src/assets/v1.3.0/gnosis_safe.json +26 -5
  86. package/src/assets/v1.3.0/gnosis_safe_l2.json +26 -5
  87. package/src/assets/v1.3.0/multi_send.json +26 -5
  88. package/src/assets/v1.3.0/multi_send_call_only.json +26 -5
  89. package/src/assets/v1.3.0/proxy_factory.json +26 -5
  90. package/src/assets/v1.3.0/sign_message_lib.json +26 -5
  91. package/src/assets/v1.3.0/simulate_tx_accessor.json +26 -5
  92. package/src/assets/v1.4.1/compatibility_fallback_handler.json +12 -3
  93. package/src/assets/v1.4.1/create_call.json +12 -3
  94. package/src/assets/v1.4.1/multi_send.json +12 -3
  95. package/src/assets/v1.4.1/multi_send_call_only.json +12 -3
  96. package/src/assets/v1.4.1/safe.json +12 -3
  97. package/src/assets/v1.4.1/safe_l2.json +12 -3
  98. package/src/assets/v1.4.1/safe_proxy_factory.json +12 -3
  99. package/src/assets/v1.4.1/sign_message_lib.json +12 -3
  100. package/src/assets/v1.4.1/simulate_tx_accessor.json +12 -3
  101. package/src/deployments.ts +90 -0
  102. package/src/factories.ts +17 -15
  103. package/src/handler.ts +56 -23
  104. package/src/libs.ts +64 -22
  105. package/src/safes.ts +31 -21
  106. package/src/types.ts +27 -25
  107. package/src/utils.ts +61 -8
package/dist/types.d.ts CHANGED
@@ -1,15 +1,20 @@
1
- declare enum AddressType {
2
- CANONICAL = "canonical",
3
- EIP155 = "eip155",
4
- ZKSYNC = "zksync"
1
+ export type AddressType = 'canonical' | 'eip155' | 'zksync';
2
+ export declare const enum DeploymentFormats {
3
+ SINGLETON = "singleton",
4
+ MULTIPLE = "multiple"
5
5
  }
6
+ type AtLeastOne<T, U = {
7
+ [K in keyof T]: Pick<T, K>;
8
+ }> = Partial<T> & U[keyof U];
6
9
  export interface SingletonDeploymentJSON {
7
10
  released: boolean;
8
11
  contractName: string;
9
12
  version: string;
10
- codeHash: string;
11
- networkAddresses: Record<string, string | string[]>;
12
- addresses: Record<string, string>;
13
+ deployments: AtLeastOne<Record<AddressType, {
14
+ address: string;
15
+ codeHash: string;
16
+ }>>;
17
+ networkAddresses: Record<string, AddressType | AddressType[]>;
13
18
  abi: any[];
14
19
  }
15
20
  export interface SingletonDeployment {
@@ -17,8 +22,10 @@ export interface SingletonDeployment {
17
22
  released: boolean;
18
23
  contractName: string;
19
24
  version: string;
20
- codeHash: string;
21
- addresses: Record<string, string>;
25
+ deployments: AtLeastOne<Record<AddressType, {
26
+ address: string;
27
+ codeHash: string;
28
+ }>>;
22
29
  networkAddresses: Record<string, string>;
23
30
  abi: any[];
24
31
  }
@@ -26,10 +33,12 @@ export interface SingletonDeploymentV2 {
26
33
  released: boolean;
27
34
  contractName: string;
28
35
  version: string;
29
- codeHash: string;
36
+ deployments: AtLeastOne<Record<AddressType, {
37
+ address: string;
38
+ codeHash: string;
39
+ }>>;
30
40
  abi: any[];
31
- networkAddresses: Record<string, AddressType | AddressType[]>;
32
- addresses: Partial<Record<AddressType, string>>;
41
+ networkAddresses: Record<string, string | string[]>;
33
42
  }
34
43
  export interface DeploymentFilter {
35
44
  version?: string;
package/dist/types.js CHANGED
@@ -1,13 +1,2 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- var AddressType;
4
- (function (AddressType) {
5
- // The original address the contract was deployed on.
6
- // Starting with 1.4.1, the contracts are deployed with an EIP155-compatible transaction.
7
- AddressType["CANONICAL"] = "canonical";
8
- // An address that was deployed with a transaction compatible with the EIP155 standard.
9
- // The type is only used for 1.3.0 deployments.
10
- AddressType["EIP155"] = "eip155";
11
- // An address that is deployed to the ZkSync VM networks.
12
- AddressType["ZKSYNC"] = "zksync";
13
- })(AddressType || (AddressType = {}));
package/dist/utils.d.ts CHANGED
@@ -1,9 +1,12 @@
1
- import { DeploymentFilter, SingletonDeployment, SingletonDeploymentJSON } from './types';
1
+ import { DeploymentFilter, SingletonDeployment, SingletonDeploymentJSON, DeploymentFormats, SingletonDeploymentV2 } from './types';
2
2
  /**
3
3
  * Finds a deployment that matches the given criteria.
4
+ * This function is implemented as a regular function to allow for overloading: https://github.com/microsoft/TypeScript/issues/33482
4
5
  *
5
6
  * @param {DeploymentFilter} [criteria=DEFAULT_FILTER] - The filter criteria to match deployments.
6
7
  * @param {SingletonDeploymentJSON[]} deployments - The list of deployment JSON objects to search.
7
8
  * @returns {SingletonDeployment | undefined} - The found deployment object or undefined if no match is found.
8
9
  */
9
- export declare const findDeployment: (criteria: DeploymentFilter | undefined, deployments: SingletonDeploymentJSON[]) => SingletonDeployment | undefined;
10
+ declare function findDeployment(criteria: DeploymentFilter | undefined, deployments: SingletonDeploymentJSON[], format?: DeploymentFormats.SINGLETON): SingletonDeployment | undefined;
11
+ declare function findDeployment(criteria: DeploymentFilter | undefined, deployments: SingletonDeploymentJSON[], format: DeploymentFormats.MULTIPLE): SingletonDeploymentV2 | undefined;
12
+ export { findDeployment };
package/dist/utils.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.findDeployment = void 0;
6
+ exports.findDeployment = findDeployment;
7
7
  const satisfies_1 = __importDefault(require("semver/functions/satisfies"));
8
8
  const DEFAULT_FILTER = { released: true };
9
9
  // The older JSON format had a `defaultAddress` field, which became obsolete due to EIP-155 enforcement and non-EVM compatible chains.
@@ -20,21 +20,34 @@ const mapJsonToDeploymentsFormatV1 = (deployment) => {
20
20
  const defaultAddressType = Array.isArray(deployment.networkAddresses[DEFAULT_NETWORK_CHAIN_ID])
21
21
  ? deployment.networkAddresses[DEFAULT_NETWORK_CHAIN_ID][0]
22
22
  : deployment.networkAddresses[DEFAULT_NETWORK_CHAIN_ID];
23
- const defaultAddress = deployment.addresses[defaultAddressType];
23
+ // The usage of non-null assertion below is safe, because we validate that the asset files are properly formed in tests
24
+ const defaultAddress = deployment.deployments[defaultAddressType].address;
24
25
  const networkAddresses = Object.fromEntries(Object.entries(deployment.networkAddresses).map(([chainId, addressTypes]) => [
25
26
  chainId,
26
- Array.isArray(addressTypes) ? deployment.addresses[addressTypes[0]] : deployment.addresses[addressTypes],
27
+ Array.isArray(addressTypes)
28
+ ? deployment.deployments[addressTypes[0]].address
29
+ : deployment.deployments[addressTypes].address,
27
30
  ]));
28
31
  return Object.assign(Object.assign({}, deployment), { defaultAddress, networkAddresses });
29
32
  };
30
33
  /**
31
- * Finds a deployment that matches the given criteria.
34
+ * Maps a SingletonDeploymentJSON object to a SingletonDeploymentV2 object.
35
+ *
36
+ * This function transforms the `networkAddresses` field of the deployment JSON object.
37
+ * It converts each entry in `networkAddresses` to an array of addresses, using the `addresses` field
38
+ * to resolve each address type.
32
39
  *
33
- * @param {DeploymentFilter} [criteria=DEFAULT_FILTER] - The filter criteria to match deployments.
34
- * @param {SingletonDeploymentJSON[]} deployments - The list of deployment JSON objects to search.
35
- * @returns {SingletonDeployment | undefined} - The found deployment object or undefined if no match is found.
40
+ * @param {SingletonDeploymentJSON} deployment - The deployment JSON object to map.
41
+ * @returns {SingletonDeploymentV2} - The mapped deployment object in V2 format.
36
42
  */
37
- const findDeployment = (criteria = DEFAULT_FILTER, deployments) => {
43
+ const mapJsonToDeploymentsFormatV2 = (deployment) => (Object.assign(Object.assign({}, deployment), { networkAddresses: Object.fromEntries(Object.entries(deployment.networkAddresses).map(([chainId, addressTypes]) => [
44
+ chainId,
45
+ (Array.isArray(addressTypes)
46
+ ? // The usage of non-null assertion below is safe, because we validate that the asset files are properly formed in tests
47
+ addressTypes.map((addressType) => deployment.deployments[addressType].address)
48
+ : deployment.deployments[addressTypes].address),
49
+ ])) }));
50
+ function findDeployment(criteria = DEFAULT_FILTER, deployments, format = "singleton" /* DeploymentFormats.SINGLETON */) {
38
51
  const { version, released, network } = Object.assign(Object.assign({}, DEFAULT_FILTER), criteria);
39
52
  const deploymentJson = deployments.find((deployment) => {
40
53
  if (version && !(0, satisfies_1.default)(deployment.version, version))
@@ -45,6 +58,12 @@ const findDeployment = (criteria = DEFAULT_FILTER, deployments) => {
45
58
  return false;
46
59
  return true;
47
60
  });
48
- return deploymentJson ? mapJsonToDeploymentsFormatV1(deploymentJson) : undefined;
49
- };
50
- exports.findDeployment = findDeployment;
61
+ if (!deploymentJson)
62
+ return undefined;
63
+ if (format === "multiple" /* DeploymentFormats.MULTIPLE */) {
64
+ return mapJsonToDeploymentsFormatV2(deploymentJson);
65
+ }
66
+ else {
67
+ return mapJsonToDeploymentsFormatV1(deploymentJson);
68
+ }
69
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@safe-global/safe-deployments",
3
- "version": "1.37.1",
3
+ "version": "1.37.3",
4
4
  "description": "Collection of Safe singleton deployments",
5
5
  "homepage": "https://github.com/safe-global/safe-deployments/",
6
6
  "license": "MIT",
@@ -8,18 +8,17 @@
8
8
  "typings": "dist/index.d.ts",
9
9
  "files": [
10
10
  "dist",
11
- "src",
12
- "test",
13
- "build"
11
+ "src"
14
12
  ],
15
13
  "scripts": {
16
14
  "build": "rimraf dist && tsc",
17
15
  "lint": "npm run lint:ts && npm run lint:json",
18
- "lint:ts": "eslint --max-warnings 0 src/",
16
+ "lint:ts": "eslint --max-warnings 0 src/ scripts/",
19
17
  "lint:json": "prettier -c src/assets/*/*.json",
20
18
  "lint:fix": "npm run lint:fix:ts && npm run lint:fix:json",
21
19
  "lint:fix:ts": "npm run lint:ts -- --fix",
22
20
  "lint:fix:json": "prettier -w src/assets/*/*.json",
21
+ "verify": "ts-node scripts/verify.ts",
23
22
  "prepack": "npm run build",
24
23
  "test": "jest"
25
24
  },
@@ -44,9 +43,11 @@
44
43
  "eslint": "^8.57.0",
45
44
  "eslint-config-prettier": "^9.1.0",
46
45
  "eslint-plugin-prettier": "^5.1.3",
46
+ "ethers": "^6.13.1",
47
47
  "jest": "^29.7.0",
48
48
  "prettier": "^3.3.2",
49
49
  "ts-jest": "^29.1.5",
50
+ "ts-node": "^10.9.2",
50
51
  "typescript": "^5.5.2",
51
52
  "typescript-eslint": "^7.14.1"
52
53
  },
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "GnosisSafe",
5
5
  "version": "1.0.0",
6
- "codeHash": "0xe1f1593df76e69abc2d692792c80f329457551d5e83dde597546a1d58764da80",
7
- "addresses": {
8
- "canonical": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A",
9
+ "codeHash": "0xe1f1593df76e69abc2d692792c80f329457551d5e83dde597546a1d58764da80"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "ProxyFactory",
5
5
  "version": "1.0.0",
6
- "codeHash": "0x84a375ad96ab395850d46cd601ed6354d3cf3fb67cec0caf18f34af5c9d1a7f0",
7
- "addresses": {
8
- "canonical": "0x12302fE9c02ff50939BaAaaf415fc226C078613C"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x12302fE9c02ff50939BaAaaf415fc226C078613C",
9
+ "codeHash": "0x84a375ad96ab395850d46cd601ed6354d3cf3fb67cec0caf18f34af5c9d1a7f0"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0x12302fE9c02ff50939BaAaaf415fc226C078613C",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "CreateAndAddModules",
5
5
  "version": "1.1.1",
6
- "codeHash": "0x83941bb48a3e3302a6e502e61513981ad02f3870f2d15e6d9cd301d616a0ba38",
7
- "addresses": {
8
- "canonical": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0",
9
+ "codeHash": "0x83941bb48a3e3302a6e502e61513981ad02f3870f2d15e6d9cd301d616a0ba38"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0xF61A721642B0c0C8b334bA3763BA1326F53798C0",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "CreateCall",
5
5
  "version": "1.1.1",
6
- "codeHash": "0x9de5afc9afd2bc0e329d9b4fa34955da45bb8e11587c645c5ff5287d7507adeb",
7
- "addresses": {
8
- "canonical": "0x8538FcBccba7f5303d2C679Fa5d7A629A8c9bf4A"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x8538FcBccba7f5303d2C679Fa5d7A629A8c9bf4A",
9
+ "codeHash": "0x9de5afc9afd2bc0e329d9b4fa34955da45bb8e11587c645c5ff5287d7507adeb"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0x8538FcBccba7f5303d2C679Fa5d7A629A8c9bf4A",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "DefaultCallbackHandler",
5
5
  "version": "1.1.1",
6
- "codeHash": "0x919a9f5dd111a01f7a8e4b1f5c6a972bb2d1441c67bdec71de6a09d0be92f5b9",
7
- "addresses": {
8
- "canonical": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44",
9
+ "codeHash": "0x919a9f5dd111a01f7a8e4b1f5c6a972bb2d1441c67bdec71de6a09d0be92f5b9"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0xd5D82B6aDDc9027B22dCA772Aa68D5d74cdBdF44",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "GnosisSafe",
5
5
  "version": "1.1.1",
6
- "codeHash": "0x56b8be58b5ad629a621593a2e5e5e8e9a28408dc06e95597497b303902772e45",
7
- "addresses": {
8
- "canonical": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F",
9
+ "codeHash": "0x56b8be58b5ad629a621593a2e5e5e8e9a28408dc06e95597497b303902772e45"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0x34CfAC646f301356fAa8B21e94227e3583Fe3F5F",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "MultiSend",
5
5
  "version": "1.1.1",
6
- "codeHash": "0xe4e9b4d4c1e3ff06cd51afe0b51eb1b22c0bab51eab38d428ee74540a5ff603e",
7
- "addresses": {
8
- "canonical": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD",
9
+ "codeHash": "0xe4e9b4d4c1e3ff06cd51afe0b51eb1b22c0bab51eab38d428ee74540a5ff603e"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0x8D29bE29923b68abfDD21e541b9374737B49cdAD",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "ProxyFactory",
5
5
  "version": "1.1.1",
6
- "codeHash": "0x0f0bb9c13be3b595d6f0fde841d5247a96f7e315bd8b97e1363553bee9a7d995",
7
- "addresses": {
8
- "canonical": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B",
9
+ "codeHash": "0x0f0bb9c13be3b595d6f0fde841d5247a96f7e315bd8b97e1363553bee9a7d995"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0x76E2cFc1F5Fa8F6a5b3fC4c8F4788F0116861F9B",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "GnosisSafe",
5
5
  "version": "1.2.0",
6
- "codeHash": "0x2ae2d1231f0d754a7fa4f5e5d0e5554085e1b500d8e09f95aaaaa3f49c0db922",
7
- "addresses": {
8
- "canonical": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185",
9
+ "codeHash": "0x2ae2d1231f0d754a7fa4f5e5d0e5554085e1b500d8e09f95aaaaa3f49c0db922"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0x6851D6fDFAfD08c0295C392436245E5bc78B0185",
@@ -3,11 +3,19 @@
3
3
  "released": true,
4
4
  "contractName": "CompatibilityFallbackHandler",
5
5
  "version": "1.3.0",
6
- "codeHash": "0x03e69f7ce809e81687c69b19a7d7cca45b6d551ffdec73d9bb87178476de1abf",
7
- "addresses": {
8
- "canonical": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4",
9
- "eip155": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
10
- "zksync": "0x2f870a80647BbC554F3a0EBD093f11B4d2a7492A"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4",
9
+ "codeHash": "0x03e69f7ce809e81687c69b19a7d7cca45b6d551ffdec73d9bb87178476de1abf"
10
+ },
11
+ "eip155": {
12
+ "address": "0x017062a1dE2FE6b99BE3d9d37841FeD19F573804",
13
+ "codeHash": "0x03e69f7ce809e81687c69b19a7d7cca45b6d551ffdec73d9bb87178476de1abf"
14
+ },
15
+ "zksync": {
16
+ "address": "0x2f870a80647BbC554F3a0EBD093f11B4d2a7492A",
17
+ "codeHash": "0x017e9a83d5513f503fb85274f4d1ad1811040d7caa31772750ffb08638c28fbb"
18
+ }
11
19
  },
12
20
  "networkAddresses": {
13
21
  "1": "0xf48f2B2d2a534e402487b3ee7C18c33Aec0Fe5e4",
@@ -3,11 +3,19 @@
3
3
  "released": true,
4
4
  "contractName": "CreateCall",
5
5
  "version": "1.3.0",
6
- "codeHash": "0x8155d988823a4f6f1bcbc76a64af8e510c4ce68819290d43cf24956bd24dee82",
7
- "addresses": {
8
- "canonical": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4",
9
- "eip155": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d",
10
- "zksync": "0xcB8e5E438c5c2b45FbE17B02Ca9aF91509a8ad56"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4",
9
+ "codeHash": "0x8155d988823a4f6f1bcbc76a64af8e510c4ce68819290d43cf24956bd24dee82"
10
+ },
11
+ "eip155": {
12
+ "address": "0xB19D6FFc2182150F8Eb585b79D4ABcd7C5640A9d",
13
+ "codeHash": "0x8155d988823a4f6f1bcbc76a64af8e510c4ce68819290d43cf24956bd24dee82"
14
+ },
15
+ "zksync": {
16
+ "address": "0xcB8e5E438c5c2b45FbE17B02Ca9aF91509a8ad56",
17
+ "codeHash": "0x98095337deb9718f4e5ccb1b25a53be5f5e0093502b29df9e857f5e3e12aa194"
18
+ }
11
19
  },
12
20
  "networkAddresses": {
13
21
  "1": "0x7cbB62EaA69F79e6873cD1ecB2392971036cFAa4",
@@ -3,11 +3,19 @@
3
3
  "released": true,
4
4
  "contractName": "GnosisSafe",
5
5
  "version": "1.3.0",
6
- "codeHash": "0xbba688fbdb21ad2bb58bc320638b43d94e7d100f6f3ebaab0a4e4de6304b1c2e",
7
- "addresses": {
8
- "canonical": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552",
9
- "eip155": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938",
10
- "zksync": "0xB00ce5CCcdEf57e539ddcEd01DF43a13855d9910"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552",
9
+ "codeHash": "0xbba688fbdb21ad2bb58bc320638b43d94e7d100f6f3ebaab0a4e4de6304b1c2e"
10
+ },
11
+ "eip155": {
12
+ "address": "0x69f4D1788e39c87893C980c06EdF4b7f686e2938",
13
+ "codeHash": "0xbba688fbdb21ad2bb58bc320638b43d94e7d100f6f3ebaab0a4e4de6304b1c2e"
14
+ },
15
+ "zksync": {
16
+ "address": "0xB00ce5CCcdEf57e539ddcEd01DF43a13855d9910",
17
+ "codeHash": "0x551b7fdfd2dbcec4f785059e1ef6e0b40ca2e44d792158c4e825bc0b092f15e9"
18
+ }
11
19
  },
12
20
  "networkAddresses": {
13
21
  "1": "0xd9Db270c1B5E3Bd161E8c8503c55cEABeE709552",
@@ -3,11 +3,19 @@
3
3
  "released": true,
4
4
  "contractName": "GnosisSafeL2",
5
5
  "version": "1.3.0",
6
- "codeHash": "0x21842597390c4c6e3c1239e434a682b054bd9548eee5e9b1d6a4482731023c0f",
7
- "addresses": {
8
- "canonical": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E",
9
- "eip155": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
10
- "zksync": "0x1727c2c531cf966f902E5927b98490fDFb3b2b70"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E",
9
+ "codeHash": "0x21842597390c4c6e3c1239e434a682b054bd9548eee5e9b1d6a4482731023c0f"
10
+ },
11
+ "eip155": {
12
+ "address": "0xfb1bffC9d739B8D520DaF37dF666da4C687191EA",
13
+ "codeHash": "0x21842597390c4c6e3c1239e434a682b054bd9548eee5e9b1d6a4482731023c0f"
14
+ },
15
+ "zksync": {
16
+ "address": "0x1727c2c531cf966f902E5927b98490fDFb3b2b70",
17
+ "codeHash": "0xe2ca068330339d608367d83a0b25545efe39e619098597699ab8ff828cb1ddd8"
18
+ }
11
19
  },
12
20
  "networkAddresses": {
13
21
  "1": "0x3E5c63644E683549055b9Be8653de26E0B4CD36E",
@@ -3,11 +3,19 @@
3
3
  "released": true,
4
4
  "contractName": "MultiSend",
5
5
  "version": "1.3.0",
6
- "codeHash": "0x0208282bd262360d0320862c5ac70f375f5ed3b9d89a83a615b4d398415bdc83",
7
- "addresses": {
8
- "canonical": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761",
9
- "eip155": "0x998739BFdAAdde7C933B942a68053933098f9EDa",
10
- "zksync": "0x0dFcccB95225ffB03c6FBB2559B530C2B7C8A912"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761",
9
+ "codeHash": "0x0208282bd262360d0320862c5ac70f375f5ed3b9d89a83a615b4d398415bdc83"
10
+ },
11
+ "eip155": {
12
+ "address": "0x998739BFdAAdde7C933B942a68053933098f9EDa",
13
+ "codeHash": "0x81db0e4afdf5178583537b58c5ad403bd47a4ac7f9bde2442ef3e341d433126a"
14
+ },
15
+ "zksync": {
16
+ "address": "0x0dFcccB95225ffB03c6FBB2559B530C2B7C8A912",
17
+ "codeHash": "0xd9aa004a59b3738a108e747e578ae409b84e9f3ffd689d81b10f4d96000c5f5c"
18
+ }
11
19
  },
12
20
  "networkAddresses": {
13
21
  "1": "0xA238CBeb142c10Ef7Ad8442C6D1f9E89e07e7761",
@@ -3,11 +3,19 @@
3
3
  "released": true,
4
4
  "contractName": "MultiSendCallOnly",
5
5
  "version": "1.3.0",
6
- "codeHash": "0xa9865ac2d9c7a1591619b188c4d88167b50df6cc0c5327fcbd1c8c75f7c066ad",
7
- "addresses": {
8
- "canonical": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D",
9
- "eip155": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B",
10
- "zksync": "0xf220D3b4DFb23C4ade8C88E526C1353AbAcbC38F"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D",
9
+ "codeHash": "0xa9865ac2d9c7a1591619b188c4d88167b50df6cc0c5327fcbd1c8c75f7c066ad"
10
+ },
11
+ "eip155": {
12
+ "address": "0xA1dabEF33b3B82c7814B6D82A79e50F4AC44102B",
13
+ "codeHash": "0xa9865ac2d9c7a1591619b188c4d88167b50df6cc0c5327fcbd1c8c75f7c066ad"
14
+ },
15
+ "zksync": {
16
+ "address": "0xf220D3b4DFb23C4ade8C88E526C1353AbAcbC38F",
17
+ "codeHash": "0x064ddbf252714bcd4cb79f679e8c12df96d998ce07bbb13b3118c1dbf4a31942"
18
+ }
11
19
  },
12
20
  "networkAddresses": {
13
21
  "1": "0x40A2aCCbd92BCA938b02010E17A5b8929b49130D",
@@ -3,11 +3,19 @@
3
3
  "released": true,
4
4
  "contractName": "GnosisSafeProxyFactory",
5
5
  "version": "1.3.0",
6
- "codeHash": "0x337d7f54be11b6ed55fef7b667ea5488db53db8320a05d1146aa4bd169a39a9b",
7
- "addresses": {
8
- "canonical": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2",
9
- "eip155": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
10
- "zksync": "0xDAec33641865E4651fB43181C6DB6f7232Ee91c2"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2",
9
+ "codeHash": "0x337d7f54be11b6ed55fef7b667ea5488db53db8320a05d1146aa4bd169a39a9b"
10
+ },
11
+ "eip155": {
12
+ "address": "0xC22834581EbC8527d974F8a1c97E1bEA4EF910BC",
13
+ "codeHash": "0x337d7f54be11b6ed55fef7b667ea5488db53db8320a05d1146aa4bd169a39a9b"
14
+ },
15
+ "zksync": {
16
+ "address": "0xDAec33641865E4651fB43181C6DB6f7232Ee91c2",
17
+ "codeHash": "0x55daa5d390d283edbc5fa835bd53befce45179c758feaac8c149a95850d0a6b6"
18
+ }
11
19
  },
12
20
  "networkAddresses": {
13
21
  "1": "0xa6B71E26C5e0845f74c812102Ca7114b6a896AB2",
@@ -3,11 +3,19 @@
3
3
  "released": true,
4
4
  "contractName": "SignMessageLib",
5
5
  "version": "1.3.0",
6
- "codeHash": "0x3ac65dea3cc9dd0d7b7b800f834e3d73415b4e944bb94555c3e4a08fb137e918",
7
- "addresses": {
8
- "canonical": "0xA65387F16B013cf2Af4605Ad8aA5ec25a2cbA3a2",
9
- "eip155": "0x98FFBBF51bb33A056B08ddf711f289936AafF717",
10
- "zksync": "0x357147caf9C0cCa67DfA0CF5369318d8193c8407"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0xA65387F16B013cf2Af4605Ad8aA5ec25a2cbA3a2",
9
+ "codeHash": "0x3ac65dea3cc9dd0d7b7b800f834e3d73415b4e944bb94555c3e4a08fb137e918"
10
+ },
11
+ "eip155": {
12
+ "address": "0x98FFBBF51bb33A056B08ddf711f289936AafF717",
13
+ "codeHash": "0x3ac65dea3cc9dd0d7b7b800f834e3d73415b4e944bb94555c3e4a08fb137e918"
14
+ },
15
+ "zksync": {
16
+ "address": "0x357147caf9C0cCa67DfA0CF5369318d8193c8407",
17
+ "codeHash": "0x9da86f7e32ef976bd442a8eeb353e16d683b53e30e926ae7adce7c609f75b1fc"
18
+ }
11
19
  },
12
20
  "networkAddresses": {
13
21
  "1": "0xA65387F16B013cf2Af4605Ad8aA5ec25a2cbA3a2",
@@ -3,11 +3,19 @@
3
3
  "released": true,
4
4
  "contractName": "SimulateTxAccessor",
5
5
  "version": "1.3.0",
6
- "codeHash": "0xb3fb9763869f2c09a2ac5a425d2dd6060bf7ef46b3899049d71a711e71e00f04",
7
- "addresses": {
8
- "canonical": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da",
9
- "eip155": "0x727a77a074D1E6c4530e814F89E618a3298FC044",
10
- "zksync": "0x4191E2e12E8BC5002424CE0c51f9947b02675a44"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da",
9
+ "codeHash": "0xb3fb9763869f2c09a2ac5a425d2dd6060bf7ef46b3899049d71a711e71e00f04"
10
+ },
11
+ "eip155": {
12
+ "address": "0x727a77a074D1E6c4530e814F89E618a3298FC044",
13
+ "codeHash": "0x66712e1d9161706f826d8d74a3cc03db0289b2530a1202f24d52986952b69a02"
14
+ },
15
+ "zksync": {
16
+ "address": "0x4191E2e12E8BC5002424CE0c51f9947b02675a44",
17
+ "codeHash": "0x18c486b76cb76981360e96ca4f90fc745fde6a8575b8c2b35ac98eab3856fd72"
18
+ }
11
19
  },
12
20
  "networkAddresses": {
13
21
  "1": "0x59AD6735bCd8152B84860Cb256dD9e96b85F69Da",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "CompatibilityFallbackHandler",
5
5
  "version": "1.4.1",
6
- "codeHash": "0x7c6007a5d711cea8dfd5d91f5940ec29c7f200fe511eb1fc1397b367af3c42f9",
7
- "addresses": {
8
- "canonical": "0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99",
9
+ "codeHash": "0x7c6007a5d711cea8dfd5d91f5940ec29c7f200fe511eb1fc1397b367af3c42f9"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0xfd0732Dc9E303f09fCEf3a7388Ad10A83459Ec99",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "CreateCall",
5
5
  "version": "1.4.1",
6
- "codeHash": "0x2b3060c55fcb8275653e99ad511a71f67ba76934ed66a7d74d6e68b52afff889",
7
- "addresses": {
8
- "canonical": "0x9b35Af71d77eaf8d7e40252370304687390A1A52"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x9b35Af71d77eaf8d7e40252370304687390A1A52",
9
+ "codeHash": "0x2b3060c55fcb8275653e99ad511a71f67ba76934ed66a7d74d6e68b52afff889"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0x9b35Af71d77eaf8d7e40252370304687390A1A52",
@@ -3,9 +3,11 @@
3
3
  "released": true,
4
4
  "contractName": "MultiSend",
5
5
  "version": "1.4.1",
6
- "codeHash": "0x0e4f7fc66550a322d1e7688e181b75e217e662a4f3f4d6a29b22bc61217c4b77",
7
- "addresses": {
8
- "canonical": "0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526"
6
+ "deployments": {
7
+ "canonical": {
8
+ "address": "0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526",
9
+ "codeHash": "0x0e4f7fc66550a322d1e7688e181b75e217e662a4f3f4d6a29b22bc61217c4b77"
10
+ }
9
11
  },
10
12
  "networkAddresses": {
11
13
  "1": "0x38869bf66a61cF6bDB996A6aE40D5853Fd43B526",