@skalenetwork/upgrade-tools 3.0.0-linter.3 → 3.0.0-linter.30
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/hardhat.config.d.ts +1 -1
- package/dist/hardhat.config.js +4 -2
- package/dist/hardhat.config.js.map +1 -0
- package/dist/src/abi.d.ts +1 -1
- package/dist/src/abi.js +3 -2
- package/dist/src/abi.js.map +1 -0
- package/dist/src/contractFactory.d.ts +3 -0
- package/dist/src/contractFactory.js +84 -0
- package/dist/src/contractFactory.js.map +1 -0
- package/dist/src/deploy.d.ts +4 -4
- package/dist/src/deploy.js +54 -60
- package/dist/src/deploy.js.map +1 -0
- package/dist/src/exitCodes.d.ts +7 -0
- package/dist/src/exitCodes.js +12 -0
- package/dist/src/exitCodes.js.map +1 -0
- package/dist/src/gnosis-safe.d.ts +1 -1
- package/dist/src/gnosis-safe.js +100 -76
- package/dist/src/gnosis-safe.js.map +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/multiSend.d.ts +10 -2
- package/dist/src/multiSend.js +22 -43
- package/dist/src/multiSend.js.map +1 -0
- package/dist/src/nonceProvider.d.ts +7 -0
- package/dist/src/nonceProvider.js +18 -0
- package/dist/src/nonceProvider.js.map +1 -0
- package/dist/src/submitters/auto-submitter.d.ts +18 -5
- package/dist/src/submitters/auto-submitter.js +103 -89
- package/dist/src/submitters/auto-submitter.js.map +1 -0
- package/dist/src/submitters/eoa-submitter.d.ts +1 -1
- package/dist/src/submitters/eoa-submitter.js +15 -13
- package/dist/src/submitters/eoa-submitter.js.map +1 -0
- package/dist/src/submitters/index.js +1 -0
- package/dist/src/submitters/index.js.map +1 -0
- package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js +12 -18
- package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js.map +1 -0
- package/dist/src/submitters/safe-ima-marionette-submitter.d.ts +2 -2
- package/dist/src/submitters/safe-ima-marionette-submitter.js +10 -13
- package/dist/src/submitters/safe-ima-marionette-submitter.js.map +1 -0
- package/dist/src/submitters/safe-submitter.d.ts +1 -1
- package/dist/src/submitters/safe-submitter.js +3 -2
- package/dist/src/submitters/safe-submitter.js.map +1 -0
- package/dist/src/submitters/safe-to-ima-submitter.d.ts +9 -4
- package/dist/src/submitters/safe-to-ima-submitter.js +15 -12
- package/dist/src/submitters/safe-to-ima-submitter.js.map +1 -0
- package/dist/src/submitters/submitter.d.ts +1 -1
- package/dist/src/submitters/submitter.js +10 -6
- package/dist/src/submitters/submitter.js.map +1 -0
- package/dist/src/submitters/types/marionette.d.ts +1 -2
- package/dist/src/submitters/types/marionette.js +1 -0
- package/dist/src/submitters/types/marionette.js.map +1 -0
- package/dist/src/types/SkaleManifestData.js +1 -0
- package/dist/src/types/SkaleManifestData.js.map +1 -0
- package/dist/src/upgrader.d.ts +20 -4
- package/dist/src/upgrader.js +126 -101
- package/dist/src/upgrader.js.map +1 -0
- package/dist/src/verification.d.ts +2 -2
- package/dist/src/verification.js +53 -28
- package/dist/src/verification.js.map +1 -0
- package/dist/src/version.js +9 -6
- package/dist/src/version.js.map +1 -0
- package/dist/typechain-types/AdminUpgradeabilityProxy.js +1 -0
- package/dist/typechain-types/AdminUpgradeabilityProxy.js.map +1 -0
- package/dist/typechain-types/ProxyAdmin.js +1 -0
- package/dist/typechain-types/ProxyAdmin.js.map +1 -0
- package/dist/typechain-types/common.js +1 -0
- package/dist/typechain-types/common.js.map +1 -0
- package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.js +1 -0
- package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.js.map +1 -0
- package/dist/typechain-types/factories/ProxyAdmin__factory.js +1 -0
- package/dist/typechain-types/factories/ProxyAdmin__factory.js.map +1 -0
- package/dist/typechain-types/index.js +1 -0
- package/dist/typechain-types/index.js.map +1 -0
- package/package.json +1 -1
package/dist/src/multiSend.js
CHANGED
|
@@ -1,47 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.encodeTransaction = void 0;
|
|
4
|
-
const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
if (to.startsWith("0x")) {
|
|
26
|
-
_to = _to.slice(2);
|
|
27
|
-
}
|
|
28
|
-
_to = padWithZeros(_to, 20 * 2);
|
|
29
|
-
const _value = padWithZeros(ethers_1.BigNumber.from(value).toHexString().
|
|
30
|
-
slice(2), 32 * 2);
|
|
31
|
-
let _data = data;
|
|
32
|
-
if (data.startsWith("0x")) {
|
|
33
|
-
_data = _data.slice(2);
|
|
34
|
-
}
|
|
35
|
-
if (_data.length % 2 !== 0) {
|
|
36
|
-
_data = `0${_data}`;
|
|
37
|
-
}
|
|
38
|
-
const _dataLength = padWithZeros((_data.length / 2).toString(16), 32 * 2);
|
|
39
|
-
return `0x${[
|
|
40
|
-
_operation,
|
|
41
|
-
_to,
|
|
42
|
-
_value,
|
|
43
|
-
_dataLength,
|
|
44
|
-
_data
|
|
45
|
-
].join("")}`;
|
|
46
|
-
}
|
|
4
|
+
const utils_1 = require("ethers/lib/utils");
|
|
5
|
+
const OPERATION_BYTES = 1;
|
|
6
|
+
const ADDRESS_BYTES = 20;
|
|
7
|
+
const UINT256_BYTES = 32;
|
|
8
|
+
const TO_BYTES = ADDRESS_BYTES;
|
|
9
|
+
const VALUE_BYTES = UINT256_BYTES;
|
|
10
|
+
const DATA_LENGTH_BYTES = UINT256_BYTES;
|
|
11
|
+
const encodeTransaction = (transaction) => {
|
|
12
|
+
const operation = (0, utils_1.hexZeroPad)((0, utils_1.hexValue)(transaction.operation), OPERATION_BYTES);
|
|
13
|
+
const to = (0, utils_1.hexZeroPad)((0, utils_1.hexValue)(transaction.to), TO_BYTES);
|
|
14
|
+
const value = (0, utils_1.hexZeroPad)((0, utils_1.hexValue)(transaction.value), VALUE_BYTES);
|
|
15
|
+
const data = (0, utils_1.hexlify)(transaction.data);
|
|
16
|
+
const dataLength = (0, utils_1.hexZeroPad)((0, utils_1.hexValue)((0, utils_1.hexDataLength)(data)), DATA_LENGTH_BYTES);
|
|
17
|
+
return (0, utils_1.hexConcat)([
|
|
18
|
+
operation,
|
|
19
|
+
to,
|
|
20
|
+
value,
|
|
21
|
+
dataLength,
|
|
22
|
+
data
|
|
23
|
+
]);
|
|
24
|
+
};
|
|
47
25
|
exports.encodeTransaction = encodeTransaction;
|
|
26
|
+
//# sourceMappingURL=multiSend.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multiSend.js","sourceRoot":"","sources":["../../src/multiSend.ts"],"names":[],"mappings":";;;AACA,4CAM0B;AAsB1B,MAAM,eAAe,GAAG,CAAC,CAAC;AAC1B,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,aAAa,GAAG,EAAE,CAAC;AACzB,MAAM,QAAQ,GAAG,aAAa,CAAC;AAC/B,MAAM,WAAW,GAAG,aAAa,CAAC;AAClC,MAAM,iBAAiB,GAAG,aAAa,CAAC;AAEjC,MAAM,iBAAiB,GAAG,CAAC,WAAwB,EAAE,EAAE;IAC1D,MAAM,SAAS,GAAG,IAAA,kBAAU,EACxB,IAAA,gBAAQ,EAAC,WAAW,CAAC,SAAS,CAAC,EAC/B,eAAe,CAClB,CAAC;IACF,MAAM,EAAE,GAAG,IAAA,kBAAU,EACjB,IAAA,gBAAQ,EAAC,WAAW,CAAC,EAAE,CAAC,EACxB,QAAQ,CACX,CAAC;IACF,MAAM,KAAK,GAAG,IAAA,kBAAU,EACpB,IAAA,gBAAQ,EAAC,WAAW,CAAC,KAAK,CAAC,EAC3B,WAAW,CACd,CAAC;IACF,MAAM,IAAI,GAAG,IAAA,eAAO,EAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,IAAA,kBAAU,EACzB,IAAA,gBAAQ,EAAC,IAAA,qBAAa,EAAC,IAAI,CAAC,CAAC,EAC7B,iBAAiB,CACpB,CAAC;IAEF,OAAO,IAAA,iBAAS,EAAC;QACb,SAAS;QACT,EAAE;QACF,KAAK;QACL,UAAU;QACV,IAAI;KACP,CAAC,CAAC;AACP,CAAC,CAAC;AA1BW,QAAA,iBAAiB,qBA0B5B"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NonceProvider = void 0;
|
|
4
|
+
class NonceProvider {
|
|
5
|
+
constructor(nonce) {
|
|
6
|
+
this.currentNonce = nonce;
|
|
7
|
+
}
|
|
8
|
+
static async createForWallet(signer) {
|
|
9
|
+
return new NonceProvider(await signer.getTransactionCount());
|
|
10
|
+
}
|
|
11
|
+
reserveNonce() {
|
|
12
|
+
const nonce = this.currentNonce;
|
|
13
|
+
this.currentNonce += 1;
|
|
14
|
+
return nonce;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.NonceProvider = NonceProvider;
|
|
18
|
+
//# sourceMappingURL=nonceProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nonceProvider.js","sourceRoot":"","sources":["../../src/nonceProvider.ts"],"names":[],"mappings":";;;AAEA,MAAa,aAAa;IAGtB,YAAa,KAAa;QACtB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;IAC9B,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,eAAe,CAAE,MAAc;QACxC,OAAO,IAAI,aAAa,CAAC,MAAM,MAAM,CAAC,mBAAmB,EAAE,CAAC,CAAC;IACjE,CAAC;IAED,YAAY;QACR,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;QAChC,IAAI,CAAC,YAAY,IAAI,CAAC,CAAC;QACvB,OAAO,KAAK,CAAC;IACjB,CAAC;CACJ;AAhBD,sCAgBC"}
|
|
@@ -1,11 +1,24 @@
|
|
|
1
|
-
import { Transaction } from "ethers";
|
|
2
1
|
import { Submitter } from "./submitter";
|
|
2
|
+
import { Transaction } from "ethers";
|
|
3
3
|
export declare class AutoSubmitter extends Submitter {
|
|
4
4
|
name: string;
|
|
5
|
+
static marionetteInterface: {
|
|
6
|
+
inputs: never[];
|
|
7
|
+
name: string;
|
|
8
|
+
outputs: {
|
|
9
|
+
internalType: string;
|
|
10
|
+
name: string;
|
|
11
|
+
type: string;
|
|
12
|
+
}[];
|
|
13
|
+
stateMutability: string;
|
|
14
|
+
type: string;
|
|
15
|
+
}[];
|
|
5
16
|
submit(transactions: Transaction[]): Promise<void>;
|
|
6
|
-
private static
|
|
7
|
-
private static
|
|
8
|
-
private static
|
|
9
|
-
private static
|
|
17
|
+
private static getSubmitter;
|
|
18
|
+
private static getSubmitterForContractOwner;
|
|
19
|
+
private static getImaInstance;
|
|
20
|
+
private static getSafeAddress;
|
|
21
|
+
private static getSchainHash;
|
|
22
|
+
private static getMainnetChainId;
|
|
10
23
|
private static _versionFunctionExists;
|
|
11
24
|
}
|
|
@@ -27,14 +27,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
27
27
|
};
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.AutoSubmitter = void 0;
|
|
30
|
-
const admin_1 = require("@openzeppelin/hardhat-upgrades/dist/admin");
|
|
31
|
-
const submitter_1 = require("./submitter");
|
|
32
30
|
const hardhat_1 = __importStar(require("hardhat"));
|
|
31
|
+
const exitCodes_1 = require("../exitCodes");
|
|
33
32
|
const eoa_submitter_1 = require("./eoa-submitter");
|
|
33
|
+
const marionette_1 = require("./types/marionette");
|
|
34
|
+
const safe_ima_legacy_marionette_submitter_1 = require("./safe-ima-legacy-marionette-submitter");
|
|
34
35
|
const safe_submitter_1 = require("./safe-submitter");
|
|
36
|
+
const submitter_1 = require("./submitter");
|
|
35
37
|
const chalk_1 = __importDefault(require("chalk"));
|
|
36
|
-
const
|
|
37
|
-
const marionette_1 = require("./types/marionette");
|
|
38
|
+
const admin_1 = require("@openzeppelin/hardhat-upgrades/dist/admin");
|
|
38
39
|
const skale_contracts_ethers_v5_1 = require("@skalenetwork/skale-contracts-ethers-v5");
|
|
39
40
|
class AutoSubmitter extends submitter_1.Submitter {
|
|
40
41
|
constructor() {
|
|
@@ -43,122 +44,118 @@ class AutoSubmitter extends submitter_1.Submitter {
|
|
|
43
44
|
}
|
|
44
45
|
async submit(transactions) {
|
|
45
46
|
console.log(`Submit via ${this.name}`);
|
|
46
|
-
|
|
47
|
+
const submitter = await AutoSubmitter.getSubmitter();
|
|
48
|
+
await submitter.submit(transactions);
|
|
49
|
+
}
|
|
50
|
+
// Private
|
|
51
|
+
static async getSubmitter() {
|
|
47
52
|
// TODO: remove unknown when move everything to ethers 6
|
|
48
53
|
const proxyAdmin = await (0, admin_1.getManifestAdmin)(hardhat_1.default);
|
|
49
54
|
const owner = await proxyAdmin.owner();
|
|
50
55
|
if (await hardhat_1.default.ethers.provider.getCode(owner) === "0x") {
|
|
51
56
|
console.log("Owner is not a contract");
|
|
52
|
-
|
|
57
|
+
return new eoa_submitter_1.EoaSubmitter();
|
|
53
58
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
59
|
+
console.log("Owner is a contract");
|
|
60
|
+
return AutoSubmitter.getSubmitterForContractOwner(owner);
|
|
61
|
+
}
|
|
62
|
+
static async getSubmitterForContractOwner(owner) {
|
|
63
|
+
if (hardhat_1.ethers.utils.getAddress(owner) ===
|
|
64
|
+
hardhat_1.ethers.utils.getAddress(marionette_1.MARIONETTE_ADDRESS)) {
|
|
65
|
+
console.log("Marionette owner is detected");
|
|
66
|
+
const imaInstance = await AutoSubmitter.getImaInstance();
|
|
67
|
+
const mainnetChainId = AutoSubmitter.getMainnetChainId();
|
|
68
|
+
const safeAddress = AutoSubmitter.getSafeAddress();
|
|
69
|
+
const schainHash = AutoSubmitter.getSchainHash();
|
|
70
|
+
/*
|
|
71
|
+
* TODO: after marionette has multiSend functionality
|
|
72
|
+
* query version and properly select a submitter
|
|
73
|
+
* based on it
|
|
74
|
+
*
|
|
75
|
+
* if (await this._versionFunctionExists()) {
|
|
76
|
+
* console.log("version() function was found." +
|
|
77
|
+
* " Use normal Marionette")
|
|
78
|
+
* submitter = new SafeImaMarionetteSubmitter(
|
|
79
|
+
* safeAddress,
|
|
80
|
+
* imaAbi,
|
|
81
|
+
* schainHash,
|
|
82
|
+
* mainnetChainId
|
|
83
|
+
* )
|
|
84
|
+
* } else {
|
|
85
|
+
* console.log("No version() function was found." +
|
|
86
|
+
* " Use legacy Marionette")
|
|
87
|
+
* submitter = new SafeImaLegacyMarionetteSubmitter(
|
|
88
|
+
* safeAddress,
|
|
89
|
+
* imaAbi,
|
|
90
|
+
* schainHash,
|
|
91
|
+
* mainnetChainId
|
|
92
|
+
* )
|
|
93
|
+
* }
|
|
94
|
+
*/
|
|
95
|
+
return new safe_ima_legacy_marionette_submitter_1.SafeImaLegacyMarionetteSubmitter(safeAddress, imaInstance, {
|
|
96
|
+
mainnetChainId,
|
|
97
|
+
"targetSchainHash": schainHash
|
|
98
|
+
});
|
|
92
99
|
}
|
|
93
|
-
|
|
100
|
+
// Assuming owner is a Gnosis Safe
|
|
101
|
+
console.log("Using Gnosis Safe");
|
|
102
|
+
return new safe_submitter_1.SafeSubmitter(owner);
|
|
94
103
|
}
|
|
95
|
-
|
|
96
|
-
static async _getImaInstance() {
|
|
104
|
+
static async getImaInstance() {
|
|
97
105
|
if (!process.env.IMA) {
|
|
98
|
-
console.log(chalk_1.default.red("Set target IMA alias
|
|
99
|
-
|
|
106
|
+
console.log(chalk_1.default.red("Set target IMA alias" +
|
|
107
|
+
" to IMA environment variable"));
|
|
108
|
+
process.exit(exitCodes_1.EXIT_CODES.UNKNOWN_IMA);
|
|
100
109
|
}
|
|
101
110
|
const network = await skale_contracts_ethers_v5_1.skaleContracts.getNetworkByProvider(hardhat_1.ethers.provider);
|
|
102
111
|
const ima = await network.getProject("ima");
|
|
103
112
|
return await ima.getInstance(process.env.IMA);
|
|
104
113
|
}
|
|
105
|
-
static
|
|
114
|
+
static getSafeAddress() {
|
|
106
115
|
if (!process.env.SAFE_ADDRESS) {
|
|
107
|
-
console.log(chalk_1.default.red("Set Gnosis Safe owner address
|
|
108
|
-
|
|
116
|
+
console.log(chalk_1.default.red("Set Gnosis Safe owner address" +
|
|
117
|
+
" to SAFE_ADDRESS environment variable"));
|
|
118
|
+
process.exit(exitCodes_1.EXIT_CODES.UNKNOWN_SAFE_ADDRESS);
|
|
109
119
|
}
|
|
110
120
|
return process.env.SAFE_ADDRESS;
|
|
111
121
|
}
|
|
112
|
-
static
|
|
122
|
+
static getSchainHash() {
|
|
113
123
|
// Query Context to get schain hash
|
|
114
|
-
if (
|
|
115
|
-
if (!process.env.SCHAIN_NAME) {
|
|
116
|
-
console.log(chalk_1.default.red("Set schain name to SCHAIN_NAME environment variable"));
|
|
117
|
-
console.log(chalk_1.default.red("or schain hash to SCHAIN_HASH environment variable"));
|
|
118
|
-
throw Error("Schain is not set");
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
return hardhat_1.ethers.utils.solidityKeccak256(["string"], [process.env.SCHAIN_NAME]);
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
else {
|
|
124
|
+
if (process.env.SCHAIN_HASH) {
|
|
125
125
|
return process.env.SCHAIN_HASH;
|
|
126
126
|
}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
if (!process.env.MAINNET_CHAIN_ID) {
|
|
130
|
-
console.log(chalk_1.default.red("Set chainId of mainnet to MAINNET_CHAIN_ID environment variable"));
|
|
131
|
-
console.log(chalk_1.default.red("Use 1 for Ethereum mainnet or 5 for Goerli"));
|
|
132
|
-
throw Error("Mainnet chainId is not set");
|
|
127
|
+
if (process.env.SCHAIN_NAME) {
|
|
128
|
+
return hardhat_1.ethers.utils.solidityKeccak256(["string"], [process.env.SCHAIN_NAME]);
|
|
133
129
|
}
|
|
134
|
-
|
|
135
|
-
|
|
130
|
+
console.log(chalk_1.default.red("Set schain name" +
|
|
131
|
+
" to SCHAIN_NAME environment variable"));
|
|
132
|
+
console.log(chalk_1.default.red("or schain hash" +
|
|
133
|
+
" to SCHAIN_HASH environment variable"));
|
|
134
|
+
throw Error("Schain is not set");
|
|
135
|
+
}
|
|
136
|
+
static getMainnetChainId() {
|
|
137
|
+
const CHAIN_ID_RADIX = 10;
|
|
138
|
+
if (process.env.MAINNET_CHAIN_ID) {
|
|
139
|
+
return Number.parseInt(process.env.MAINNET_CHAIN_ID, CHAIN_ID_RADIX);
|
|
136
140
|
}
|
|
141
|
+
console.log(chalk_1.default.red("Set chainId of mainnet" +
|
|
142
|
+
" to MAINNET_CHAIN_ID environment variable"));
|
|
143
|
+
console.log(chalk_1.default.red("Use 1 for Ethereum mainnet" +
|
|
144
|
+
" or 5 for Goerli"));
|
|
145
|
+
throw Error("Mainnet chainId is not set");
|
|
137
146
|
}
|
|
138
147
|
static async _versionFunctionExists() {
|
|
139
148
|
const bytecode = await hardhat_1.default.ethers.provider.getCode(marionette_1.MARIONETTE_ADDRESS);
|
|
149
|
+
const hexPrefixLength = 2;
|
|
150
|
+
const selectorLength = 10;
|
|
140
151
|
/*
|
|
141
152
|
* If the bytecode doesn't include the function selector version()
|
|
142
153
|
* is definitely not present
|
|
143
154
|
*/
|
|
144
|
-
if (!bytecode.includes(hardhat_1.ethers.utils.id("version()").slice(
|
|
155
|
+
if (!bytecode.includes(hardhat_1.ethers.utils.id("version()").slice(hexPrefixLength, selectorLength))) {
|
|
145
156
|
return false;
|
|
146
157
|
}
|
|
147
|
-
const marionette = new hardhat_1.ethers.Contract(marionette_1.MARIONETTE_ADDRESS,
|
|
148
|
-
{
|
|
149
|
-
"inputs": [],
|
|
150
|
-
"name": "version",
|
|
151
|
-
"outputs": [
|
|
152
|
-
{
|
|
153
|
-
"internalType": "string",
|
|
154
|
-
"name": "",
|
|
155
|
-
"type": "string"
|
|
156
|
-
}
|
|
157
|
-
],
|
|
158
|
-
"stateMutability": "view",
|
|
159
|
-
"type": "function"
|
|
160
|
-
}
|
|
161
|
-
], hardhat_1.default.ethers.provider);
|
|
158
|
+
const marionette = new hardhat_1.ethers.Contract(marionette_1.MARIONETTE_ADDRESS, AutoSubmitter.marionetteInterface, hardhat_1.default.ethers.provider);
|
|
162
159
|
/*
|
|
163
160
|
* If gas estimation doesn't revert then an execution is possible
|
|
164
161
|
* given the provided function selector
|
|
@@ -169,7 +166,8 @@ class AutoSubmitter extends submitter_1.Submitter {
|
|
|
169
166
|
}
|
|
170
167
|
catch {
|
|
171
168
|
/*
|
|
172
|
-
* Otherwise (revert) we assume
|
|
169
|
+
* Otherwise (revert) we assume
|
|
170
|
+
* that there is no entry in the jump table
|
|
173
171
|
* meaning that the contract doesn't include version()
|
|
174
172
|
*/
|
|
175
173
|
return false;
|
|
@@ -177,3 +175,19 @@ class AutoSubmitter extends submitter_1.Submitter {
|
|
|
177
175
|
}
|
|
178
176
|
}
|
|
179
177
|
exports.AutoSubmitter = AutoSubmitter;
|
|
178
|
+
AutoSubmitter.marionetteInterface = [
|
|
179
|
+
{
|
|
180
|
+
"inputs": [],
|
|
181
|
+
"name": "version",
|
|
182
|
+
"outputs": [
|
|
183
|
+
{
|
|
184
|
+
"internalType": "string",
|
|
185
|
+
"name": "",
|
|
186
|
+
"type": "string"
|
|
187
|
+
}
|
|
188
|
+
],
|
|
189
|
+
"stateMutability": "view",
|
|
190
|
+
"type": "function"
|
|
191
|
+
}
|
|
192
|
+
];
|
|
193
|
+
//# sourceMappingURL=auto-submitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-submitter.js","sourceRoot":"","sources":["../../../src/submitters/auto-submitter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mDAAoC;AACpC,4CAAwC;AACxC,mDAA6C;AAC7C,mDAAsD;AAEtD,iGAEgD;AAChD,qDAA+C;AAC/C,2CAAsC;AAEtC,kDAA0B;AAC1B,qEAA2E;AAC3E,uFAAuE;AAGvE,MAAa,aAAc,SAAQ,qBAAS;IAA5C;;QACI,SAAI,GAAG,gBAAgB,CAAC;IAsL5B,CAAC;IApKG,KAAK,CAAC,MAAM,CAAE,YAA2B;QACrC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,MAAM,aAAa,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,SAAS,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;IACzC,CAAC;IAED,UAAU;IAEF,MAAM,CAAC,KAAK,CAAC,YAAY;QAC7B,wDAAwD;QACxD,MAAM,UAAU,GAAG,MAAM,IAAA,wBAAgB,EAAC,iBAAG,CAA0B,CAAC;QACxE,MAAM,KAAK,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QACvC,IAAI,MAAM,iBAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;YACnD,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAC;YACvC,OAAO,IAAI,4BAAY,EAAE,CAAC;SAC7B;QAED,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;QACnC,OAAO,aAAa,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,4BAA4B,CAAE,KAAa;QAC5D,IAAI,gBAAM,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;YAC9B,gBAAM,CAAC,KAAK,CAAC,UAAU,CAAC,+BAAkB,CAAC,EAAE;YAC7C,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;YAE5C,MAAM,WAAW,GAAG,MAAM,aAAa,CAAC,cAAc,EAAE,CAAC;YACzD,MAAM,cAAc,GAAG,aAAa,CAAC,iBAAiB,EAAE,CAAC;YACzD,MAAM,WAAW,GAAG,aAAa,CAAC,cAAc,EAAE,CAAC;YACnD,MAAM,UAAU,GAAG,aAAa,CAAC,aAAa,EAAE,CAAC;YAEjD;;;;;;;;;;;;;;;;;;;;;;;;eAwBG;YACH,OAAO,IAAI,uEAAgC,CACvC,WAAW,EACX,WAAW,EACX;gBACI,cAAc;gBACd,kBAAkB,EAAE,UAAU;aACjC,CACJ,CAAC;SACL;QAED,kCAAkC;QAClC,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;QAEjC,OAAO,IAAI,8BAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,cAAc;QAC/B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE;YAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,sBAAsB;gBACxC,8BAA8B,CAAC,CAAC,CAAC;YACrC,OAAO,CAAC,IAAI,CAAC,sBAAU,CAAC,WAAW,CAAC,CAAC;SACxC;QACD,MAAM,OAAO,GACT,MAAM,0CAAc,CAAC,oBAAoB,CAAC,gBAAM,CAAC,QAAQ,CAAC,CAAC;QAC/D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5C,OAAO,MAAM,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAClD,CAAC;IAEO,MAAM,CAAC,cAAc;QACzB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,EAAE;YAC3B,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,+BAA+B;gBACjD,uCAAuC,CAAC,CAAC,CAAC;YAC9C,OAAO,CAAC,IAAI,CAAC,sBAAU,CAAC,oBAAoB,CAAC,CAAC;SACjD;QACD,OAAO,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC;IACpC,CAAC;IAEO,MAAM,CAAC,aAAa;QACxB,mCAAmC;QACnC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;YACzB,OAAO,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC;SAClC;QACD,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,EAAE;YACzB,OAAO,gBAAM,CAAC,KAAK,CAAC,iBAAiB,CACjC,CAAC,QAAQ,CAAC,EACV,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAC5B,CAAC;SACL;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iBAAiB;YACnC,sCAAsC,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB;YAClC,sCAAsC,CAAC,CAAC,CAAC;QAC7C,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACrC,CAAC;IAEO,MAAM,CAAC,iBAAiB;QAC5B,MAAM,cAAc,GAAG,EAAE,CAAC;QAC1B,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE;YAC9B,OAAO,MAAM,CAAC,QAAQ,CAClB,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAC5B,cAAc,CACjB,CAAC;SACL;QACD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,wBAAwB;YAC1C,2CAA2C,CAAC,CAAC,CAAC;QAClD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,4BAA4B;YAC9C,kBAAkB,CAAC,CAAC,CAAC;QACzB,MAAM,KAAK,CAAC,4BAA4B,CAAC,CAAC;IAC9C,CAAC;IAEO,MAAM,CAAC,KAAK,CAAC,sBAAsB;QACvC,MAAM,QAAQ,GAAG,MAAM,iBAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,+BAAkB,CAAC,CAAC;QACvE,MAAM,eAAe,GAAG,CAAC,CAAC;QAC1B,MAAM,cAAc,GAAG,EAAE,CAAC;QAE1B;;;WAGG;QACH,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,gBAAM,CAAC,KAAK,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,KAAK,CACrD,eAAe,EACf,cAAc,CACjB,CAAC,EAAE;YACA,OAAO,KAAK,CAAC;SAChB;QAED,MAAM,UAAU,GAAG,IAAI,gBAAM,CAAC,QAAQ,CAClC,+BAAkB,EAClB,aAAa,CAAC,mBAAmB,EACjC,iBAAG,CAAC,MAAM,CAAC,QAAQ,CACtB,CAAC;QAEF;;;WAGG;QACH,IAAI;YACA,MAAM,UAAU,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;YACvC,OAAO,IAAI,CAAC;SACf;QAAC,MAAM;YACJ;;;;eAIG;YACH,OAAO,KAAK,CAAC;SAChB;IACL,CAAC;;AAtLL,sCAuLC;AApLU,iCAAmB,GAAG;IACzB;QACI,QAAQ,EAAE,EAAE;QACZ,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE;YACP;gBACI,cAAc,EAAE,QAAQ;gBACxB,MAAM,EAAE,EAAE;gBACV,MAAM,EAAE,QAAQ;aACnB;SACJ;QACD,iBAAiB,EAAE,MAAM;QACzB,MAAM,EAAE,UAAU;KACrB;CACJ,AAdyB,CAcxB"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { UnsignedTransaction } from "ethers";
|
|
2
1
|
import { Submitter } from "./submitter";
|
|
2
|
+
import { UnsignedTransaction } from "ethers";
|
|
3
3
|
export declare class EoaSubmitter extends Submitter {
|
|
4
4
|
name: string;
|
|
5
5
|
submit(transactions: UnsignedTransaction[]): Promise<void>;
|
|
@@ -1,27 +1,29 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EoaSubmitter = void 0;
|
|
4
|
-
const hardhat_1 = require("hardhat");
|
|
5
4
|
const submitter_1 = require("./submitter");
|
|
5
|
+
const hardhat_1 = require("hardhat");
|
|
6
6
|
class EoaSubmitter extends submitter_1.Submitter {
|
|
7
7
|
constructor() {
|
|
8
8
|
super(...arguments);
|
|
9
9
|
this.name = "EOA Submitter";
|
|
10
10
|
}
|
|
11
11
|
async submit(transactions) {
|
|
12
|
-
EoaSubmitter.
|
|
12
|
+
EoaSubmitter.atomicityWarning();
|
|
13
13
|
const [deployer] = await hardhat_1.ethers.getSigners();
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
14
|
+
const nonce = await deployer.getTransactionCount();
|
|
15
|
+
console.log(`Send transaction via ${this.name}`);
|
|
16
|
+
const responses = await Promise.all(transactions.
|
|
17
|
+
map((transaction, index) => deployer.sendTransaction({
|
|
18
|
+
"data": transaction.data,
|
|
19
|
+
"nonce": nonce + index,
|
|
20
|
+
"to": transaction.to,
|
|
21
|
+
"value": transaction.value
|
|
22
|
+
})));
|
|
23
|
+
console.log("Waiting for transactions");
|
|
24
|
+
await Promise.all(responses.map((response) => response.wait()));
|
|
25
|
+
console.log("The transactions were sent");
|
|
25
26
|
}
|
|
26
27
|
}
|
|
27
28
|
exports.EoaSubmitter = EoaSubmitter;
|
|
29
|
+
//# sourceMappingURL=eoa-submitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"eoa-submitter.js","sourceRoot":"","sources":["../../../src/submitters/eoa-submitter.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAEtC,qCAA+B;AAG/B,MAAa,YAAa,SAAQ,qBAAS;IAA3C;;QACI,SAAI,GAAG,eAAe,CAAC;IAoB3B,CAAC;IAlBG,KAAK,CAAC,MAAM,CAAE,YAAmC;QAC7C,YAAY,CAAC,gBAAgB,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,gBAAM,CAAC,UAAU,EAAE,CAAC;QAC7C,MAAM,KAAK,GAAG,MAAM,QAAQ,CAAC,mBAAmB,EAAE,CAAC;QACnD,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACjD,MAAM,SAAS,GACX,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY;YAC1B,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,CAAC,eAAe,CAAC;YACjD,MAAM,EAAE,WAAW,CAAC,IAAI;YACxB,OAAO,EAAE,KAAK,GAAG,KAAK;YACtB,IAAI,EAAE,WAAW,CAAC,EAAE;YACpB,OAAO,EAAE,WAAW,CAAC,KAAK;SAC7B,CAAC,CAAC,CAAC,CAAC;QAEb,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;QACxC,MAAM,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;IAC9C,CAAC;CACJ;AArBD,oCAqBC"}
|
|
@@ -20,3 +20,4 @@ __exportStar(require("./safe-ima-legacy-marionette-submitter"), exports);
|
|
|
20
20
|
__exportStar(require("./safe-submitter"), exports);
|
|
21
21
|
__exportStar(require("./safe-to-ima-submitter"), exports);
|
|
22
22
|
__exportStar(require("./submitter"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/submitters/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,mDAAiC;AACjC,kDAAgC;AAChC,yEAAuD;AACvD,mDAAiC;AACjC,0DAAwC;AACxC,8CAA4B"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SafeImaLegacyMarionetteSubmitter = void 0;
|
|
4
|
-
const hardhat_1 = require("hardhat");
|
|
5
|
-
const safe_to_ima_submitter_1 = require("./safe-to-ima-submitter");
|
|
6
4
|
const marionette_1 = require("./types/marionette");
|
|
5
|
+
const safe_to_ima_submitter_1 = require("./safe-to-ima-submitter");
|
|
6
|
+
const hardhat_1 = require("hardhat");
|
|
7
7
|
class SafeImaLegacyMarionetteSubmitter extends safe_to_ima_submitter_1.SafeToImaSubmitter {
|
|
8
8
|
constructor() {
|
|
9
9
|
super(...arguments);
|
|
@@ -40,24 +40,18 @@ class SafeImaLegacyMarionetteSubmitter extends safe_to_ima_submitter_1.SafeToIma
|
|
|
40
40
|
]), hardhat_1.ethers.provider);
|
|
41
41
|
}
|
|
42
42
|
async submit(transactions) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
const transactionsToMarionette = [];
|
|
47
|
-
for (const transaction of transactions) {
|
|
48
|
-
transactionsToMarionette.push({
|
|
49
|
-
"to": this.marionette.address,
|
|
50
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
51
|
-
"data": await this.marionette.encodeFunctionCall(transaction.to
|
|
52
|
-
? transaction.to
|
|
53
|
-
: hardhat_1.ethers.constants.AddressZero, transaction.value
|
|
54
|
-
? transaction.value
|
|
55
|
-
: 0, transaction.data
|
|
56
|
-
? transaction.data
|
|
57
|
-
: "0x")
|
|
58
|
-
});
|
|
43
|
+
const singleTransaction = 1;
|
|
44
|
+
if (transactions.length > singleTransaction) {
|
|
45
|
+
SafeImaLegacyMarionetteSubmitter.atomicityWarning();
|
|
59
46
|
}
|
|
47
|
+
const zeroValue = 0;
|
|
48
|
+
const transactionsToMarionette = (await Promise.all(transactions.
|
|
49
|
+
map((transaction) => this.marionette.encodeFunctionCall(transaction.to ?? hardhat_1.ethers.constants.AddressZero, transaction.value ?? zeroValue, transaction.data ?? "0x")))).map((data) => ({
|
|
50
|
+
data,
|
|
51
|
+
"to": this.marionette.address
|
|
52
|
+
}));
|
|
60
53
|
await super.submit(transactionsToMarionette);
|
|
61
54
|
}
|
|
62
55
|
}
|
|
63
56
|
exports.SafeImaLegacyMarionetteSubmitter = SafeImaLegacyMarionetteSubmitter;
|
|
57
|
+
//# sourceMappingURL=safe-ima-legacy-marionette-submitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-ima-legacy-marionette-submitter.js","sourceRoot":"","sources":["../../../src/submitters/safe-ima-legacy-marionette-submitter.ts"],"names":[],"mappings":";;;AACA,mDAAsD;AACtD,mEAA2D;AAC3D,qCAA+B;AAG/B,MAAa,gCAAiC,SAAQ,0CAAkB;IAAxE;;QACI,eAAU,GAAG,IAAI,gBAAM,CAAC,QAAQ,CAC5B,+BAAkB,EAClB,IAAI,gBAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YACvB;gBACI,QAAQ,EAAE;oBACN;wBACI,cAAc,EAAE,SAAS;wBACzB,MAAM,EAAE,UAAU;wBAClB,MAAM,EAAE,SAAS;qBACpB;oBACD;wBACI,cAAc,EAAE,SAAS;wBACzB,MAAM,EAAE,OAAO;wBACf,MAAM,EAAE,SAAS;qBACpB;oBACD;wBACI,cAAc,EAAE,OAAO;wBACvB,MAAM,EAAE,MAAM;wBACd,MAAM,EAAE,OAAO;qBAClB;iBACJ;gBACD,MAAM,EAAE,oBAAoB;gBAC5B,SAAS,EAAE;oBACP;wBACI,cAAc,EAAE,OAAO;wBACvB,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,OAAO;qBAClB;iBACJ;gBACD,iBAAiB,EAAE,MAAM;gBACzB,MAAM,EAAE,UAAU;aACrB;SACJ,CAAC,EACF,gBAAM,CAAC,QAAQ,CAClB,CAAC;IAsBN,CAAC;IApBG,KAAK,CAAC,MAAM,CAAE,YAAmC;QAC7C,MAAM,iBAAiB,GAAG,CAAC,CAAC;QAC5B,IAAI,YAAY,CAAC,MAAM,GAAG,iBAAiB,EAAE;YACzC,gCAAgC,CAAC,gBAAgB,EAAE,CAAC;SACvD;QACD,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,MAAM,wBAAwB,GAC1B,CAAC,MAAM,OAAO,CAAC,GAAG,CAAC,YAAY;YAC3B,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CACnD,WAAW,CAAC,EAAE,IAAI,gBAAM,CAAC,SAAS,CAAC,WAAW,EAC9C,WAAW,CAAC,KAAK,IAAI,SAAS,EAC9B,WAAW,CAAC,IAAI,IAAI,IAAI,CACL,CAAC,CAAC,CAC5B,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YACb,IAAI;YACJ,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;SAChC,CAAC,CAAC,CAAC;QAER,MAAM,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACjD,CAAC;CACJ;AAzDD,4EAyDC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { UnsignedTransaction } from "ethers";
|
|
2
|
-
import { SafeToImaSubmitter } from "./safe-to-ima-submitter";
|
|
3
1
|
import { Marionette } from "./types/marionette";
|
|
2
|
+
import { SafeToImaSubmitter } from "./safe-to-ima-submitter";
|
|
3
|
+
import { UnsignedTransaction } from "ethers";
|
|
4
4
|
export declare class SafeImaMarionetteSubmitter extends SafeToImaSubmitter {
|
|
5
5
|
marionette: Marionette;
|
|
6
6
|
submit(transactions: UnsignedTransaction[]): Promise<void>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SafeImaMarionetteSubmitter = void 0;
|
|
4
|
-
const hardhat_1 = require("hardhat");
|
|
5
|
-
const safe_to_ima_submitter_1 = require("./safe-to-ima-submitter");
|
|
6
4
|
const marionette_1 = require("./types/marionette");
|
|
5
|
+
const safe_to_ima_submitter_1 = require("./safe-to-ima-submitter");
|
|
6
|
+
const hardhat_1 = require("hardhat");
|
|
7
7
|
class SafeImaMarionetteSubmitter extends safe_to_ima_submitter_1.SafeToImaSubmitter {
|
|
8
8
|
constructor() {
|
|
9
9
|
super(...arguments);
|
|
@@ -48,25 +48,22 @@ class SafeImaMarionetteSubmitter extends safe_to_ima_submitter_1.SafeToImaSubmit
|
|
|
48
48
|
}
|
|
49
49
|
async submit(transactions) {
|
|
50
50
|
const functionCalls = [];
|
|
51
|
+
const zeroValue = 0;
|
|
51
52
|
for (const transaction of transactions) {
|
|
52
53
|
functionCalls.push({
|
|
53
|
-
"
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
"value": transaction.value
|
|
57
|
-
? transaction.value
|
|
58
|
-
: 0,
|
|
59
|
-
"data": transaction.data
|
|
60
|
-
? transaction.data
|
|
61
|
-
: "0x"
|
|
54
|
+
"data": transaction.data ?? "0x",
|
|
55
|
+
"receiver": transaction.to ?? hardhat_1.ethers.constants.AddressZero,
|
|
56
|
+
"value": transaction.value ?? zeroValue
|
|
62
57
|
});
|
|
63
58
|
}
|
|
64
59
|
await super.submit([
|
|
65
60
|
{
|
|
66
|
-
"
|
|
67
|
-
|
|
61
|
+
"data": await this.marionette.
|
|
62
|
+
encodeFunctionCalls(functionCalls),
|
|
63
|
+
"to": this.marionette.address
|
|
68
64
|
}
|
|
69
65
|
]);
|
|
70
66
|
}
|
|
71
67
|
}
|
|
72
68
|
exports.SafeImaMarionetteSubmitter = SafeImaMarionetteSubmitter;
|
|
69
|
+
//# sourceMappingURL=safe-ima-marionette-submitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-ima-marionette-submitter.js","sourceRoot":"","sources":["../../../src/submitters/safe-ima-marionette-submitter.ts"],"names":[],"mappings":";;;AAAA,mDAAkE;AAClE,mEAA2D;AAE3D,qCAA+B;AAG/B,MAAa,0BAA2B,SAAQ,0CAAkB;IAAlE;;QACI,eAAU,GAAG,IAAI,gBAAM,CAAC,QAAQ,CAC5B,+BAAkB,EAClB,IAAI,gBAAM,CAAC,KAAK,CAAC,SAAS,CAAC;YACvB;gBACI,QAAQ,EAAE;oBACN;wBACI,YAAY,EAAE;4BACV;gCACI,cAAc,EAAE,SAAS;gCACzB,MAAM,EAAE,UAAU;gCAClB,MAAM,EAAE,SAAS;6BACpB;4BACD;gCACI,cAAc,EAAE,SAAS;gCACzB,MAAM,EAAE,OAAO;gCACf,MAAM,EAAE,SAAS;6BACpB;4BACD;gCACI,cAAc,EAAE,OAAO;gCACvB,MAAM,EAAE,MAAM;gCACd,MAAM,EAAE,OAAO;6BAClB;yBACJ;wBACD,cAAc,EAAE,mCAAmC;wBACnD,MAAM,EAAE,eAAe;wBACvB,MAAM,EAAE,SAAS;qBACpB;iBACJ;gBACD,MAAM,EAAE,qBAAqB;gBAC7B,SAAS,EAAE;oBACP;wBACI,cAAc,EAAE,OAAO;wBACvB,MAAM,EAAE,EAAE;wBACV,MAAM,EAAE,OAAO;qBAClB;iBACJ;gBACD,iBAAiB,EAAE,MAAM;gBACzB,MAAM,EAAE,UAAU;aACrB;SACJ,CAAC,EACF,gBAAM,CAAC,QAAQ,CACJ,CAAC;IAoBpB,CAAC;IAlBG,KAAK,CAAC,MAAM,CAAE,YAAmC;QAC7C,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,MAAM,SAAS,GAAG,CAAC,CAAC;QACpB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE;YACpC,aAAa,CAAC,IAAI,CAAC;gBACf,MAAM,EAAE,WAAW,CAAC,IAAI,IAAI,IAAI;gBAChC,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,gBAAM,CAAC,SAAS,CAAC,WAAW;gBAC1D,OAAO,EAAE,WAAW,CAAC,KAAK,IAAI,SAAS;aAC1C,CAAC,CAAC;SACN;QACD,MAAM,KAAK,CAAC,MAAM,CAAC;YACf;gBACI,MAAM,EAAE,MAAM,IAAI,CAAC,UAAU;oBACzB,mBAAmB,CAAC,aAAa,CAAC;gBACtC,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,OAAO;aAChC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ;AA9DD,gEA8DC"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SafeSubmitter = void 0;
|
|
4
|
-
const hardhat_1 = require("hardhat");
|
|
5
|
-
const gnosis_safe_1 = require("../gnosis-safe");
|
|
6
4
|
const submitter_1 = require("./submitter");
|
|
5
|
+
const gnosis_safe_1 = require("../gnosis-safe");
|
|
6
|
+
const hardhat_1 = require("hardhat");
|
|
7
7
|
class SafeSubmitter extends submitter_1.Submitter {
|
|
8
8
|
constructor(safeAddress, chainId) {
|
|
9
9
|
super();
|
|
@@ -18,3 +18,4 @@ class SafeSubmitter extends submitter_1.Submitter {
|
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
exports.SafeSubmitter = SafeSubmitter;
|
|
21
|
+
//# sourceMappingURL=safe-submitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-submitter.js","sourceRoot":"","sources":["../../../src/submitters/safe-submitter.ts"],"names":[],"mappings":";;;AAAA,2CAAsC;AAEtC,gDAA0D;AAC1D,qCAA+B;AAG/B,MAAa,aAAc,SAAQ,qBAAS;IAKxC,YAAa,WAAmB,EAAE,OAAgB;QAC9C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,YAAmC;QAC7C,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE;YACf,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,gBAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC;SAC/D;QACD,MAAM,IAAA,wCAA0B,EAC5B,IAAI,CAAC,WAAW,EAChB,YAAY,CACf,CAAC;IACN,CAAC;CACJ;AApBD,sCAoBC"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { BytesLike, UnsignedTransaction } from "ethers";
|
|
2
|
-
import { SafeSubmitter } from "./safe-submitter";
|
|
3
2
|
import { Instance } from "@skalenetwork/skale-contracts-ethers-v5";
|
|
3
|
+
import { SafeSubmitter } from "./safe-submitter";
|
|
4
|
+
interface Network {
|
|
5
|
+
targetSchainHash: BytesLike;
|
|
6
|
+
mainnetChainId?: number;
|
|
7
|
+
}
|
|
4
8
|
export declare class SafeToImaSubmitter extends SafeSubmitter {
|
|
5
9
|
imaInstance: Instance;
|
|
6
10
|
targetSchainHash: BytesLike;
|
|
7
|
-
private
|
|
8
|
-
constructor(safeAddress: string, imaInstance: Instance,
|
|
11
|
+
private messageProxyForMainnet;
|
|
12
|
+
constructor(safeAddress: string, imaInstance: Instance, network: Network);
|
|
9
13
|
submit(transactions: UnsignedTransaction[]): Promise<void>;
|
|
10
|
-
private
|
|
14
|
+
private getMessageProxyForMainnet;
|
|
11
15
|
}
|
|
16
|
+
export {};
|