@safe-global/protocol-kit 4.1.0 → 5.0.0
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/dist/src/Safe.d.ts +12 -17
- package/dist/src/Safe.js +159 -112
- package/dist/src/Safe.js.map +1 -1
- package/dist/src/SafeProvider.d.ts +11 -20
- package/dist/src/SafeProvider.js +141 -90
- package/dist/src/SafeProvider.js.map +1 -1
- package/dist/src/contracts/BaseContract.d.ts +26 -6
- package/dist/src/contracts/BaseContract.js +101 -14
- package/dist/src/contracts/BaseContract.js.map +1 -1
- package/dist/src/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerBaseContract.d.ts +5 -4
- package/dist/src/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerBaseContract.js +3 -2
- package/dist/src/contracts/CompatibilityFallbackHandler/CompatibilityFallbackHandlerBaseContract.js.map +1 -1
- package/dist/src/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandlerContract_v1_3_0.d.ts +4 -3
- package/dist/src/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandlerContract_v1_3_0.js +5 -5
- package/dist/src/contracts/CompatibilityFallbackHandler/v1.3.0/CompatibilityFallbackHandlerContract_v1_3_0.js.map +1 -1
- package/dist/src/contracts/CompatibilityFallbackHandler/v1.4.1/CompatibilityFallbackHandlerContract_v1_4_1.d.ts +4 -3
- package/dist/src/contracts/CompatibilityFallbackHandler/v1.4.1/CompatibilityFallbackHandlerContract_v1_4_1.js +5 -5
- package/dist/src/contracts/CompatibilityFallbackHandler/v1.4.1/CompatibilityFallbackHandlerContract_v1_4_1.js.map +1 -1
- package/dist/src/contracts/CreateCall/CreateCallBaseContract.d.ts +5 -4
- package/dist/src/contracts/CreateCall/CreateCallBaseContract.js +3 -2
- package/dist/src/contracts/CreateCall/CreateCallBaseContract.js.map +1 -1
- package/dist/src/contracts/CreateCall/v1.3.0/CreateCallContract_v1_3_0.d.ts +4 -3
- package/dist/src/contracts/CreateCall/v1.3.0/CreateCallContract_v1_3_0.js +7 -9
- package/dist/src/contracts/CreateCall/v1.3.0/CreateCallContract_v1_3_0.js.map +1 -1
- package/dist/src/contracts/CreateCall/v1.4.1/CreateCallContract_v1_4_1.d.ts +4 -3
- package/dist/src/contracts/CreateCall/v1.4.1/CreateCallContract_v1_4_1.js +7 -9
- package/dist/src/contracts/CreateCall/v1.4.1/CreateCallContract_v1_4_1.js.map +1 -1
- package/dist/src/contracts/MultiSend/MultiSendBaseContract.d.ts +5 -4
- package/dist/src/contracts/MultiSend/MultiSendBaseContract.js +3 -2
- package/dist/src/contracts/MultiSend/MultiSendBaseContract.js.map +1 -1
- package/dist/src/contracts/MultiSend/MultiSendCallOnlyBaseContract.d.ts +5 -4
- package/dist/src/contracts/MultiSend/MultiSendCallOnlyBaseContract.js +3 -2
- package/dist/src/contracts/MultiSend/MultiSendCallOnlyBaseContract.js.map +1 -1
- package/dist/src/contracts/MultiSend/v1.1.1/MultiSendContract_v1_1_1.d.ts +4 -3
- package/dist/src/contracts/MultiSend/v1.1.1/MultiSendContract_v1_1_1.js +5 -5
- package/dist/src/contracts/MultiSend/v1.1.1/MultiSendContract_v1_1_1.js.map +1 -1
- package/dist/src/contracts/MultiSend/v1.3.0/MultiSendCallOnlyContract_v1_3_0.d.ts +4 -3
- package/dist/src/contracts/MultiSend/v1.3.0/MultiSendCallOnlyContract_v1_3_0.js +5 -5
- package/dist/src/contracts/MultiSend/v1.3.0/MultiSendCallOnlyContract_v1_3_0.js.map +1 -1
- package/dist/src/contracts/MultiSend/v1.3.0/MultiSendContract_v1_3_0.d.ts +4 -3
- package/dist/src/contracts/MultiSend/v1.3.0/MultiSendContract_v1_3_0.js +5 -5
- package/dist/src/contracts/MultiSend/v1.3.0/MultiSendContract_v1_3_0.js.map +1 -1
- package/dist/src/contracts/MultiSend/v1.4.1/MultiSendCallOnlyContract_v1_4_1.d.ts +4 -3
- package/dist/src/contracts/MultiSend/v1.4.1/MultiSendCallOnlyContract_v1_4_1.js +5 -5
- package/dist/src/contracts/MultiSend/v1.4.1/MultiSendCallOnlyContract_v1_4_1.js.map +1 -1
- package/dist/src/contracts/MultiSend/v1.4.1/MultiSendContract_v1_4_1.d.ts +4 -3
- package/dist/src/contracts/MultiSend/v1.4.1/MultiSendContract_v1_4_1.js +5 -5
- package/dist/src/contracts/MultiSend/v1.4.1/MultiSendContract_v1_4_1.js.map +1 -1
- package/dist/src/contracts/Safe/SafeBaseContract.d.ts +5 -4
- package/dist/src/contracts/Safe/SafeBaseContract.js +3 -2
- package/dist/src/contracts/Safe/SafeBaseContract.js.map +1 -1
- package/dist/src/contracts/Safe/v1.0.0/SafeContract_v1_0_0.d.ts +7 -11
- package/dist/src/contracts/Safe/v1.0.0/SafeContract_v1_0_0.js +64 -42
- package/dist/src/contracts/Safe/v1.0.0/SafeContract_v1_0_0.js.map +1 -1
- package/dist/src/contracts/Safe/v1.1.1/SafeContract_v1_1_1.d.ts +4 -9
- package/dist/src/contracts/Safe/v1.1.1/SafeContract_v1_1_1.js +61 -39
- package/dist/src/contracts/Safe/v1.1.1/SafeContract_v1_1_1.js.map +1 -1
- package/dist/src/contracts/Safe/v1.2.0/SafeContract_v1_2_0.d.ts +5 -10
- package/dist/src/contracts/Safe/v1.2.0/SafeContract_v1_2_0.js +63 -41
- package/dist/src/contracts/Safe/v1.2.0/SafeContract_v1_2_0.js.map +1 -1
- package/dist/src/contracts/Safe/v1.3.0/SafeContract_v1_3_0.d.ts +5 -10
- package/dist/src/contracts/Safe/v1.3.0/SafeContract_v1_3_0.js +63 -41
- package/dist/src/contracts/Safe/v1.3.0/SafeContract_v1_3_0.js.map +1 -1
- package/dist/src/contracts/Safe/v1.4.1/SafeContract_v1_4_1.d.ts +5 -10
- package/dist/src/contracts/Safe/v1.4.1/SafeContract_v1_4_1.js +63 -41
- package/dist/src/contracts/Safe/v1.4.1/SafeContract_v1_4_1.js.map +1 -1
- package/dist/src/contracts/SafeProxyFactory/SafeProxyFactoryBaseContract.d.ts +5 -7
- package/dist/src/contracts/SafeProxyFactory/SafeProxyFactoryBaseContract.js +3 -2
- package/dist/src/contracts/SafeProxyFactory/SafeProxyFactoryBaseContract.js.map +1 -1
- package/dist/src/contracts/SafeProxyFactory/v1.0.0/SafeProxyFactoryContract_v1_0_0.d.ts +5 -11
- package/dist/src/contracts/SafeProxyFactory/v1.0.0/SafeProxyFactoryContract_v1_0_0.js +9 -38
- package/dist/src/contracts/SafeProxyFactory/v1.0.0/SafeProxyFactoryContract_v1_0_0.js.map +1 -1
- package/dist/src/contracts/SafeProxyFactory/v1.1.1/SafeProxyFactoryContract_v1_1_1.d.ts +6 -12
- package/dist/src/contracts/SafeProxyFactory/v1.1.1/SafeProxyFactoryContract_v1_1_1.js +12 -41
- package/dist/src/contracts/SafeProxyFactory/v1.1.1/SafeProxyFactoryContract_v1_1_1.js.map +1 -1
- package/dist/src/contracts/SafeProxyFactory/v1.3.0/SafeProxyFactoryContract_v1_3_0.d.ts +5 -11
- package/dist/src/contracts/SafeProxyFactory/v1.3.0/SafeProxyFactoryContract_v1_3_0.js +11 -40
- package/dist/src/contracts/SafeProxyFactory/v1.3.0/SafeProxyFactoryContract_v1_3_0.js.map +1 -1
- package/dist/src/contracts/SafeProxyFactory/v1.4.1/SafeProxyFactoryContract_v1_4_1.d.ts +5 -11
- package/dist/src/contracts/SafeProxyFactory/v1.4.1/SafeProxyFactoryContract_v1_4_1.js +10 -39
- package/dist/src/contracts/SafeProxyFactory/v1.4.1/SafeProxyFactoryContract_v1_4_1.js.map +1 -1
- package/dist/src/contracts/SafeWebAuthnSharedSigner/SafeWebAuthnSharedSignerBaseContract.d.ts +5 -7
- package/dist/src/contracts/SafeWebAuthnSharedSigner/SafeWebAuthnSharedSignerBaseContract.js +3 -2
- package/dist/src/contracts/SafeWebAuthnSharedSigner/SafeWebAuthnSharedSignerBaseContract.js.map +1 -1
- package/dist/src/contracts/SafeWebAuthnSharedSigner/v0.2.1/SafeWebAuthnSharedSignerContract_v0_2_1.d.ts +4 -3
- package/dist/src/contracts/SafeWebAuthnSharedSigner/v0.2.1/SafeWebAuthnSharedSignerContract_v0_2_1.js +9 -9
- package/dist/src/contracts/SafeWebAuthnSharedSigner/v0.2.1/SafeWebAuthnSharedSignerContract_v0_2_1.js.map +1 -1
- package/dist/src/contracts/SafeWebAuthnSignerFactory/SafeWebAuthnSignerFactoryBaseContract.d.ts +5 -7
- package/dist/src/contracts/SafeWebAuthnSignerFactory/SafeWebAuthnSignerFactoryBaseContract.js +3 -2
- package/dist/src/contracts/SafeWebAuthnSignerFactory/SafeWebAuthnSignerFactoryBaseContract.js.map +1 -1
- package/dist/src/contracts/SafeWebAuthnSignerFactory/v0.2.1/SafeWebAuthnSignerFactoryContract_v0_2_1.d.ts +4 -3
- package/dist/src/contracts/SafeWebAuthnSignerFactory/v0.2.1/SafeWebAuthnSignerFactoryContract_v0_2_1.js +8 -8
- package/dist/src/contracts/SafeWebAuthnSignerFactory/v0.2.1/SafeWebAuthnSignerFactoryContract_v0_2_1.js.map +1 -1
- package/dist/src/contracts/SignMessageLib/SignMessageLibBaseContract.d.ts +5 -4
- package/dist/src/contracts/SignMessageLib/SignMessageLibBaseContract.js +3 -2
- package/dist/src/contracts/SignMessageLib/SignMessageLibBaseContract.js.map +1 -1
- package/dist/src/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_v1_3_0.d.ts +4 -3
- package/dist/src/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_v1_3_0.js +7 -8
- package/dist/src/contracts/SignMessageLib/v1.3.0/SignMessageLibContract_v1_3_0.js.map +1 -1
- package/dist/src/contracts/SignMessageLib/v1.4.1/SignMessageLibContract_v1_4_1.d.ts +4 -3
- package/dist/src/contracts/SignMessageLib/v1.4.1/SignMessageLibContract_v1_4_1.js +7 -8
- package/dist/src/contracts/SignMessageLib/v1.4.1/SignMessageLibContract_v1_4_1.js.map +1 -1
- package/dist/src/contracts/SimulateTxAccessor/SimulateTxAccessorBaseContract.d.ts +5 -4
- package/dist/src/contracts/SimulateTxAccessor/SimulateTxAccessorBaseContract.js +3 -2
- package/dist/src/contracts/SimulateTxAccessor/SimulateTxAccessorBaseContract.js.map +1 -1
- package/dist/src/contracts/SimulateTxAccessor/v1.3.0/SimulateTxAccessorContract_v1_3_0.d.ts +4 -3
- package/dist/src/contracts/SimulateTxAccessor/v1.3.0/SimulateTxAccessorContract_v1_3_0.js +9 -7
- package/dist/src/contracts/SimulateTxAccessor/v1.3.0/SimulateTxAccessorContract_v1_3_0.js.map +1 -1
- package/dist/src/contracts/SimulateTxAccessor/v1.4.1/SimulateTxAccessorContract_v1_4_1.d.ts +4 -3
- package/dist/src/contracts/SimulateTxAccessor/v1.4.1/SimulateTxAccessorContract_v1_4_1.js +9 -7
- package/dist/src/contracts/SimulateTxAccessor/v1.4.1/SimulateTxAccessorContract_v1_4_1.js.map +1 -1
- package/dist/src/contracts/config.d.ts +8 -1
- package/dist/src/contracts/config.js +47 -16
- package/dist/src/contracts/config.js.map +1 -1
- package/dist/src/contracts/constants.d.ts +4 -3
- package/dist/src/contracts/constants.js +2 -1
- package/dist/src/contracts/constants.js.map +1 -1
- package/dist/src/contracts/contractInstances.d.ts +13 -12
- package/dist/src/contracts/contractInstances.js +34 -34
- package/dist/src/contracts/contractInstances.js.map +1 -1
- package/dist/src/contracts/safeDeploymentContracts.d.ts +6 -5
- package/dist/src/contracts/safeDeploymentContracts.js +26 -66
- package/dist/src/contracts/safeDeploymentContracts.js.map +1 -1
- package/dist/src/contracts/utils.d.ts +35 -13
- package/dist/src/contracts/utils.js +136 -55
- package/dist/src/contracts/utils.js.map +1 -1
- package/dist/src/index.d.ts +10 -6
- package/dist/src/index.js +7 -9
- package/dist/src/index.js.map +1 -1
- package/dist/src/managers/contractManager.js +12 -17
- package/dist/src/managers/contractManager.js.map +1 -1
- package/dist/src/managers/fallbackHandlerManager.js +5 -4
- package/dist/src/managers/fallbackHandlerManager.js.map +1 -1
- package/dist/src/managers/guardManager.js +5 -4
- package/dist/src/managers/guardManager.js.map +1 -1
- package/dist/src/types/contracts.d.ts +13 -13
- package/dist/src/types/index.d.ts +0 -1
- package/dist/src/types/index.js +0 -1
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/safeConfig.d.ts +3 -1
- package/dist/src/types/safeProvider.d.ts +33 -5
- package/dist/src/types/transactions.d.ts +1 -1
- package/dist/src/utils/address.d.ts +1 -1
- package/dist/src/utils/address.js +1 -1
- package/dist/src/utils/address.js.map +1 -1
- package/dist/src/utils/block.d.ts +6 -0
- package/dist/src/utils/block.js +14 -0
- package/dist/src/utils/block.js.map +1 -0
- package/dist/src/utils/constants.d.ts +4 -3
- package/dist/src/utils/constants.js +2 -1
- package/dist/src/utils/constants.js.map +1 -1
- package/dist/src/utils/eip-3770/config.js +32 -1
- package/dist/src/utils/eip-3770/config.js.map +1 -1
- package/dist/src/utils/eip-3770/index.d.ts +1 -1
- package/dist/src/utils/eip-3770/index.js +2 -3
- package/dist/src/utils/eip-3770/index.js.map +1 -1
- package/dist/src/utils/eip-712/encode.d.ts +3 -0
- package/dist/src/utils/eip-712/encode.js +127 -0
- package/dist/src/utils/eip-712/encode.js.map +1 -0
- package/dist/src/utils/eip-712/index.d.ts +1 -1
- package/dist/src/utils/eip-712/index.js +5 -7
- package/dist/src/utils/eip-712/index.js.map +1 -1
- package/dist/src/utils/erc-20/index.d.ts +1 -1
- package/dist/src/utils/erc-20/index.js +12 -5
- package/dist/src/utils/erc-20/index.js.map +1 -1
- package/dist/src/utils/messages/SafeMessage.d.ts +1 -1
- package/dist/src/utils/passkeys/PasskeyClient.d.ts +5 -0
- package/dist/src/utils/passkeys/PasskeyClient.js +156 -0
- package/dist/src/utils/passkeys/PasskeyClient.js.map +1 -0
- package/dist/src/utils/passkeys/createPasskeyDeploymentTransaction.d.ts +2 -1
- package/dist/src/utils/passkeys/createPasskeyDeploymentTransaction.js +12 -12
- package/dist/src/utils/passkeys/createPasskeyDeploymentTransaction.js.map +1 -1
- package/dist/src/utils/passkeys/extractPasskeyData.d.ts +1 -2
- package/dist/src/utils/passkeys/extractPasskeyData.js +8 -15
- package/dist/src/utils/passkeys/extractPasskeyData.js.map +1 -1
- package/dist/src/utils/passkeys/getPasskeyOwnerAddress.js +10 -3
- package/dist/src/utils/passkeys/getPasskeyOwnerAddress.js.map +1 -1
- package/dist/src/utils/passkeys/index.d.ts +1 -1
- package/dist/src/utils/passkeys/index.js +1 -1
- package/dist/src/utils/passkeys/isSharedSigner.d.ts +2 -3
- package/dist/src/utils/passkeys/isSharedSigner.js +6 -5
- package/dist/src/utils/passkeys/isSharedSigner.js.map +1 -1
- package/dist/src/utils/provider.d.ts +3 -0
- package/dist/src/utils/provider.js +12 -0
- package/dist/src/utils/provider.js.map +1 -0
- package/dist/src/utils/safeVersions.js +2 -2
- package/dist/src/utils/safeVersions.js.map +1 -1
- package/dist/src/utils/signatures/SafeSignature.d.ts +1 -1
- package/dist/src/utils/signatures/utils.d.ts +4 -4
- package/dist/src/utils/signatures/utils.js +34 -20
- package/dist/src/utils/signatures/utils.js.map +1 -1
- package/dist/src/utils/transactions/SafeTransaction.d.ts +1 -1
- package/dist/src/utils/transactions/SafeTransaction.js.map +1 -1
- package/dist/src/utils/transactions/gas.d.ts +1 -1
- package/dist/src/utils/transactions/gas.js +37 -64
- package/dist/src/utils/transactions/gas.js.map +1 -1
- package/dist/src/utils/transactions/types.d.ts +17 -1
- package/dist/src/utils/transactions/utils.d.ts +11 -2
- package/dist/src/utils/transactions/utils.js +117 -27
- package/dist/src/utils/transactions/utils.js.map +1 -1
- package/dist/src/utils/types.d.ts +4 -0
- package/dist/src/utils/types.js +59 -1
- package/dist/src/utils/types.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +26 -35
- package/dist/src/SafeFactory.d.ts +0 -15
- package/dist/src/SafeFactory.js +0 -136
- package/dist/src/SafeFactory.js.map +0 -1
- package/dist/src/types/safeFactory.d.ts +0 -31
- package/dist/src/types/safeFactory.js +0 -3
- package/dist/src/types/safeFactory.js.map +0 -1
- package/dist/src/utils/passkeys/PasskeySigner.d.ts +0 -63
- package/dist/src/utils/passkeys/PasskeySigner.js +0 -163
- package/dist/src/utils/passkeys/PasskeySigner.js.map +0 -1
|
@@ -1,40 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.getSafeWebAuthnSharedSignerContract = exports.getSafeWebAuthnSignerFactoryContract = exports.getSimulateTxAccessorContract = exports.getCreateCallContract = exports.getSignMessageLibContract = exports.getMultiSendCallOnlyContract = exports.getMultiSendContract = exports.getCompatibilityFallbackHandlerContract = exports.
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
customContractAbi: customContracts?.safeSingletonAbi,
|
|
9
|
-
isL1SafeSingleton
|
|
10
|
-
});
|
|
11
|
-
const isContractDeployed = await safeProvider.isContractDeployed(await safeContract.getAddress());
|
|
3
|
+
exports.getSafeWebAuthnSharedSignerContract = exports.getSafeWebAuthnSignerFactoryContract = exports.getSimulateTxAccessorContract = exports.getCreateCallContract = exports.getSignMessageLibContract = exports.getMultiSendCallOnlyContract = exports.getMultiSendContract = exports.getCompatibilityFallbackHandlerContract = exports.getSafeProxyFactoryContract = exports.getSafeContract = void 0;
|
|
4
|
+
const contractInstances_1 = require("../contracts/contractInstances");
|
|
5
|
+
async function getSafeContract({ safeProvider, safeVersion, customSafeAddress, isL1SafeSingleton, customContracts, deploymentType }) {
|
|
6
|
+
const safeContract = await (0, contractInstances_1.getSafeContractInstance)(safeVersion, safeProvider, customSafeAddress ?? customContracts?.safeSingletonAddress, customContracts?.safeSingletonAbi, isL1SafeSingleton, deploymentType);
|
|
7
|
+
const isContractDeployed = await safeProvider.isContractDeployed(safeContract.getAddress());
|
|
12
8
|
if (!isContractDeployed) {
|
|
13
9
|
throw new Error('SafeProxy contract is not deployed on the current network');
|
|
14
10
|
}
|
|
15
11
|
return safeContract;
|
|
16
12
|
}
|
|
17
13
|
exports.getSafeContract = getSafeContract;
|
|
18
|
-
async function
|
|
19
|
-
const safeProxyFactoryContract = await
|
|
20
|
-
|
|
21
|
-
customContractAddress: customContracts?.safeProxyFactoryAddress,
|
|
22
|
-
customContractAbi: customContracts?.safeProxyFactoryAbi
|
|
23
|
-
});
|
|
24
|
-
const isContractDeployed = await safeProvider.isContractDeployed(await safeProxyFactoryContract.getAddress());
|
|
14
|
+
async function getSafeProxyFactoryContract({ safeProvider, safeVersion, customContracts, deploymentType }) {
|
|
15
|
+
const safeProxyFactoryContract = await (0, contractInstances_1.getSafeProxyFactoryContractInstance)(safeVersion, safeProvider, customContracts?.safeProxyFactoryAddress, customContracts?.safeProxyFactoryAbi, deploymentType);
|
|
16
|
+
const isContractDeployed = await safeProvider.isContractDeployed(safeProxyFactoryContract.getAddress());
|
|
25
17
|
if (!isContractDeployed) {
|
|
26
18
|
throw new Error('SafeProxyFactory contract is not deployed on the current network');
|
|
27
19
|
}
|
|
28
20
|
return safeProxyFactoryContract;
|
|
29
21
|
}
|
|
30
|
-
exports.
|
|
31
|
-
async function getCompatibilityFallbackHandlerContract({ safeProvider, safeVersion, customContracts }) {
|
|
32
|
-
const fallbackHandlerContract = await
|
|
33
|
-
|
|
34
|
-
customContractAddress: customContracts?.fallbackHandlerAddress,
|
|
35
|
-
customContractAbi: customContracts?.fallbackHandlerAbi
|
|
36
|
-
});
|
|
37
|
-
const isContractDeployed = await safeProvider.isContractDeployed(await fallbackHandlerContract.getAddress());
|
|
22
|
+
exports.getSafeProxyFactoryContract = getSafeProxyFactoryContract;
|
|
23
|
+
async function getCompatibilityFallbackHandlerContract({ safeProvider, safeVersion, customContracts, deploymentType }) {
|
|
24
|
+
const fallbackHandlerContract = await (0, contractInstances_1.getCompatibilityFallbackHandlerContractInstance)(safeVersion, safeProvider, customContracts?.fallbackHandlerAddress, customContracts?.fallbackHandlerAbi, deploymentType);
|
|
25
|
+
const isContractDeployed = await safeProvider.isContractDeployed(fallbackHandlerContract.getAddress());
|
|
38
26
|
if (!isContractDeployed) {
|
|
39
27
|
throw new Error('CompatibilityFallbackHandler contract is not deployed on the current network');
|
|
40
28
|
}
|
|
@@ -42,12 +30,8 @@ async function getCompatibilityFallbackHandlerContract({ safeProvider, safeVersi
|
|
|
42
30
|
}
|
|
43
31
|
exports.getCompatibilityFallbackHandlerContract = getCompatibilityFallbackHandlerContract;
|
|
44
32
|
async function getMultiSendContract({ safeProvider, safeVersion, customContracts }) {
|
|
45
|
-
const multiSendContract = await
|
|
46
|
-
|
|
47
|
-
customContractAddress: customContracts?.multiSendAddress,
|
|
48
|
-
customContractAbi: customContracts?.multiSendAbi
|
|
49
|
-
});
|
|
50
|
-
const isContractDeployed = await safeProvider.isContractDeployed(await multiSendContract.getAddress());
|
|
33
|
+
const multiSendContract = await (0, contractInstances_1.getMultiSendContractInstance)(safeVersion, safeProvider, customContracts?.multiSendAddress, customContracts?.multiSendAbi);
|
|
34
|
+
const isContractDeployed = await safeProvider.isContractDeployed(multiSendContract.getAddress());
|
|
51
35
|
if (!isContractDeployed) {
|
|
52
36
|
throw new Error('MultiSend contract is not deployed on the current network');
|
|
53
37
|
}
|
|
@@ -55,12 +39,8 @@ async function getMultiSendContract({ safeProvider, safeVersion, customContracts
|
|
|
55
39
|
}
|
|
56
40
|
exports.getMultiSendContract = getMultiSendContract;
|
|
57
41
|
async function getMultiSendCallOnlyContract({ safeProvider, safeVersion, customContracts }) {
|
|
58
|
-
const multiSendCallOnlyContract = await
|
|
59
|
-
|
|
60
|
-
customContractAddress: customContracts?.multiSendCallOnlyAddress,
|
|
61
|
-
customContractAbi: customContracts?.multiSendCallOnlyAbi
|
|
62
|
-
});
|
|
63
|
-
const isContractDeployed = await safeProvider.isContractDeployed(await multiSendCallOnlyContract.getAddress());
|
|
42
|
+
const multiSendCallOnlyContract = await (0, contractInstances_1.getMultiSendCallOnlyContractInstance)(safeVersion, safeProvider, customContracts?.multiSendCallOnlyAddress, customContracts?.multiSendCallOnlyAbi);
|
|
43
|
+
const isContractDeployed = await safeProvider.isContractDeployed(multiSendCallOnlyContract.getAddress());
|
|
64
44
|
if (!isContractDeployed) {
|
|
65
45
|
throw new Error('MultiSendCallOnly contract is not deployed on the current network');
|
|
66
46
|
}
|
|
@@ -68,12 +48,8 @@ async function getMultiSendCallOnlyContract({ safeProvider, safeVersion, customC
|
|
|
68
48
|
}
|
|
69
49
|
exports.getMultiSendCallOnlyContract = getMultiSendCallOnlyContract;
|
|
70
50
|
async function getSignMessageLibContract({ safeProvider, safeVersion, customContracts }) {
|
|
71
|
-
const signMessageLibContract = await
|
|
72
|
-
|
|
73
|
-
customContractAddress: customContracts?.signMessageLibAddress,
|
|
74
|
-
customContractAbi: customContracts?.signMessageLibAbi
|
|
75
|
-
});
|
|
76
|
-
const isContractDeployed = await safeProvider.isContractDeployed(await signMessageLibContract.getAddress());
|
|
51
|
+
const signMessageLibContract = await (0, contractInstances_1.getSignMessageLibContractInstance)(safeVersion, safeProvider, customContracts?.signMessageLibAddress, customContracts?.signMessageLibAbi);
|
|
52
|
+
const isContractDeployed = await safeProvider.isContractDeployed(signMessageLibContract.getAddress());
|
|
77
53
|
if (!isContractDeployed) {
|
|
78
54
|
throw new Error('SignMessageLib contract is not deployed on the current network');
|
|
79
55
|
}
|
|
@@ -81,12 +57,8 @@ async function getSignMessageLibContract({ safeProvider, safeVersion, customCont
|
|
|
81
57
|
}
|
|
82
58
|
exports.getSignMessageLibContract = getSignMessageLibContract;
|
|
83
59
|
async function getCreateCallContract({ safeProvider, safeVersion, customContracts }) {
|
|
84
|
-
const createCallContract = await
|
|
85
|
-
|
|
86
|
-
customContractAddress: customContracts?.createCallAddress,
|
|
87
|
-
customContractAbi: customContracts?.createCallAbi
|
|
88
|
-
});
|
|
89
|
-
const isContractDeployed = await safeProvider.isContractDeployed(await createCallContract.getAddress());
|
|
60
|
+
const createCallContract = await (0, contractInstances_1.getCreateCallContractInstance)(safeVersion, safeProvider, customContracts?.createCallAddress, customContracts?.createCallAbi);
|
|
61
|
+
const isContractDeployed = await safeProvider.isContractDeployed(createCallContract.getAddress());
|
|
90
62
|
if (!isContractDeployed) {
|
|
91
63
|
throw new Error('CreateCall contract is not deployed on the current network');
|
|
92
64
|
}
|
|
@@ -94,12 +66,8 @@ async function getCreateCallContract({ safeProvider, safeVersion, customContract
|
|
|
94
66
|
}
|
|
95
67
|
exports.getCreateCallContract = getCreateCallContract;
|
|
96
68
|
async function getSimulateTxAccessorContract({ safeProvider, safeVersion, customContracts }) {
|
|
97
|
-
const simulateTxAccessorContract = await
|
|
98
|
-
|
|
99
|
-
customContractAddress: customContracts?.simulateTxAccessorAddress,
|
|
100
|
-
customContractAbi: customContracts?.simulateTxAccessorAbi
|
|
101
|
-
});
|
|
102
|
-
const isContractDeployed = await safeProvider.isContractDeployed(await simulateTxAccessorContract.getAddress());
|
|
69
|
+
const simulateTxAccessorContract = await (0, contractInstances_1.getSimulateTxAccessorContractInstance)(safeVersion, safeProvider, customContracts?.simulateTxAccessorAddress, customContracts?.simulateTxAccessorAbi);
|
|
70
|
+
const isContractDeployed = await safeProvider.isContractDeployed(simulateTxAccessorContract.getAddress());
|
|
103
71
|
if (!isContractDeployed) {
|
|
104
72
|
throw new Error('SimulateTxAccessor contract is not deployed on the current network');
|
|
105
73
|
}
|
|
@@ -107,12 +75,8 @@ async function getSimulateTxAccessorContract({ safeProvider, safeVersion, custom
|
|
|
107
75
|
}
|
|
108
76
|
exports.getSimulateTxAccessorContract = getSimulateTxAccessorContract;
|
|
109
77
|
async function getSafeWebAuthnSignerFactoryContract({ safeProvider, safeVersion, customContracts }) {
|
|
110
|
-
const safeWebAuthnSignerFactoryContract = await
|
|
111
|
-
|
|
112
|
-
customContractAddress: customContracts?.safeWebAuthnSignerFactoryAddress,
|
|
113
|
-
customContractAbi: customContracts?.safeWebAuthnSignerFactoryAbi
|
|
114
|
-
});
|
|
115
|
-
const isContractDeployed = await safeProvider.isContractDeployed(await safeWebAuthnSignerFactoryContract.getAddress());
|
|
78
|
+
const safeWebAuthnSignerFactoryContract = await (0, contractInstances_1.getSafeWebAuthnSignerFactoryContractInstance)(safeVersion, safeProvider, customContracts?.safeWebAuthnSignerFactoryAddress, customContracts?.safeWebAuthnSignerFactoryAbi);
|
|
79
|
+
const isContractDeployed = await safeProvider.isContractDeployed(safeWebAuthnSignerFactoryContract.getAddress());
|
|
116
80
|
if (!isContractDeployed) {
|
|
117
81
|
throw new Error('safeWebAuthnSignerFactory contract is not deployed on the current network');
|
|
118
82
|
}
|
|
@@ -120,12 +84,8 @@ async function getSafeWebAuthnSignerFactoryContract({ safeProvider, safeVersion,
|
|
|
120
84
|
}
|
|
121
85
|
exports.getSafeWebAuthnSignerFactoryContract = getSafeWebAuthnSignerFactoryContract;
|
|
122
86
|
async function getSafeWebAuthnSharedSignerContract({ safeProvider, safeVersion, customContracts }) {
|
|
123
|
-
const safeWebAuthnSharedSignerContract = await
|
|
124
|
-
|
|
125
|
-
customContractAddress: customContracts?.safeWebAuthnSharedSignerAddress,
|
|
126
|
-
customContractAbi: customContracts?.safeWebAuthnSharedSignerAbi
|
|
127
|
-
});
|
|
128
|
-
const isContractDeployed = await safeProvider.isContractDeployed(await safeWebAuthnSharedSignerContract.getAddress());
|
|
87
|
+
const safeWebAuthnSharedSignerContract = await (0, contractInstances_1.getSafeWebAuthnSharedSignerContractInstance)(safeVersion, safeProvider, customContracts?.safeWebAuthnSharedSignerAddress, customContracts?.safeWebAuthnSharedSignerAbi);
|
|
88
|
+
const isContractDeployed = await safeProvider.isContractDeployed(safeWebAuthnSharedSignerContract.getAddress());
|
|
129
89
|
if (!isContractDeployed) {
|
|
130
90
|
throw new Error('safeWebAuthnSharedSigner contract is not deployed on the current network');
|
|
131
91
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"safeDeploymentContracts.js","sourceRoot":"","sources":["../../../src/contracts/safeDeploymentContracts.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"safeDeploymentContracts.js","sourceRoot":"","sources":["../../../src/contracts/safeDeploymentContracts.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
import {
|
|
3
|
-
import { SafeProxyFactoryContractType, SafeVersion, TransactionOptions, TransactionResult } from '@safe-global/
|
|
4
|
-
import { ContractNetworkConfig, SafeAccountConfig, SafeContractImplementationType, SafeDeploymentConfig } from '../types';
|
|
1
|
+
import { Hash, Hex, Client, WalletClient, FormattedTransactionReceipt } from 'viem';
|
|
2
|
+
import { DeploymentType } from '../types';
|
|
3
|
+
import { SafeProxyFactoryContractType, SafeVersion, TransactionOptions, TransactionResult } from '@safe-global/types-kit';
|
|
4
|
+
import { ContractNetworkConfig, ExternalClient, SafeAccountConfig, SafeContractImplementationType, SafeDeploymentConfig } from '../types';
|
|
5
5
|
import SafeProvider from '../SafeProvider';
|
|
6
6
|
export declare const PREDETERMINED_SALT_NONCE = "0xb1073742015cbcf5a3a4d9d1ae33ecf619439710b89475f92e2abd2117e90f90";
|
|
7
7
|
export interface PredictSafeAddressProps {
|
|
@@ -18,9 +18,20 @@ export interface encodeSetupCallDataProps {
|
|
|
18
18
|
safeContract: SafeContractImplementationType;
|
|
19
19
|
customContracts?: ContractNetworkConfig;
|
|
20
20
|
customSafeVersion?: SafeVersion;
|
|
21
|
+
deploymentType?: DeploymentType;
|
|
21
22
|
}
|
|
22
23
|
export declare function encodeCreateProxyWithNonce(safeProxyFactoryContract: SafeProxyFactoryContractType, safeSingletonAddress: string, initializer: string, salt?: string): string;
|
|
23
|
-
export declare function encodeSetupCallData({ safeProvider, safeAccountConfig, safeContract, customContracts, customSafeVersion }: encodeSetupCallDataProps): Promise<string>;
|
|
24
|
+
export declare function encodeSetupCallData({ safeProvider, safeAccountConfig, safeContract, customContracts, customSafeVersion, deploymentType }: encodeSetupCallDataProps): Promise<string>;
|
|
25
|
+
/**
|
|
26
|
+
* Retrieves the version of the Safe contract associated with the given Safe address from the blockchain.
|
|
27
|
+
*
|
|
28
|
+
* @param {SafeProvider} safeProvider The provider to use when reading the contract.
|
|
29
|
+
* @param {string} safeAddress The address of the Safe contract for which to retrieve the version.
|
|
30
|
+
*
|
|
31
|
+
* @returns {Promise<SafeVersion>} A promise resolving to the version of the Safe contract.
|
|
32
|
+
* @throws when fetching an address which doesn't have a Safe deployed in it.
|
|
33
|
+
*/
|
|
34
|
+
export declare function getSafeContractVersion(safeProvider: SafeProvider, safeAddress: string): Promise<SafeVersion>;
|
|
24
35
|
/**
|
|
25
36
|
* Provides a chain-specific default salt nonce for generating unique addresses
|
|
26
37
|
* for the same Safe configuration across different chains.
|
|
@@ -33,23 +44,34 @@ export declare function getPredictedSafeAddressInitCode({ safeProvider, chainId,
|
|
|
33
44
|
export declare function predictSafeAddress({ safeProvider, chainId, safeAccountConfig, safeDeploymentConfig, isL1SafeSingleton, customContracts }: PredictSafeAddressProps): Promise<string>;
|
|
34
45
|
export declare const validateSafeAccountConfig: ({ owners, threshold }: SafeAccountConfig) => void;
|
|
35
46
|
export declare const validateSafeDeploymentConfig: ({ saltNonce }: SafeDeploymentConfig) => void;
|
|
47
|
+
/**
|
|
48
|
+
* Returns the address of a SafeProxy Address from the transaction receipt.
|
|
49
|
+
*
|
|
50
|
+
* This function looks for a ProxyCreation event in the transaction receipt logs to get address of the deployed SafeProxy.
|
|
51
|
+
*
|
|
52
|
+
* @param {FormattedTransactionReceipt} txReceipt - The transaction receipt containing logs.
|
|
53
|
+
* @param {safeVersion} safeVersion - The Safe Version.
|
|
54
|
+
* @returns {string} - The address of the deployed SafeProxy.
|
|
55
|
+
* @throws {Error} - Throws an error if the SafeProxy was not deployed correctly.
|
|
56
|
+
*/
|
|
57
|
+
export declare function getSafeAddressFromDeploymentTx(txReceipt: FormattedTransactionReceipt, safeVersion: SafeVersion): string;
|
|
36
58
|
/**
|
|
37
59
|
* Generates a zkSync Era address. zkSync Era uses a distinct address derivation method compared to Ethereum
|
|
38
|
-
* see: https://
|
|
60
|
+
* see: https://docs.zksync.io/build/developer-reference/ethereum-differences/evm-instructions/#address-derivation
|
|
39
61
|
*
|
|
40
|
-
* @param {string} from - The sender's address.
|
|
62
|
+
* @param {`string`} from - The sender's address.
|
|
41
63
|
* @param {SafeVersion} safeVersion - The version of the safe.
|
|
42
|
-
* @param {
|
|
43
|
-
* @param {string} input - Additional input data for the derivation.
|
|
64
|
+
* @param {`0x${string}`} salt - The salt used for address derivation.
|
|
65
|
+
* @param {`0x${string}`} input - Additional input data for the derivation.
|
|
44
66
|
*
|
|
45
67
|
* @returns {string} The derived zkSync Era address.
|
|
46
68
|
*/
|
|
47
|
-
export declare function zkSyncEraCreate2Address(from: string, safeVersion: SafeVersion, salt:
|
|
48
|
-
export declare function toTxResult(
|
|
49
|
-
export declare function isTypedDataSigner(signer: any): signer is
|
|
69
|
+
export declare function zkSyncEraCreate2Address(from: string, safeVersion: SafeVersion, salt: Hex, input: Hex): string;
|
|
70
|
+
export declare function toTxResult(runner: ExternalClient, hash: Hash, options?: TransactionOptions): TransactionResult;
|
|
71
|
+
export declare function isTypedDataSigner(signer: any): signer is Client;
|
|
50
72
|
/**
|
|
51
73
|
* Check if the signerOrProvider is compatible with `Signer`
|
|
52
74
|
* @param signerOrProvider - Signer or provider
|
|
53
75
|
* @returns true if the parameter is compatible with `Signer`
|
|
54
76
|
*/
|
|
55
|
-
export declare function isSignerCompatible(signerOrProvider:
|
|
77
|
+
export declare function isSignerCompatible(signerOrProvider: Client | WalletClient): boolean;
|
|
@@ -3,14 +3,14 @@ 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.isSignerCompatible = exports.isTypedDataSigner = exports.toTxResult = exports.zkSyncEraCreate2Address = exports.validateSafeDeploymentConfig = exports.validateSafeAccountConfig = exports.predictSafeAddress = exports.getPredictedSafeAddressInitCode = exports.getChainSpecificDefaultSaltNonce = exports.encodeSetupCallData = exports.encodeCreateProxyWithNonce = exports.PREDETERMINED_SALT_NONCE = void 0;
|
|
7
|
-
const
|
|
8
|
-
const
|
|
6
|
+
exports.isSignerCompatible = exports.isTypedDataSigner = exports.toTxResult = exports.zkSyncEraCreate2Address = exports.getSafeAddressFromDeploymentTx = exports.validateSafeDeploymentConfig = exports.validateSafeAccountConfig = exports.predictSafeAddress = exports.getPredictedSafeAddressInitCode = exports.getChainSpecificDefaultSaltNonce = exports.getSafeContractVersion = exports.encodeSetupCallData = exports.encodeCreateProxyWithNonce = exports.PREDETERMINED_SALT_NONCE = void 0;
|
|
7
|
+
const viem_1 = require("viem");
|
|
8
|
+
const actions_1 = require("viem/actions");
|
|
9
9
|
const config_1 = require("../contracts/config");
|
|
10
10
|
const constants_1 = require("../utils/constants");
|
|
11
11
|
const memoized_1 = require("../utils/memoized");
|
|
12
|
-
const ethereumjs_util_1 = require("ethereumjs-util");
|
|
13
12
|
const satisfies_1 = __importDefault(require("semver/functions/satisfies"));
|
|
13
|
+
const types_1 = require("../utils/types");
|
|
14
14
|
const safeDeploymentContracts_1 = require("../contracts/safeDeploymentContracts");
|
|
15
15
|
// keccak256(toUtf8Bytes('Safe Account Abstraction'))
|
|
16
16
|
exports.PREDETERMINED_SALT_NONCE = '0xb1073742015cbcf5a3a4d9d1ae33ecf619439710b89475f92e2abd2117e90f90';
|
|
@@ -34,35 +34,36 @@ const ZKSYNC_CREATE2_PREFIX = '0x2020dba91b30cc0006188af794c2fb30dd8520db7e2c088
|
|
|
34
34
|
function encodeCreateProxyWithNonce(safeProxyFactoryContract, safeSingletonAddress, initializer, salt) {
|
|
35
35
|
return safeProxyFactoryContract.encode('createProxyWithNonce', [
|
|
36
36
|
safeSingletonAddress,
|
|
37
|
-
initializer,
|
|
37
|
+
(0, types_1.asHex)(initializer),
|
|
38
38
|
BigInt(salt || exports.PREDETERMINED_SALT_NONCE)
|
|
39
39
|
]);
|
|
40
40
|
}
|
|
41
41
|
exports.encodeCreateProxyWithNonce = encodeCreateProxyWithNonce;
|
|
42
42
|
const memoizedGetCompatibilityFallbackHandlerContract = (0, memoized_1.createMemoizedFunction)(safeDeploymentContracts_1.getCompatibilityFallbackHandlerContract);
|
|
43
|
-
async function encodeSetupCallData({ safeProvider, safeAccountConfig, safeContract, customContracts, customSafeVersion }) {
|
|
43
|
+
async function encodeSetupCallData({ safeProvider, safeAccountConfig, safeContract, customContracts, customSafeVersion, deploymentType }) {
|
|
44
44
|
const { owners, threshold, to = constants_1.ZERO_ADDRESS, data = constants_1.EMPTY_DATA, fallbackHandler, paymentToken = constants_1.ZERO_ADDRESS, payment = 0, paymentReceiver = constants_1.ZERO_ADDRESS } = safeAccountConfig;
|
|
45
|
-
const safeVersion = customSafeVersion ||
|
|
45
|
+
const safeVersion = customSafeVersion || safeContract.safeVersion;
|
|
46
46
|
if ((0, satisfies_1.default)(safeVersion, '<=1.0.0')) {
|
|
47
47
|
return safeContract.encode('setup', [
|
|
48
48
|
owners,
|
|
49
49
|
threshold,
|
|
50
50
|
to,
|
|
51
|
-
data,
|
|
51
|
+
(0, types_1.asHex)(data),
|
|
52
52
|
paymentToken,
|
|
53
53
|
payment,
|
|
54
54
|
paymentReceiver
|
|
55
55
|
]);
|
|
56
56
|
}
|
|
57
57
|
let fallbackHandlerAddress = fallbackHandler;
|
|
58
|
-
const isValidAddress = fallbackHandlerAddress !== undefined && (0,
|
|
58
|
+
const isValidAddress = fallbackHandlerAddress !== undefined && (0, viem_1.isAddress)(fallbackHandlerAddress);
|
|
59
59
|
if (!isValidAddress) {
|
|
60
60
|
const fallbackHandlerContract = await memoizedGetCompatibilityFallbackHandlerContract({
|
|
61
61
|
safeProvider,
|
|
62
62
|
safeVersion,
|
|
63
|
-
customContracts
|
|
63
|
+
customContracts,
|
|
64
|
+
deploymentType
|
|
64
65
|
});
|
|
65
|
-
fallbackHandlerAddress =
|
|
66
|
+
fallbackHandlerAddress = fallbackHandlerContract.getAddress();
|
|
66
67
|
}
|
|
67
68
|
return safeContract.encode('setup', [
|
|
68
69
|
owners,
|
|
@@ -76,17 +77,41 @@ async function encodeSetupCallData({ safeProvider, safeAccountConfig, safeContra
|
|
|
76
77
|
]);
|
|
77
78
|
}
|
|
78
79
|
exports.encodeSetupCallData = encodeSetupCallData;
|
|
79
|
-
const memoizedGetProxyFactoryContract = (0, memoized_1.createMemoizedFunction)(({ safeProvider, safeVersion, customContracts }) => (0, safeDeploymentContracts_1.
|
|
80
|
-
const memoizedGetProxyCreationCode = (0, memoized_1.createMemoizedFunction)(async ({ safeProvider, safeVersion, customContracts, chainId }) => {
|
|
80
|
+
const memoizedGetProxyFactoryContract = (0, memoized_1.createMemoizedFunction)(({ safeProvider, safeVersion, customContracts, deploymentType }) => (0, safeDeploymentContracts_1.getSafeProxyFactoryContract)({ safeProvider, safeVersion, customContracts, deploymentType }));
|
|
81
|
+
const memoizedGetProxyCreationCode = (0, memoized_1.createMemoizedFunction)(async ({ safeProvider, safeVersion, customContracts, chainId, deploymentType }) => {
|
|
81
82
|
const safeProxyFactoryContract = await memoizedGetProxyFactoryContract({
|
|
82
83
|
safeProvider,
|
|
83
84
|
safeVersion,
|
|
84
85
|
customContracts,
|
|
85
|
-
chainId
|
|
86
|
+
chainId,
|
|
87
|
+
deploymentType
|
|
86
88
|
});
|
|
87
89
|
return safeProxyFactoryContract.proxyCreationCode();
|
|
88
90
|
});
|
|
89
|
-
const memoizedGetSafeContract = (0, memoized_1.createMemoizedFunction)(({ safeProvider, safeVersion, isL1SafeSingleton, customContracts }) => (0, safeDeploymentContracts_1.getSafeContract)({
|
|
91
|
+
const memoizedGetSafeContract = (0, memoized_1.createMemoizedFunction)(({ safeProvider, safeVersion, isL1SafeSingleton, customContracts, deploymentType }) => (0, safeDeploymentContracts_1.getSafeContract)({
|
|
92
|
+
safeProvider,
|
|
93
|
+
safeVersion,
|
|
94
|
+
isL1SafeSingleton,
|
|
95
|
+
customContracts,
|
|
96
|
+
deploymentType
|
|
97
|
+
}));
|
|
98
|
+
/**
|
|
99
|
+
* Retrieves the version of the Safe contract associated with the given Safe address from the blockchain.
|
|
100
|
+
*
|
|
101
|
+
* @param {SafeProvider} safeProvider The provider to use when reading the contract.
|
|
102
|
+
* @param {string} safeAddress The address of the Safe contract for which to retrieve the version.
|
|
103
|
+
*
|
|
104
|
+
* @returns {Promise<SafeVersion>} A promise resolving to the version of the Safe contract.
|
|
105
|
+
* @throws when fetching an address which doesn't have a Safe deployed in it.
|
|
106
|
+
*/
|
|
107
|
+
async function getSafeContractVersion(safeProvider, safeAddress) {
|
|
108
|
+
return (await safeProvider.readContract({
|
|
109
|
+
address: safeAddress,
|
|
110
|
+
abi: (0, viem_1.parseAbi)(['function VERSION() view returns (string)']),
|
|
111
|
+
functionName: 'VERSION'
|
|
112
|
+
}));
|
|
113
|
+
}
|
|
114
|
+
exports.getSafeContractVersion = getSafeContractVersion;
|
|
90
115
|
/**
|
|
91
116
|
* Provides a chain-specific default salt nonce for generating unique addresses
|
|
92
117
|
* for the same Safe configuration across different chains.
|
|
@@ -95,37 +120,40 @@ const memoizedGetSafeContract = (0, memoized_1.createMemoizedFunction)(({ safePr
|
|
|
95
120
|
* @returns {string} The chain-specific salt nonce in hexadecimal format.
|
|
96
121
|
*/
|
|
97
122
|
function getChainSpecificDefaultSaltNonce(chainId) {
|
|
98
|
-
return
|
|
123
|
+
return (0, viem_1.keccak256)((0, viem_1.toHex)(exports.PREDETERMINED_SALT_NONCE + chainId));
|
|
99
124
|
}
|
|
100
125
|
exports.getChainSpecificDefaultSaltNonce = getChainSpecificDefaultSaltNonce;
|
|
101
126
|
async function getPredictedSafeAddressInitCode({ safeProvider, chainId, safeAccountConfig, safeDeploymentConfig = {}, isL1SafeSingleton = false, customContracts }) {
|
|
102
127
|
(0, exports.validateSafeAccountConfig)(safeAccountConfig);
|
|
103
128
|
(0, exports.validateSafeDeploymentConfig)(safeDeploymentConfig);
|
|
104
|
-
const { safeVersion = config_1.DEFAULT_SAFE_VERSION, saltNonce = getChainSpecificDefaultSaltNonce(chainId) } = safeDeploymentConfig;
|
|
129
|
+
const { safeVersion = config_1.DEFAULT_SAFE_VERSION, saltNonce = getChainSpecificDefaultSaltNonce(chainId), deploymentType } = safeDeploymentConfig;
|
|
105
130
|
const safeProxyFactoryContract = await memoizedGetProxyFactoryContract({
|
|
106
131
|
safeProvider,
|
|
107
132
|
safeVersion,
|
|
108
133
|
customContracts,
|
|
109
|
-
chainId: chainId.toString()
|
|
134
|
+
chainId: chainId.toString(),
|
|
135
|
+
deploymentType
|
|
110
136
|
});
|
|
111
137
|
const safeContract = await memoizedGetSafeContract({
|
|
112
138
|
safeProvider,
|
|
113
139
|
safeVersion,
|
|
114
140
|
isL1SafeSingleton,
|
|
115
141
|
customContracts,
|
|
116
|
-
chainId: chainId.toString()
|
|
142
|
+
chainId: chainId.toString(),
|
|
143
|
+
deploymentType
|
|
117
144
|
});
|
|
118
145
|
const initializer = await encodeSetupCallData({
|
|
119
146
|
safeProvider,
|
|
120
147
|
safeAccountConfig,
|
|
121
148
|
safeContract,
|
|
122
149
|
customContracts,
|
|
123
|
-
customSafeVersion: safeVersion // it is more efficient if we provide the safeVersion manually
|
|
150
|
+
customSafeVersion: safeVersion, // it is more efficient if we provide the safeVersion manually
|
|
151
|
+
deploymentType
|
|
124
152
|
});
|
|
125
|
-
const encodedNonce =
|
|
126
|
-
const safeSingletonAddress =
|
|
127
|
-
const initCodeCallData = encodeCreateProxyWithNonce(safeProxyFactoryContract, safeSingletonAddress, initializer,
|
|
128
|
-
const safeProxyFactoryAddress =
|
|
153
|
+
const encodedNonce = safeProvider.encodeParameters('uint256', [saltNonce]);
|
|
154
|
+
const safeSingletonAddress = safeContract.getAddress();
|
|
155
|
+
const initCodeCallData = encodeCreateProxyWithNonce(safeProxyFactoryContract, safeSingletonAddress, initializer, encodedNonce);
|
|
156
|
+
const safeProxyFactoryAddress = safeProxyFactoryContract.getAddress();
|
|
129
157
|
const initCode = `0x${[safeProxyFactoryAddress, initCodeCallData].reduce((acc, x) => acc + x.replace('0x', ''), '')}`;
|
|
130
158
|
return initCode;
|
|
131
159
|
}
|
|
@@ -133,46 +161,55 @@ exports.getPredictedSafeAddressInitCode = getPredictedSafeAddressInitCode;
|
|
|
133
161
|
async function predictSafeAddress({ safeProvider, chainId, safeAccountConfig, safeDeploymentConfig = {}, isL1SafeSingleton = false, customContracts }) {
|
|
134
162
|
(0, exports.validateSafeAccountConfig)(safeAccountConfig);
|
|
135
163
|
(0, exports.validateSafeDeploymentConfig)(safeDeploymentConfig);
|
|
136
|
-
const { safeVersion = config_1.DEFAULT_SAFE_VERSION, saltNonce = getChainSpecificDefaultSaltNonce(chainId) } = safeDeploymentConfig;
|
|
164
|
+
const { safeVersion = config_1.DEFAULT_SAFE_VERSION, saltNonce = getChainSpecificDefaultSaltNonce(chainId), deploymentType } = safeDeploymentConfig;
|
|
137
165
|
const safeProxyFactoryContract = await memoizedGetProxyFactoryContract({
|
|
138
166
|
safeProvider,
|
|
139
167
|
safeVersion,
|
|
140
168
|
customContracts,
|
|
141
|
-
chainId: chainId.toString()
|
|
169
|
+
chainId: chainId.toString(),
|
|
170
|
+
deploymentType
|
|
142
171
|
});
|
|
143
|
-
const proxyCreationCode = await memoizedGetProxyCreationCode({
|
|
172
|
+
const [proxyCreationCode] = await memoizedGetProxyCreationCode({
|
|
144
173
|
safeProvider,
|
|
145
174
|
safeVersion,
|
|
146
175
|
customContracts,
|
|
147
|
-
chainId: chainId.toString()
|
|
176
|
+
chainId: chainId.toString(),
|
|
177
|
+
deploymentType
|
|
148
178
|
});
|
|
149
179
|
const safeContract = await memoizedGetSafeContract({
|
|
150
180
|
safeProvider,
|
|
151
181
|
safeVersion,
|
|
152
182
|
isL1SafeSingleton,
|
|
153
183
|
customContracts,
|
|
154
|
-
chainId: chainId.toString()
|
|
184
|
+
chainId: chainId.toString(),
|
|
185
|
+
deploymentType
|
|
155
186
|
});
|
|
156
187
|
const initializer = await encodeSetupCallData({
|
|
157
188
|
safeProvider,
|
|
158
189
|
safeAccountConfig,
|
|
159
190
|
safeContract,
|
|
160
191
|
customContracts,
|
|
161
|
-
customSafeVersion: safeVersion // it is more efficient if we provide the safeVersion
|
|
192
|
+
customSafeVersion: safeVersion, // it is more efficient if we provide the safeVersion manuall
|
|
193
|
+
deploymentType
|
|
162
194
|
});
|
|
163
|
-
const
|
|
164
|
-
const
|
|
165
|
-
const
|
|
166
|
-
const
|
|
195
|
+
const initializerHash = (0, viem_1.keccak256)((0, types_1.asHex)(initializer));
|
|
196
|
+
const encodedNonce = (0, types_1.asHex)(safeProvider.encodeParameters('uint256', [saltNonce]));
|
|
197
|
+
const salt = (0, viem_1.keccak256)((0, viem_1.concat)([initializerHash, encodedNonce]));
|
|
198
|
+
const input = safeProvider.encodeParameters('address', [safeContract.getAddress()]);
|
|
199
|
+
const from = safeProxyFactoryContract.getAddress();
|
|
167
200
|
// On the zkSync Era chain, the counterfactual deployment address is calculated differently
|
|
168
201
|
const isZkSyncEraChain = [ZKSYNC_MAINNET, ZKSYNC_TESTNET].includes(chainId);
|
|
169
202
|
if (isZkSyncEraChain) {
|
|
170
|
-
const proxyAddress = zkSyncEraCreate2Address(from, safeVersion, salt, input);
|
|
203
|
+
const proxyAddress = zkSyncEraCreate2Address(from, safeVersion, salt, (0, types_1.asHex)(input));
|
|
171
204
|
return safeProvider.getChecksummedAddress(proxyAddress);
|
|
172
205
|
}
|
|
173
|
-
const
|
|
174
|
-
const
|
|
175
|
-
|
|
206
|
+
const initCode = (0, viem_1.concat)([proxyCreationCode, (0, types_1.asHex)(input)]);
|
|
207
|
+
const proxyAddress = (0, viem_1.getContractAddress)({
|
|
208
|
+
from,
|
|
209
|
+
bytecode: initCode,
|
|
210
|
+
opcode: 'CREATE2',
|
|
211
|
+
salt
|
|
212
|
+
});
|
|
176
213
|
return safeProvider.getChecksummedAddress(proxyAddress);
|
|
177
214
|
}
|
|
178
215
|
exports.predictSafeAddress = predictSafeAddress;
|
|
@@ -190,35 +227,79 @@ const validateSafeDeploymentConfig = ({ saltNonce }) => {
|
|
|
190
227
|
throw new Error('saltNonce must be greater than or equal to 0');
|
|
191
228
|
};
|
|
192
229
|
exports.validateSafeDeploymentConfig = validateSafeDeploymentConfig;
|
|
230
|
+
/**
|
|
231
|
+
* Returns the ProxyCreation Event based on the Safe version
|
|
232
|
+
*
|
|
233
|
+
* based on the Safe Version, we have different proxyCreation events
|
|
234
|
+
*
|
|
235
|
+
* @param {safeVersion} safeVersion - The Safe Version.
|
|
236
|
+
* @returns {string} - The ProxyCreation event.
|
|
237
|
+
*/
|
|
238
|
+
function getProxyCreationEvent(safeVersion) {
|
|
239
|
+
// Events inputs here are left unnamed to deal with the decoding as a list: https://github.com/wevm/viem/blob/632d4b9fa074f4da722e26b28607947d2c14ad2d/src/utils/abi/decodeEventLog.ts#L128
|
|
240
|
+
const isLegacyProxyCreationEvent = (0, satisfies_1.default)(safeVersion, '<1.3.0');
|
|
241
|
+
if (isLegacyProxyCreationEvent) {
|
|
242
|
+
return 'event ProxyCreation(address)'; // v1.0.0, 1.1.1 & v1.2.0
|
|
243
|
+
}
|
|
244
|
+
if ((0, satisfies_1.default)(safeVersion, '=1.3.0')) {
|
|
245
|
+
return 'event ProxyCreation(address, address)'; // v1.3.0
|
|
246
|
+
}
|
|
247
|
+
return 'event ProxyCreation(address indexed, address)'; // >= v1.4.1
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Returns the address of a SafeProxy Address from the transaction receipt.
|
|
251
|
+
*
|
|
252
|
+
* This function looks for a ProxyCreation event in the transaction receipt logs to get address of the deployed SafeProxy.
|
|
253
|
+
*
|
|
254
|
+
* @param {FormattedTransactionReceipt} txReceipt - The transaction receipt containing logs.
|
|
255
|
+
* @param {safeVersion} safeVersion - The Safe Version.
|
|
256
|
+
* @returns {string} - The address of the deployed SafeProxy.
|
|
257
|
+
* @throws {Error} - Throws an error if the SafeProxy was not deployed correctly.
|
|
258
|
+
*/
|
|
259
|
+
function getSafeAddressFromDeploymentTx(txReceipt, safeVersion) {
|
|
260
|
+
const eventHash = (0, viem_1.toEventHash)(getProxyCreationEvent(safeVersion));
|
|
261
|
+
const proxyCreationEvent = txReceipt?.logs.find((event) => event.topics[0] === eventHash);
|
|
262
|
+
if (!proxyCreationEvent) {
|
|
263
|
+
throw new Error('SafeProxy was not deployed correctly');
|
|
264
|
+
}
|
|
265
|
+
const { data, topics } = proxyCreationEvent;
|
|
266
|
+
const { args } = (0, viem_1.decodeEventLog)({
|
|
267
|
+
abi: (0, viem_1.parseAbi)([getProxyCreationEvent(safeVersion)]),
|
|
268
|
+
eventName: 'ProxyCreation',
|
|
269
|
+
data,
|
|
270
|
+
topics
|
|
271
|
+
});
|
|
272
|
+
if (!args || !args.length) {
|
|
273
|
+
throw new Error('SafeProxy was not deployed correctly');
|
|
274
|
+
}
|
|
275
|
+
return args[0];
|
|
276
|
+
}
|
|
277
|
+
exports.getSafeAddressFromDeploymentTx = getSafeAddressFromDeploymentTx;
|
|
193
278
|
/**
|
|
194
279
|
* Generates a zkSync Era address. zkSync Era uses a distinct address derivation method compared to Ethereum
|
|
195
|
-
* see: https://
|
|
280
|
+
* see: https://docs.zksync.io/build/developer-reference/ethereum-differences/evm-instructions/#address-derivation
|
|
196
281
|
*
|
|
197
|
-
* @param {string} from - The sender's address.
|
|
282
|
+
* @param {`string`} from - The sender's address.
|
|
198
283
|
* @param {SafeVersion} safeVersion - The version of the safe.
|
|
199
|
-
* @param {
|
|
200
|
-
* @param {string} input - Additional input data for the derivation.
|
|
284
|
+
* @param {`0x${string}`} salt - The salt used for address derivation.
|
|
285
|
+
* @param {`0x${string}`} input - Additional input data for the derivation.
|
|
201
286
|
*
|
|
202
287
|
* @returns {string} The derived zkSync Era address.
|
|
203
288
|
*/
|
|
204
289
|
function zkSyncEraCreate2Address(from, safeVersion, salt, input) {
|
|
205
290
|
const bytecodeHash = ZKSYNC_SAFE_PROXY_DEPLOYED_BYTECODE[safeVersion].deployedBytecodeHash;
|
|
206
|
-
const inputHash = (0,
|
|
207
|
-
const addressBytes = (0,
|
|
208
|
-
|
|
209
|
-
salt.toString('hex') +
|
|
210
|
-
bytecodeHash.slice(2) +
|
|
211
|
-
inputHash.toString('hex')))
|
|
212
|
-
.toString('hex')
|
|
213
|
-
.slice(24);
|
|
214
|
-
return addressBytes;
|
|
291
|
+
const inputHash = (0, viem_1.keccak256)(input);
|
|
292
|
+
const addressBytes = (0, viem_1.keccak256)((0, viem_1.concat)([ZKSYNC_CREATE2_PREFIX, (0, viem_1.pad)((0, types_1.asHex)(from)), salt, bytecodeHash, inputHash])).slice(26);
|
|
293
|
+
return `0x${addressBytes}`;
|
|
215
294
|
}
|
|
216
295
|
exports.zkSyncEraCreate2Address = zkSyncEraCreate2Address;
|
|
217
|
-
function toTxResult(
|
|
296
|
+
function toTxResult(runner, hash, options) {
|
|
218
297
|
return {
|
|
219
|
-
hash
|
|
298
|
+
hash,
|
|
220
299
|
options,
|
|
221
|
-
transactionResponse
|
|
300
|
+
transactionResponse: {
|
|
301
|
+
wait: async () => (0, actions_1.waitForTransactionReceipt)(runner, { hash })
|
|
302
|
+
}
|
|
222
303
|
};
|
|
223
304
|
}
|
|
224
305
|
exports.toTxResult = toTxResult;
|
|
@@ -236,7 +317,7 @@ function isSignerCompatible(signerOrProvider) {
|
|
|
236
317
|
const candidate = signerOrProvider;
|
|
237
318
|
const isSigntransactionCompatible = typeof candidate.signTransaction === 'function';
|
|
238
319
|
const isSignMessageCompatible = typeof candidate.signMessage === 'function';
|
|
239
|
-
const isGetAddressCompatible = typeof candidate.
|
|
320
|
+
const isGetAddressCompatible = typeof candidate.getAddresses === 'function';
|
|
240
321
|
return isSigntransactionCompatible && isSignMessageCompatible && isGetAddressCompatible;
|
|
241
322
|
}
|
|
242
323
|
exports.isSignerCompatible = isSignerCompatible;
|