@gnosis.pm/safe-deployments
Advanced tools
Comparing version
@@ -15,4 +15,4 @@ "use strict"; | ||
const getProxyFactoryDeployment = (filter) => { | ||
return utils_1.findDeployment(utils_1.applyFilterDefaults(filter), factoryDeployments); | ||
return utils_1.findDeployment(filter, factoryDeployments); | ||
}; | ||
exports.getProxyFactoryDeployment = getProxyFactoryDeployment; |
@@ -15,3 +15,3 @@ "use strict"; | ||
const getDefaultCallbackHandlerDeployment = (filter) => { | ||
return utils_1.findDeployment(utils_1.applyFilterDefaults(filter), defaultCallbackHandlerDeployments); | ||
return utils_1.findDeployment(filter, defaultCallbackHandlerDeployments); | ||
}; | ||
@@ -24,3 +24,3 @@ exports.getDefaultCallbackHandlerDeployment = getDefaultCallbackHandlerDeployment; | ||
const getCompatibilityFallbackHandlerDeployment = (filter) => { | ||
return utils_1.findDeployment(utils_1.applyFilterDefaults(filter), compatFallbackHandlerDeployments); | ||
return utils_1.findDeployment(filter, compatFallbackHandlerDeployments); | ||
}; | ||
@@ -33,4 +33,4 @@ exports.getCompatibilityFallbackHandlerDeployment = getCompatibilityFallbackHandlerDeployment; | ||
const getFallbackHandlerDeployment = (filter) => { | ||
return utils_1.findDeployment(utils_1.applyFilterDefaults(filter), fallbackHandlerDeployments); | ||
return utils_1.findDeployment(filter, fallbackHandlerDeployments); | ||
}; | ||
exports.getFallbackHandlerDeployment = getFallbackHandlerDeployment; |
@@ -18,3 +18,3 @@ "use strict"; | ||
const getMultiSendDeployment = (filter) => { | ||
return utils_1.findDeployment(utils_1.applyFilterDefaults(filter), multiSendDeployments); | ||
return utils_1.findDeployment(filter, multiSendDeployments); | ||
}; | ||
@@ -27,3 +27,3 @@ exports.getMultiSendDeployment = getMultiSendDeployment; | ||
const getMultiSendCallOnlyDeployment = (filter) => { | ||
return utils_1.findDeployment(utils_1.applyFilterDefaults(filter), multiSendCallOnlyDeployments); | ||
return utils_1.findDeployment(filter, multiSendCallOnlyDeployments); | ||
}; | ||
@@ -36,3 +36,3 @@ exports.getMultiSendCallOnlyDeployment = getMultiSendCallOnlyDeployment; | ||
const getCreateCallDeployment = (filter) => { | ||
return utils_1.findDeployment(utils_1.applyFilterDefaults(filter), createCallDeployments); | ||
return utils_1.findDeployment(filter, createCallDeployments); | ||
}; | ||
@@ -44,4 +44,4 @@ exports.getCreateCallDeployment = getCreateCallDeployment; | ||
const getSignMessageLibDeployment = (filter) => { | ||
return utils_1.findDeployment(utils_1.applyFilterDefaults(filter), signMessageLibDeployments); | ||
return utils_1.findDeployment(filter, signMessageLibDeployments); | ||
}; | ||
exports.getSignMessageLibDeployment = getSignMessageLibDeployment; |
import { DeploymentFilter, SingletonDeployment } from './types'; | ||
export declare const _safeDeployments: SingletonDeployment[]; | ||
export declare const getSafeSingletonDeployment: (filter?: DeploymentFilter | undefined) => SingletonDeployment | undefined; | ||
export declare const _safeL2Deployments: SingletonDeployment[]; | ||
export declare const getSafeL2SingletonDeployment: (filter?: DeploymentFilter | undefined) => SingletonDeployment | undefined; |
@@ -6,3 +6,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.getSafeL2SingletonDeployment = exports.getSafeSingletonDeployment = void 0; | ||
exports.getSafeL2SingletonDeployment = exports._safeL2Deployments = exports.getSafeSingletonDeployment = exports._safeDeployments = void 0; | ||
const gnosis_safe_l2_json_1 = __importDefault(require("./assets/v1.3.0/gnosis_safe_l2.json")); | ||
@@ -14,17 +14,17 @@ const gnosis_safe_json_1 = __importDefault(require("./assets/v1.3.0/gnosis_safe.json")); | ||
const utils_1 = require("./utils"); | ||
// This is a sorted array (newest to oldest) | ||
const safeDeployments = [ | ||
// This is a sorted array (newest to oldest), exported for tests | ||
exports._safeDeployments = [ | ||
gnosis_safe_json_1.default, gnosis_safe_json_2.default, gnosis_safe_json_3.default, gnosis_safe_json_4.default | ||
]; | ||
const getSafeSingletonDeployment = (filter) => { | ||
return utils_1.findDeployment(utils_1.applyFilterDefaults(filter), safeDeployments); | ||
return utils_1.findDeployment(filter, exports._safeDeployments); | ||
}; | ||
exports.getSafeSingletonDeployment = getSafeSingletonDeployment; | ||
// This is a sorted array (newest to oldest) | ||
const safeL2Deployments = [ | ||
// This is a sorted array (newest to oldest), exported for tests | ||
exports._safeL2Deployments = [ | ||
gnosis_safe_l2_json_1.default | ||
]; | ||
const getSafeL2SingletonDeployment = (filter) => { | ||
return utils_1.findDeployment(utils_1.applyFilterDefaults(filter), safeL2Deployments); | ||
return utils_1.findDeployment(filter, exports._safeL2Deployments); | ||
}; | ||
exports.getSafeL2SingletonDeployment = getSafeL2SingletonDeployment; |
@@ -1,3 +0,2 @@ | ||
import { DeploymentFilter, SingletonDeployment } from "./types"; | ||
export declare const findDeployment: (criteria: DeploymentFilter, deployments: SingletonDeployment[]) => SingletonDeployment | undefined; | ||
export declare const applyFilterDefaults: (filter?: DeploymentFilter | undefined) => DeploymentFilter; | ||
import { DeploymentFilter, SingletonDeployment } from './types'; | ||
export declare const findDeployment: (criteria: DeploymentFilter | undefined, deployments: SingletonDeployment[]) => SingletonDeployment | undefined; |
"use strict"; | ||
var __importDefault = (this && this.__importDefault) || function (mod) { | ||
return (mod && mod.__esModule) ? mod : { "default": mod }; | ||
}; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.applyFilterDefaults = exports.findDeployment = void 0; | ||
const findDeployment = (criteria, deployments) => deployments.find((deployment) => { | ||
if (criteria.version && deployment.version !== criteria.version) | ||
exports.findDeployment = void 0; | ||
const satisfies_1 = __importDefault(require("semver/functions/satisfies")); | ||
const DEFAULT_FILTER = { released: true }; | ||
const findDeployment = (criteria = DEFAULT_FILTER, deployments) => deployments.find((deployment) => { | ||
if (criteria.version && !satisfies_1.default(deployment.version, criteria.version)) | ||
return false; | ||
if (criteria.released && deployment.released != criteria.released) | ||
if (typeof criteria.released === 'boolean' && deployment.released != criteria.released) | ||
return false; | ||
@@ -14,7 +19,1 @@ if (criteria.network && !deployment.networkAddresses[criteria.network]) | ||
exports.findDeployment = findDeployment; | ||
const applyFilterDefaults = (filter) => { | ||
if (!filter) | ||
return { released: true }; | ||
return filter; | ||
}; | ||
exports.applyFilterDefaults = applyFilterDefaults; |
{ | ||
"name": "@gnosis.pm/safe-deployments", | ||
"version": "1.14.0", | ||
"version": "1.15.0", | ||
"description": "Collection of Safe singleton deployments", | ||
@@ -19,3 +19,4 @@ "homepage": "https://github.com/gnosis/safe-deployments/", | ||
"prepack": "yarn build", | ||
"prepare": "husky install" | ||
"prepare": "husky install", | ||
"test": "jest" | ||
}, | ||
@@ -36,3 +37,5 @@ "repository": { | ||
"devDependencies": { | ||
"@types/jest": "^27.5.1", | ||
"@types/node": "^14.14.21", | ||
"@types/semver": "^7.3.9", | ||
"@typescript-eslint/eslint-plugin": "^4.7.0", | ||
@@ -46,6 +49,11 @@ "@typescript-eslint/parser": "^4.7.0", | ||
"husky": "^5.1.3", | ||
"jest": "^28.1.0", | ||
"prettier": "^2.1.2", | ||
"ts-jest": "^28.0.2", | ||
"ts-node": "^9.1.1", | ||
"typescript": "^4.2.4" | ||
}, | ||
"dependencies": { | ||
"semver": "^7.3.7" | ||
} | ||
} |
@@ -11,3 +11,3 @@ { | ||
"42": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", | ||
"100": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A", | ||
"100": "0xb6029EA3B2c51D09a50B53CA8012FeEB05bDa35A" | ||
}, | ||
@@ -14,0 +14,0 @@ "abi": [ |
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' | ||
import { findDeployment } from './utils' | ||
// This is a sorted array (newest to oldest) | ||
@@ -14,3 +12,3 @@ const factoryDeployments: SingletonDeployment[] = [ | ||
export const getProxyFactoryDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { | ||
return findDeployment(applyFilterDefaults(filter), factoryDeployments) | ||
return findDeployment(filter, factoryDeployments) | ||
} |
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' | ||
import { findDeployment } from './utils' | ||
// This is a sorted array (by preference) | ||
const defaultCallbackHandlerDeployments: SingletonDeployment[] = [ | ||
DefaultCallbackHandler130 | ||
DefaultCallbackHandler130 | ||
] | ||
export const getDefaultCallbackHandlerDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { | ||
return findDeployment(applyFilterDefaults(filter), defaultCallbackHandlerDeployments) | ||
return findDeployment(filter, defaultCallbackHandlerDeployments) | ||
} | ||
@@ -17,7 +17,7 @@ | ||
const compatFallbackHandlerDeployments: SingletonDeployment[] = [ | ||
CompatibilityFallbackHandler | ||
CompatibilityFallbackHandler | ||
] | ||
export const getCompatibilityFallbackHandlerDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { | ||
return findDeployment(applyFilterDefaults(filter), compatFallbackHandlerDeployments) | ||
return findDeployment(filter, compatFallbackHandlerDeployments) | ||
} | ||
@@ -27,7 +27,7 @@ | ||
const fallbackHandlerDeployments: SingletonDeployment[] = [ | ||
CompatibilityFallbackHandler, DefaultCallbackHandler130 | ||
CompatibilityFallbackHandler, DefaultCallbackHandler130 | ||
] | ||
export const getFallbackHandlerDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { | ||
return findDeployment(applyFilterDefaults(filter), fallbackHandlerDeployments) | ||
return findDeployment(filter, fallbackHandlerDeployments) | ||
} |
@@ -7,11 +7,11 @@ import CreateCall130 from './assets/v1.3.0/create_call.json' | ||
import { DeploymentFilter, SingletonDeployment } from './types' | ||
import { applyFilterDefaults, findDeployment } from './utils' | ||
import { findDeployment } from './utils' | ||
// This is a sorted array (by preference, currently we use 111 in most cases) | ||
const multiSendDeployments: SingletonDeployment[] = [ | ||
MultiSend130, MultiSend111 | ||
MultiSend130, MultiSend111 | ||
] | ||
export const getMultiSendDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { | ||
return findDeployment(applyFilterDefaults(filter), multiSendDeployments) | ||
return findDeployment(filter, multiSendDeployments) | ||
} | ||
@@ -21,7 +21,7 @@ | ||
const multiSendCallOnlyDeployments: SingletonDeployment[] = [ | ||
MultiSendCallOnly130 | ||
MultiSendCallOnly130 | ||
] | ||
export const getMultiSendCallOnlyDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { | ||
return findDeployment(applyFilterDefaults(filter), multiSendCallOnlyDeployments) | ||
return findDeployment(filter, multiSendCallOnlyDeployments) | ||
} | ||
@@ -31,15 +31,15 @@ | ||
const createCallDeployments: SingletonDeployment[] = [ | ||
CreateCall130 | ||
CreateCall130 | ||
] | ||
export const getCreateCallDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { | ||
return findDeployment(applyFilterDefaults(filter), createCallDeployments) | ||
return findDeployment(filter, createCallDeployments) | ||
} | ||
const signMessageLibDeployments: SingletonDeployment[] = [ | ||
SignMessageLib130 | ||
SignMessageLib130 | ||
] | ||
export const getSignMessageLibDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { | ||
return findDeployment(applyFilterDefaults(filter), signMessageLibDeployments) | ||
return findDeployment(filter, signMessageLibDeployments) | ||
} |
@@ -7,20 +7,20 @@ import GnosisSafeL2130 from './assets/v1.3.0/gnosis_safe_l2.json' | ||
import { DeploymentFilter, SingletonDeployment } from './types' | ||
import { applyFilterDefaults, findDeployment } from './utils' | ||
import { findDeployment } from './utils' | ||
// This is a sorted array (newest to oldest) | ||
const safeDeployments: SingletonDeployment[] = [ | ||
GnosisSafe130, GnosisSafe120, GnosisSafe111, GnosisSafe100 | ||
// This is a sorted array (newest to oldest), exported for tests | ||
export const _safeDeployments: SingletonDeployment[] = [ | ||
GnosisSafe130, GnosisSafe120, GnosisSafe111, GnosisSafe100 | ||
] | ||
export const getSafeSingletonDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { | ||
return findDeployment(applyFilterDefaults(filter), safeDeployments) | ||
return findDeployment(filter, _safeDeployments) | ||
} | ||
// This is a sorted array (newest to oldest) | ||
const safeL2Deployments: SingletonDeployment[] = [ | ||
GnosisSafeL2130 | ||
// This is a sorted array (newest to oldest), exported for tests | ||
export const _safeL2Deployments: SingletonDeployment[] = [ | ||
GnosisSafeL2130 | ||
] | ||
export const getSafeL2SingletonDeployment = (filter?: DeploymentFilter): SingletonDeployment | undefined => { | ||
return findDeployment(applyFilterDefaults(filter), safeL2Deployments) | ||
return findDeployment(filter, _safeL2Deployments) | ||
} |
@@ -1,14 +0,12 @@ | ||
import { DeploymentFilter, SingletonDeployment } from "./types" | ||
import { DeploymentFilter, SingletonDeployment } from './types' | ||
import semverSatisfies from 'semver/functions/satisfies' | ||
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 | ||
const DEFAULT_FILTER: DeploymentFilter = { released: true } | ||
export const findDeployment = (criteria: DeploymentFilter = DEFAULT_FILTER, deployments: SingletonDeployment[]): SingletonDeployment | undefined => | ||
deployments.find((deployment) => { | ||
if (criteria.version && !semverSatisfies(deployment.version, criteria.version)) return false | ||
if (typeof criteria.released === 'boolean' && 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 | ||
} | ||
return true | ||
}) |
386183
3.9%60
9.09%13225
3.34%1
Infinity%16
33.33%+ Added
+ Added