@safe-global/safe-deployments 1.36.0 → 1.37.1
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.
- package/README.md +56 -28
- package/dist/accessors.js +1 -3
- package/dist/assets/v1.0.0/gnosis_safe.json +477 -103
- package/dist/assets/v1.0.0/proxy_factory.json +9 -6
- package/dist/assets/v1.1.1/default_callback_handler.json +12 -9
- package/dist/assets/v1.1.1/gnosis_safe.json +12 -9
- package/dist/assets/v1.1.1/multi_send.json +12 -9
- package/dist/assets/v1.1.1/proxy_factory.json +12 -9
- package/dist/assets/v1.2.0/gnosis_safe.json +12 -9
- package/dist/assets/v1.3.0/compatibility_fallback_handler.json +247 -222
- package/dist/assets/v1.3.0/create_call.json +247 -222
- package/dist/assets/v1.3.0/gnosis_safe.json +247 -222
- package/dist/assets/v1.3.0/gnosis_safe_l2.json +247 -222
- package/dist/assets/v1.3.0/multi_send.json +247 -222
- package/dist/assets/v1.3.0/multi_send_call_only.json +247 -222
- package/dist/assets/v1.3.0/proxy_factory.json +247 -222
- package/dist/assets/v1.3.0/sign_message_lib.json +248 -223
- package/dist/assets/v1.3.0/simulate_tx_accessor.json +247 -222
- package/dist/assets/v1.4.1/compatibility_fallback_handler.json +114 -41
- package/dist/assets/v1.4.1/create_call.json +114 -41
- package/dist/assets/v1.4.1/multi_send.json +114 -41
- package/dist/assets/v1.4.1/multi_send_call_only.json +114 -41
- package/dist/assets/v1.4.1/safe.json +114 -41
- package/dist/assets/v1.4.1/safe_l2.json +114 -41
- package/dist/assets/v1.4.1/safe_proxy_factory.json +115 -42
- package/dist/assets/v1.4.1/sign_message_lib.json +115 -42
- package/dist/assets/v1.4.1/simulate_tx_accessor.json +114 -41
- package/dist/factories.js +4 -1
- package/dist/handler.js +6 -5
- package/dist/libs.js +4 -12
- package/dist/safes.d.ts +3 -3
- package/dist/safes.js +6 -4
- package/dist/types.d.ts +28 -2
- package/dist/types.js +11 -0
- package/dist/utils.d.ts +9 -2
- package/dist/utils.js +34 -5
- package/package.json +15 -17
- package/src/__tests__/assets/v1/v1.0.0/gnosis_safe.json +794 -0
- package/src/__tests__/assets/v1/v1.0.0/proxy_factory.json +109 -0
- package/src/__tests__/assets/v1/v1.1.1/create_and_add_modules.json +57 -0
- package/src/__tests__/assets/v1/v1.1.1/create_call.json +88 -0
- package/src/__tests__/assets/v1/v1.1.1/default_callback_handler.json +210 -0
- package/src/__tests__/assets/v1/v1.1.1/gnosis_safe.json +999 -0
- package/src/__tests__/assets/v1/v1.1.1/multi_send.json +43 -0
- package/src/__tests__/assets/v1/v1.1.1/proxy_factory.json +189 -0
- package/src/__tests__/assets/v1/v1.2.0/gnosis_safe.json +1020 -0
- package/src/__tests__/assets/v1/v1.3.0/compatibility_fallback_handler.json +580 -0
- package/src/__tests__/assets/v1/v1.3.0/create_call.json +323 -0
- package/src/__tests__/assets/v1/v1.3.0/gnosis_safe.json +1288 -0
- package/src/__tests__/assets/v1/v1.3.0/gnosis_safe_l2.json +1393 -0
- package/src/__tests__/assets/v1/v1.3.0/multi_send.json +275 -0
- package/src/__tests__/assets/v1/v1.3.0/multi_send_call_only.json +270 -0
- package/src/__tests__/assets/v1/v1.3.0/proxy_factory.json +418 -0
- package/src/__tests__/assets/v1/v1.3.0/sign_message_lib.json +302 -0
- package/src/__tests__/assets/v1/v1.3.0/simulate_tx_accessor.json +306 -0
- package/src/__tests__/assets/v1/v1.4.1/compatibility_fallback_handler.json +445 -0
- package/src/__tests__/assets/v1/v1.4.1/create_call.json +190 -0
- package/src/__tests__/assets/v1/v1.4.1/multi_send.json +142 -0
- package/src/__tests__/assets/v1/v1.4.1/multi_send_call_only.json +137 -0
- package/src/__tests__/assets/v1/v1.4.1/safe.json +1121 -0
- package/src/__tests__/assets/v1/v1.4.1/safe_l2.json +1226 -0
- package/src/__tests__/assets/v1/v1.4.1/safe_proxy_factory.json +261 -0
- package/src/__tests__/assets/v1/v1.4.1/sign_message_lib.json +169 -0
- package/src/__tests__/assets/v1/v1.4.1/simulate_tx_accessor.json +173 -0
- package/src/__tests__/assets.test.ts +101 -38
- package/src/__tests__/factories.test.ts +3 -3
- package/src/__tests__/handler.test.ts +5 -5
- package/src/__tests__/libs.test.ts +9 -9
- package/src/__tests__/safes.test.ts +9 -12
- package/src/__tests__/utils.test.ts +271 -0
- package/src/accessors.ts +5 -7
- package/src/assets/v1.0.0/gnosis_safe.json +477 -103
- package/src/assets/v1.0.0/proxy_factory.json +9 -6
- package/src/assets/v1.1.1/create_and_add_modules.json +17 -10
- package/src/assets/v1.1.1/create_call.json +12 -9
- package/src/assets/v1.1.1/default_callback_handler.json +12 -9
- package/src/assets/v1.1.1/gnosis_safe.json +12 -9
- package/src/assets/v1.1.1/multi_send.json +12 -9
- package/src/assets/v1.1.1/proxy_factory.json +12 -9
- package/src/assets/v1.2.0/gnosis_safe.json +12 -9
- package/src/assets/v1.3.0/compatibility_fallback_handler.json +247 -222
- package/src/assets/v1.3.0/create_call.json +247 -222
- package/src/assets/v1.3.0/gnosis_safe.json +247 -222
- package/src/assets/v1.3.0/gnosis_safe_l2.json +247 -222
- package/src/assets/v1.3.0/multi_send.json +247 -222
- package/src/assets/v1.3.0/multi_send_call_only.json +247 -222
- package/src/assets/v1.3.0/proxy_factory.json +247 -222
- package/src/assets/v1.3.0/sign_message_lib.json +248 -223
- package/src/assets/v1.3.0/simulate_tx_accessor.json +247 -222
- package/src/assets/v1.4.1/compatibility_fallback_handler.json +115 -42
- package/src/assets/v1.4.1/create_call.json +115 -42
- package/src/assets/v1.4.1/multi_send.json +115 -42
- package/src/assets/v1.4.1/multi_send_call_only.json +115 -42
- package/src/assets/v1.4.1/safe.json +115 -42
- package/src/assets/v1.4.1/safe_l2.json +115 -42
- package/src/assets/v1.4.1/safe_proxy_factory.json +116 -43
- package/src/assets/v1.4.1/sign_message_lib.json +116 -43
- package/src/assets/v1.4.1/simulate_tx_accessor.json +115 -42
- package/src/factories.ts +14 -11
- package/src/handler.ts +24 -21
- package/src/index.ts +6 -6
- package/src/libs.ts +23 -31
- package/src/safes.ts +21 -19
- package/src/types.ts +84 -10
- package/src/utils.ts +50 -12
- package/src/__tests__/utilts.test.ts +0 -385
package/dist/types.d.ts
CHANGED
|
@@ -1,13 +1,39 @@
|
|
|
1
|
+
declare enum AddressType {
|
|
2
|
+
CANONICAL = "canonical",
|
|
3
|
+
EIP155 = "eip155",
|
|
4
|
+
ZKSYNC = "zksync"
|
|
5
|
+
}
|
|
6
|
+
export interface SingletonDeploymentJSON {
|
|
7
|
+
released: boolean;
|
|
8
|
+
contractName: string;
|
|
9
|
+
version: string;
|
|
10
|
+
codeHash: string;
|
|
11
|
+
networkAddresses: Record<string, string | string[]>;
|
|
12
|
+
addresses: Record<string, string>;
|
|
13
|
+
abi: any[];
|
|
14
|
+
}
|
|
1
15
|
export interface SingletonDeployment {
|
|
2
16
|
defaultAddress: string;
|
|
17
|
+
released: boolean;
|
|
18
|
+
contractName: string;
|
|
3
19
|
version: string;
|
|
4
|
-
|
|
20
|
+
codeHash: string;
|
|
21
|
+
addresses: Record<string, string>;
|
|
5
22
|
networkAddresses: Record<string, string>;
|
|
6
|
-
|
|
23
|
+
abi: any[];
|
|
24
|
+
}
|
|
25
|
+
export interface SingletonDeploymentV2 {
|
|
7
26
|
released: boolean;
|
|
27
|
+
contractName: string;
|
|
28
|
+
version: string;
|
|
29
|
+
codeHash: string;
|
|
30
|
+
abi: any[];
|
|
31
|
+
networkAddresses: Record<string, AddressType | AddressType[]>;
|
|
32
|
+
addresses: Partial<Record<AddressType, string>>;
|
|
8
33
|
}
|
|
9
34
|
export interface DeploymentFilter {
|
|
10
35
|
version?: string;
|
|
11
36
|
released?: boolean;
|
|
12
37
|
network?: string;
|
|
13
38
|
}
|
|
39
|
+
export {};
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1,13 @@
|
|
|
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,2 +1,9 @@
|
|
|
1
|
-
import { DeploymentFilter, SingletonDeployment } from './types';
|
|
2
|
-
|
|
1
|
+
import { DeploymentFilter, SingletonDeployment, SingletonDeploymentJSON } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Finds a deployment that matches the given criteria.
|
|
4
|
+
*
|
|
5
|
+
* @param {DeploymentFilter} [criteria=DEFAULT_FILTER] - The filter criteria to match deployments.
|
|
6
|
+
* @param {SingletonDeploymentJSON[]} deployments - The list of deployment JSON objects to search.
|
|
7
|
+
* @returns {SingletonDeployment | undefined} - The found deployment object or undefined if no match is found.
|
|
8
|
+
*/
|
|
9
|
+
export declare const findDeployment: (criteria: DeploymentFilter | undefined, deployments: SingletonDeploymentJSON[]) => SingletonDeployment | undefined;
|
package/dist/utils.js
CHANGED
|
@@ -6,16 +6,45 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.findDeployment = void 0;
|
|
7
7
|
const satisfies_1 = __importDefault(require("semver/functions/satisfies"));
|
|
8
8
|
const DEFAULT_FILTER = { released: true };
|
|
9
|
+
// The older JSON format had a `defaultAddress` field, which became obsolete due to EIP-155 enforcement and non-EVM compatible chains.
|
|
10
|
+
// This led to multiple "default" addresses, sometimes on the same chain ID. To maintain backwards compatibility, we map `defaultAddress`
|
|
11
|
+
// to the address deployed on a chosen default network.
|
|
12
|
+
const DEFAULT_NETWORK_CHAIN_ID = '1';
|
|
13
|
+
/**
|
|
14
|
+
* Maps a SingletonDeploymentJSON object to a SingletonDeployment object.
|
|
15
|
+
*
|
|
16
|
+
* @param {SingletonDeploymentJSON} deployment - The deployment JSON object to map.
|
|
17
|
+
* @returns {SingletonDeployment} - The mapped deployment object.
|
|
18
|
+
*/
|
|
19
|
+
const mapJsonToDeploymentsFormatV1 = (deployment) => {
|
|
20
|
+
const defaultAddressType = Array.isArray(deployment.networkAddresses[DEFAULT_NETWORK_CHAIN_ID])
|
|
21
|
+
? deployment.networkAddresses[DEFAULT_NETWORK_CHAIN_ID][0]
|
|
22
|
+
: deployment.networkAddresses[DEFAULT_NETWORK_CHAIN_ID];
|
|
23
|
+
const defaultAddress = deployment.addresses[defaultAddressType];
|
|
24
|
+
const networkAddresses = Object.fromEntries(Object.entries(deployment.networkAddresses).map(([chainId, addressTypes]) => [
|
|
25
|
+
chainId,
|
|
26
|
+
Array.isArray(addressTypes) ? deployment.addresses[addressTypes[0]] : deployment.addresses[addressTypes],
|
|
27
|
+
]));
|
|
28
|
+
return Object.assign(Object.assign({}, deployment), { defaultAddress, networkAddresses });
|
|
29
|
+
};
|
|
30
|
+
/**
|
|
31
|
+
* Finds a deployment that matches the given criteria.
|
|
32
|
+
*
|
|
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.
|
|
36
|
+
*/
|
|
9
37
|
const findDeployment = (criteria = DEFAULT_FILTER, deployments) => {
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
if (
|
|
38
|
+
const { version, released, network } = Object.assign(Object.assign({}, DEFAULT_FILTER), criteria);
|
|
39
|
+
const deploymentJson = deployments.find((deployment) => {
|
|
40
|
+
if (version && !(0, satisfies_1.default)(deployment.version, version))
|
|
13
41
|
return false;
|
|
14
|
-
if (typeof
|
|
42
|
+
if (typeof released === 'boolean' && deployment.released !== released)
|
|
15
43
|
return false;
|
|
16
|
-
if (
|
|
44
|
+
if (network && !deployment.networkAddresses[network])
|
|
17
45
|
return false;
|
|
18
46
|
return true;
|
|
19
47
|
});
|
|
48
|
+
return deploymentJson ? mapJsonToDeploymentsFormatV1(deploymentJson) : undefined;
|
|
20
49
|
};
|
|
21
50
|
exports.findDeployment = findDeployment;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@safe-global/safe-deployments",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.37.1",
|
|
4
4
|
"description": "Collection of Safe singleton deployments",
|
|
5
5
|
"homepage": "https://github.com/safe-global/safe-deployments/",
|
|
6
6
|
"license": "MIT",
|
|
@@ -13,12 +13,14 @@
|
|
|
13
13
|
"build"
|
|
14
14
|
],
|
|
15
15
|
"scripts": {
|
|
16
|
-
"build": "
|
|
17
|
-
"lint": "
|
|
18
|
-
"lint:ts": "eslint --max-warnings 0
|
|
16
|
+
"build": "rimraf dist && tsc",
|
|
17
|
+
"lint": "npm run lint:ts && npm run lint:json",
|
|
18
|
+
"lint:ts": "eslint --max-warnings 0 src/",
|
|
19
19
|
"lint:json": "prettier -c src/assets/*/*.json",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
20
|
+
"lint:fix": "npm run lint:fix:ts && npm run lint:fix:json",
|
|
21
|
+
"lint:fix:ts": "npm run lint:ts -- --fix",
|
|
22
|
+
"lint:fix:json": "prettier -w src/assets/*/*.json",
|
|
23
|
+
"prepack": "npm run build",
|
|
22
24
|
"test": "jest"
|
|
23
25
|
},
|
|
24
26
|
"repository": {
|
|
@@ -35,24 +37,20 @@
|
|
|
35
37
|
"url": "https://github.com/safe-global/safe-deployments/issues"
|
|
36
38
|
},
|
|
37
39
|
"devDependencies": {
|
|
40
|
+
"@eslint/js": "^8.57.0",
|
|
38
41
|
"@types/jest": "^29.5.12",
|
|
39
|
-
"@types/node": "^20.
|
|
42
|
+
"@types/node": "^20.14.9",
|
|
40
43
|
"@types/semver": "^7.5.8",
|
|
41
|
-
"@typescript-eslint/eslint-plugin": "^7.4.0",
|
|
42
|
-
"@typescript-eslint/parser": "^7.4.0",
|
|
43
44
|
"eslint": "^8.57.0",
|
|
44
45
|
"eslint-config-prettier": "^9.1.0",
|
|
45
|
-
"eslint-plugin-import": "^2.29.1",
|
|
46
|
-
"eslint-plugin-no-only-tests": "^3.1.0",
|
|
47
46
|
"eslint-plugin-prettier": "^5.1.3",
|
|
48
|
-
"husky": "^9.0.11",
|
|
49
47
|
"jest": "^29.7.0",
|
|
50
|
-
"prettier": "^3.2
|
|
51
|
-
"ts-jest": "^29.1.
|
|
52
|
-
"
|
|
53
|
-
"typescript": "^
|
|
48
|
+
"prettier": "^3.3.2",
|
|
49
|
+
"ts-jest": "^29.1.5",
|
|
50
|
+
"typescript": "^5.5.2",
|
|
51
|
+
"typescript-eslint": "^7.14.1"
|
|
54
52
|
},
|
|
55
53
|
"dependencies": {
|
|
56
|
-
"semver": "^7.6.
|
|
54
|
+
"semver": "^7.6.2"
|
|
57
55
|
}
|
|
58
56
|
}
|