@skalenetwork/upgrade-tools 3.0.0-verification.0 → 4.0.0-update-verify.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hardhat.config.d.ts +3 -3
- package/dist/hardhat.config.js +6 -17
- package/dist/hardhat.config.js.map +1 -0
- package/dist/src/abi.d.ts +2 -2
- package/dist/src/abi.js +8 -4
- package/dist/src/abi.js.map +1 -0
- package/dist/src/contractFactory.d.ts +4 -0
- package/dist/src/contractFactory.js +84 -0
- package/dist/src/contractFactory.js.map +1 -0
- package/dist/src/contractVerifier.d.ts +14 -0
- package/dist/src/contractVerifier.js +67 -0
- package/dist/src/contractVerifier.js.map +1 -0
- package/dist/src/deploy.d.ts +5 -4
- package/dist/src/deploy.js +77 -58
- package/dist/src/deploy.js.map +1 -0
- package/dist/src/exitCodes.d.ts +8 -0
- package/dist/src/exitCodes.js +13 -0
- package/dist/src/exitCodes.js.map +1 -0
- package/dist/src/gnosis-safe.d.ts +2 -2
- package/dist/src/gnosis-safe.js +105 -96
- package/dist/src/gnosis-safe.js.map +1 -0
- package/dist/src/index.d.ts +0 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -0
- package/dist/src/nonceProvider.d.ts +10 -0
- package/dist/src/nonceProvider.js +34 -0
- package/dist/src/nonceProvider.js.map +1 -0
- package/dist/src/proxyAdmin.d.ts +4 -0
- package/dist/src/proxyAdmin.js +56 -0
- package/dist/src/proxyAdmin.js.map +1 -0
- package/dist/src/submitters/auto-submitter.d.ts +22 -5
- package/dist/src/submitters/auto-submitter.js +135 -120
- package/dist/src/submitters/auto-submitter.js.map +1 -0
- package/dist/src/submitters/eoa-submitter.d.ts +3 -2
- package/dist/src/submitters/eoa-submitter.js +23 -12
- 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.d.ts +4 -3
- package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js +14 -13
- package/dist/src/submitters/safe-ima-legacy-marionette-submitter.js.map +1 -0
- package/dist/src/submitters/safe-ima-marionette-submitter.d.ts +3 -3
- package/dist/src/submitters/safe-ima-marionette-submitter.js +13 -11
- package/dist/src/submitters/safe-ima-marionette-submitter.js.map +1 -0
- package/dist/src/submitters/safe-submitter.d.ts +4 -4
- package/dist/src/submitters/safe-submitter.js +4 -3
- package/dist/src/submitters/safe-submitter.js.map +1 -0
- package/dist/src/submitters/safe-to-ima-submitter.d.ts +11 -6
- package/dist/src/submitters/safe-to-ima-submitter.js +23 -15
- package/dist/src/submitters/safe-to-ima-submitter.js.map +1 -0
- package/dist/src/submitters/submitter.d.ts +3 -3
- package/dist/src/submitters/submitter.js +11 -7
- package/dist/src/submitters/submitter.js.map +1 -0
- package/dist/src/submitters/types/marionette.d.ts +6 -3
- 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/types/upgrader.d.ts +12 -0
- package/dist/{typechain-types/AccessControlUpgradeable.js → src/types/upgrader.js} +1 -0
- package/dist/src/types/upgrader.js.map +1 -0
- package/dist/src/upgrader.d.ts +27 -12
- package/dist/src/upgrader.js +145 -95
- package/dist/src/upgrader.js.map +1 -0
- package/dist/src/verification.d.ts +18 -2
- package/dist/src/verification.js +198 -29
- package/dist/src/verification.js.map +1 -0
- package/dist/src/version.js +24 -2
- package/dist/src/version.js.map +1 -0
- package/dist/typechain-types/AdminUpgradeabilityProxy.d.ts +59 -54
- package/dist/typechain-types/AdminUpgradeabilityProxy.js +1 -0
- package/dist/typechain-types/AdminUpgradeabilityProxy.js.map +1 -0
- package/dist/typechain-types/ProxyAdmin.d.ts +94 -137
- package/dist/typechain-types/ProxyAdmin.js +1 -0
- package/dist/typechain-types/ProxyAdmin.js.map +1 -0
- package/dist/typechain-types/common.d.ts +40 -11
- package/dist/typechain-types/common.js +1 -0
- package/dist/typechain-types/common.js.map +1 -0
- package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.d.ts +71 -41
- package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.js +8 -11
- package/dist/typechain-types/factories/AdminUpgradeabilityProxy__factory.js.map +1 -0
- package/dist/typechain-types/factories/ProxyAdmin__factory.d.ts +129 -41
- package/dist/typechain-types/factories/ProxyAdmin__factory.js +8 -11
- package/dist/typechain-types/factories/ProxyAdmin__factory.js.map +1 -0
- package/dist/typechain-types/factories/index.d.ts +2 -0
- package/dist/typechain-types/factories/index.js +11 -0
- package/dist/typechain-types/factories/index.js.map +1 -0
- package/dist/typechain-types/index.d.ts +1 -22
- package/dist/typechain-types/index.js +36 -23
- package/dist/typechain-types/index.js.map +1 -0
- package/package.json +23 -27
- package/dist/src/multiSend.d.ts +0 -2
- package/dist/src/multiSend.js +0 -46
- package/dist/typechain-types/AccessControlEnumerableUpgradeable.d.ts +0 -183
- package/dist/typechain-types/AccessControlEnumerableUpgradeable.js +0 -2
- package/dist/typechain-types/AccessControlUpgradeable.d.ts +0 -167
- package/dist/typechain-types/ContextUpgradeable.d.ts +0 -40
- package/dist/typechain-types/ContextUpgradeable.js +0 -2
- package/dist/typechain-types/ERC165Upgradeable.d.ts +0 -53
- package/dist/typechain-types/ERC165Upgradeable.js +0 -2
- package/dist/typechain-types/IAccessControlEnumerableUpgradeable.d.ts +0 -159
- package/dist/typechain-types/IAccessControlEnumerableUpgradeable.js +0 -2
- package/dist/typechain-types/IAccessControlUpgradeable.d.ts +0 -143
- package/dist/typechain-types/IAccessControlUpgradeable.js +0 -2
- package/dist/typechain-types/IERC165Upgradeable.d.ts +0 -43
- package/dist/typechain-types/IERC165Upgradeable.js +0 -2
- package/dist/typechain-types/ISafeMock.d.ts +0 -86
- package/dist/typechain-types/ISafeMock.js +0 -2
- package/dist/typechain-types/Initializable.d.ts +0 -40
- package/dist/typechain-types/Initializable.js +0 -2
- package/dist/typechain-types/OwnableUpgradeable.d.ts +0 -97
- package/dist/typechain-types/OwnableUpgradeable.js +0 -2
- package/dist/typechain-types/SafeMock.d.ts +0 -172
- package/dist/typechain-types/SafeMock.js +0 -2
- package/dist/typechain-types/factories/AccessControlEnumerableUpgradeable__factory.d.ts +0 -35
- package/dist/typechain-types/factories/AccessControlEnumerableUpgradeable__factory.js +0 -279
- package/dist/typechain-types/factories/AccessControlUpgradeable__factory.d.ts +0 -35
- package/dist/typechain-types/factories/AccessControlUpgradeable__factory.js +0 -236
- package/dist/typechain-types/factories/ContextUpgradeable__factory.d.ts +0 -18
- package/dist/typechain-types/factories/ContextUpgradeable__factory.js +0 -32
- package/dist/typechain-types/factories/ERC165Upgradeable__factory.d.ts +0 -35
- package/dist/typechain-types/factories/ERC165Upgradeable__factory.js +0 -51
- package/dist/typechain-types/factories/IAccessControlEnumerableUpgradeable__factory.d.ts +0 -35
- package/dist/typechain-types/factories/IAccessControlEnumerableUpgradeable__factory.js +0 -234
- package/dist/typechain-types/factories/IAccessControlUpgradeable__factory.d.ts +0 -35
- package/dist/typechain-types/factories/IAccessControlUpgradeable__factory.js +0 -191
- package/dist/typechain-types/factories/IERC165Upgradeable__factory.d.ts +0 -22
- package/dist/typechain-types/factories/IERC165Upgradeable__factory.js +0 -38
- package/dist/typechain-types/factories/ISafeMock__factory.d.ts +0 -22
- package/dist/typechain-types/factories/ISafeMock__factory.js +0 -114
- package/dist/typechain-types/factories/Initializable__factory.d.ts +0 -18
- package/dist/typechain-types/factories/Initializable__factory.js +0 -32
- package/dist/typechain-types/factories/OwnableUpgradeable__factory.d.ts +0 -42
- package/dist/typechain-types/factories/OwnableUpgradeable__factory.js +0 -84
- package/dist/typechain-types/factories/SafeMock__factory.d.ts +0 -56
- package/dist/typechain-types/factories/SafeMock__factory.js +0 -247
|
@@ -1,159 +1,174 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
24
|
-
};
|
|
25
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
4
|
};
|
|
28
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
6
|
exports.AutoSubmitter = void 0;
|
|
30
|
-
const
|
|
31
|
-
const
|
|
32
|
-
const hardhat_1 = __importStar(require("hardhat"));
|
|
7
|
+
const ethers_1 = require("ethers");
|
|
8
|
+
const exitCodes_1 = require("../exitCodes");
|
|
33
9
|
const eoa_submitter_1 = require("./eoa-submitter");
|
|
10
|
+
const marionette_1 = require("./types/marionette");
|
|
11
|
+
const safe_ima_legacy_marionette_submitter_1 = require("./safe-ima-legacy-marionette-submitter");
|
|
34
12
|
const safe_submitter_1 = require("./safe-submitter");
|
|
13
|
+
const submitter_1 = require("./submitter");
|
|
35
14
|
const chalk_1 = __importDefault(require("chalk"));
|
|
36
|
-
const
|
|
37
|
-
const
|
|
38
|
-
const skale_contracts_ethers_v5_1 = require("@skalenetwork/skale-contracts-ethers-v5");
|
|
15
|
+
const hardhat_1 = require("hardhat");
|
|
16
|
+
const skale_contracts_ethers_v6_1 = require("@skalenetwork/skale-contracts-ethers-v6");
|
|
39
17
|
class AutoSubmitter extends submitter_1.Submitter {
|
|
18
|
+
constructor(upgrader) {
|
|
19
|
+
super();
|
|
20
|
+
this.name = "Auto Submitter";
|
|
21
|
+
this.upgrader = upgrader;
|
|
22
|
+
}
|
|
40
23
|
async submit(transactions) {
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
24
|
+
console.log(`Submit via ${this.name}`);
|
|
25
|
+
const submitter = await this.getSubmitter();
|
|
26
|
+
await submitter.submit(transactions);
|
|
27
|
+
}
|
|
28
|
+
// Private
|
|
29
|
+
async getSubmitter() {
|
|
30
|
+
const owner = await this.upgrader.getOwner();
|
|
31
|
+
if (await hardhat_1.ethers.provider.getCode(owner) === "0x") {
|
|
45
32
|
console.log("Owner is not a contract");
|
|
46
|
-
|
|
33
|
+
return new eoa_submitter_1.EoaSubmitter();
|
|
47
34
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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
|
-
|
|
35
|
+
console.log("Owner is a contract");
|
|
36
|
+
return AutoSubmitter.getSubmitterForContractOwner(owner);
|
|
37
|
+
}
|
|
38
|
+
static async getSubmitterForContractOwner(owner) {
|
|
39
|
+
const mainnetChainId = AutoSubmitter.getMainnetChainId();
|
|
40
|
+
if (hardhat_1.ethers.getAddress(owner) ===
|
|
41
|
+
hardhat_1.ethers.getAddress(marionette_1.MARIONETTE_ADDRESS)) {
|
|
42
|
+
console.log("Marionette owner is detected");
|
|
43
|
+
const imaInstance = await AutoSubmitter.getImaInstance();
|
|
44
|
+
const safeAddress = AutoSubmitter.getSafeAddress();
|
|
45
|
+
const schainHash = AutoSubmitter.getSchainHash();
|
|
46
|
+
/*
|
|
47
|
+
* TODO: after marionette has multiSend functionality
|
|
48
|
+
* query version and properly select a submitter
|
|
49
|
+
* based on it
|
|
50
|
+
*
|
|
51
|
+
* if (await this._versionFunctionExists()) {
|
|
52
|
+
* console.log("version() function was found." +
|
|
53
|
+
* " Use normal Marionette")
|
|
54
|
+
* submitter = new SafeImaMarionetteSubmitter(
|
|
55
|
+
* safeAddress,
|
|
56
|
+
* imaAbi,
|
|
57
|
+
* schainHash,
|
|
58
|
+
* mainnetChainId
|
|
59
|
+
* )
|
|
60
|
+
* } else {
|
|
61
|
+
* console.log("No version() function was found." +
|
|
62
|
+
* " Use legacy Marionette")
|
|
63
|
+
* submitter = new SafeImaLegacyMarionetteSubmitter(
|
|
64
|
+
* safeAddress,
|
|
65
|
+
* imaAbi,
|
|
66
|
+
* schainHash,
|
|
67
|
+
* mainnetChainId
|
|
68
|
+
* )
|
|
69
|
+
* }
|
|
70
|
+
*/
|
|
71
|
+
return new safe_ima_legacy_marionette_submitter_1.SafeImaLegacyMarionetteSubmitter(safeAddress, imaInstance, {
|
|
72
|
+
mainnetChainId,
|
|
73
|
+
"targetSchainHash": schainHash
|
|
74
|
+
});
|
|
81
75
|
}
|
|
82
|
-
|
|
76
|
+
// Assuming owner is a Gnosis Safe
|
|
77
|
+
console.log("Using Gnosis Safe");
|
|
78
|
+
return new safe_submitter_1.SafeSubmitter(owner, mainnetChainId);
|
|
83
79
|
}
|
|
84
|
-
|
|
85
|
-
async _getImaInstance() {
|
|
80
|
+
static async getImaInstance() {
|
|
86
81
|
if (!process.env.IMA) {
|
|
87
|
-
console.log(chalk_1.default.red("Set target IMA alias
|
|
88
|
-
|
|
82
|
+
console.log(chalk_1.default.red("Set target IMA alias" +
|
|
83
|
+
" to IMA environment variable"));
|
|
84
|
+
process.exit(exitCodes_1.EXIT_CODES.UNKNOWN_IMA);
|
|
89
85
|
}
|
|
90
|
-
|
|
86
|
+
if (!process.env.MAINNET_ENDPOINT) {
|
|
87
|
+
console.log(chalk_1.default.red("Set mainnet endpoint" +
|
|
88
|
+
" to MAINNET_ENDPOINT environment variable"));
|
|
89
|
+
process.exit(exitCodes_1.EXIT_CODES.UNKNOWN_MAINNET_ENDPOINT);
|
|
90
|
+
}
|
|
91
|
+
const mainnetProvider = new ethers_1.JsonRpcProvider(process.env.MAINNET_ENDPOINT);
|
|
92
|
+
const contractsNetwork = await skale_contracts_ethers_v6_1.skaleContracts.getNetworkByProvider(mainnetProvider);
|
|
93
|
+
const ima = contractsNetwork.getProject("mainnet-ima");
|
|
91
94
|
return await ima.getInstance(process.env.IMA);
|
|
92
95
|
}
|
|
93
|
-
|
|
96
|
+
static getSafeAddress() {
|
|
94
97
|
if (!process.env.SAFE_ADDRESS) {
|
|
95
|
-
console.log(chalk_1.default.red("Set Gnosis Safe owner address
|
|
96
|
-
|
|
98
|
+
console.log(chalk_1.default.red("Set Gnosis Safe owner address" +
|
|
99
|
+
" to SAFE_ADDRESS environment variable"));
|
|
100
|
+
process.exit(exitCodes_1.EXIT_CODES.UNKNOWN_SAFE_ADDRESS);
|
|
97
101
|
}
|
|
98
102
|
return process.env.SAFE_ADDRESS;
|
|
99
103
|
}
|
|
100
|
-
|
|
101
|
-
//
|
|
102
|
-
if (
|
|
103
|
-
if (!process.env.SCHAIN_NAME) {
|
|
104
|
-
console.log(chalk_1.default.red("Set schain name to SCHAIN_NAME environment variable"));
|
|
105
|
-
console.log(chalk_1.default.red("or schain hash to SCHAIN_HASH environment variable"));
|
|
106
|
-
process.exit(1);
|
|
107
|
-
}
|
|
108
|
-
else {
|
|
109
|
-
return hardhat_1.ethers.utils.solidityKeccak256(["string"], [process.env.SCHAIN_NAME]);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
else {
|
|
104
|
+
static getSchainHash() {
|
|
105
|
+
// Query Context to get schain hash
|
|
106
|
+
if (process.env.SCHAIN_HASH) {
|
|
113
107
|
return process.env.SCHAIN_HASH;
|
|
114
108
|
}
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
if (!process.env.MAINNET_CHAIN_ID) {
|
|
118
|
-
console.log(chalk_1.default.red("Set chainId of mainnet to MAINNET_CHAIN_ID environment variable"));
|
|
119
|
-
console.log(chalk_1.default.red("Use 1 for Ethereum mainnet or 5 for Goerli"));
|
|
120
|
-
process.exit(1);
|
|
109
|
+
if (process.env.SCHAIN_NAME) {
|
|
110
|
+
return hardhat_1.ethers.solidityPackedKeccak256(["string"], [process.env.SCHAIN_NAME]);
|
|
121
111
|
}
|
|
122
|
-
|
|
123
|
-
|
|
112
|
+
console.log(chalk_1.default.red("Set schain name" +
|
|
113
|
+
" to SCHAIN_NAME environment variable"));
|
|
114
|
+
console.log(chalk_1.default.red("or schain hash" +
|
|
115
|
+
" to SCHAIN_HASH environment variable"));
|
|
116
|
+
throw Error("Schain is not set");
|
|
117
|
+
}
|
|
118
|
+
static getMainnetChainId() {
|
|
119
|
+
if (process.env.MAINNET_CHAIN_ID) {
|
|
120
|
+
return BigInt(process.env.MAINNET_CHAIN_ID);
|
|
124
121
|
}
|
|
122
|
+
console.log(chalk_1.default.red("Set chainId of mainnet" +
|
|
123
|
+
" to MAINNET_CHAIN_ID environment variable"));
|
|
124
|
+
console.log(chalk_1.default.red("Use 1 for Ethereum mainnet" +
|
|
125
|
+
" or 5 for Goerli"));
|
|
126
|
+
throw Error("Mainnet chainId is not set");
|
|
125
127
|
}
|
|
126
|
-
async _versionFunctionExists() {
|
|
127
|
-
const bytecode = await hardhat_1.
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
128
|
+
static async _versionFunctionExists() {
|
|
129
|
+
const bytecode = await hardhat_1.ethers.provider.getCode(marionette_1.MARIONETTE_ADDRESS);
|
|
130
|
+
const hexPrefixLength = 2;
|
|
131
|
+
const selectorLength = 10;
|
|
132
|
+
/*
|
|
133
|
+
* If the bytecode doesn't include the function selector version()
|
|
134
|
+
* is definitely not present
|
|
135
|
+
*/
|
|
136
|
+
if (!bytecode.includes(hardhat_1.ethers.id("version()").slice(hexPrefixLength, selectorLength))) {
|
|
131
137
|
return false;
|
|
132
138
|
}
|
|
133
|
-
const marionette = new hardhat_1.ethers.Contract(marionette_1.MARIONETTE_ADDRESS,
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
"internalType": "string",
|
|
139
|
-
"name": "",
|
|
140
|
-
"type": "string"
|
|
141
|
-
}
|
|
142
|
-
],
|
|
143
|
-
"stateMutability": "view",
|
|
144
|
-
"type": "function"
|
|
145
|
-
}], hardhat_1.default.ethers.provider);
|
|
146
|
-
// If gas estimation doesn't revert then an execution is possible
|
|
147
|
-
// given the provided function selector
|
|
139
|
+
const marionette = new hardhat_1.ethers.Contract(marionette_1.MARIONETTE_ADDRESS, AutoSubmitter.marionetteInterface, hardhat_1.ethers.provider);
|
|
140
|
+
/*
|
|
141
|
+
* If gas estimation doesn't revert then an execution is possible
|
|
142
|
+
* given the provided function selector
|
|
143
|
+
*/
|
|
148
144
|
try {
|
|
149
|
-
await marionette.estimateGas
|
|
145
|
+
await marionette.version.estimateGas();
|
|
150
146
|
return true;
|
|
151
147
|
}
|
|
152
148
|
catch {
|
|
153
|
-
|
|
154
|
-
|
|
149
|
+
/*
|
|
150
|
+
* Otherwise (revert) we assume
|
|
151
|
+
* that there is no entry in the jump table
|
|
152
|
+
* meaning that the contract doesn't include version()
|
|
153
|
+
*/
|
|
155
154
|
return false;
|
|
156
155
|
}
|
|
157
156
|
}
|
|
158
157
|
}
|
|
159
158
|
exports.AutoSubmitter = AutoSubmitter;
|
|
159
|
+
AutoSubmitter.marionetteInterface = [
|
|
160
|
+
{
|
|
161
|
+
"inputs": [],
|
|
162
|
+
"name": "version",
|
|
163
|
+
"outputs": [
|
|
164
|
+
{
|
|
165
|
+
"internalType": "string",
|
|
166
|
+
"name": "",
|
|
167
|
+
"type": "string"
|
|
168
|
+
}
|
|
169
|
+
],
|
|
170
|
+
"stateMutability": "view",
|
|
171
|
+
"type": "function"
|
|
172
|
+
}
|
|
173
|
+
];
|
|
174
|
+
//# sourceMappingURL=auto-submitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auto-submitter.js","sourceRoot":"","sources":["../../../src/submitters/auto-submitter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import { UnsignedTransaction } from "ethers";
|
|
2
1
|
import { Submitter } from "./submitter";
|
|
2
|
+
import { Transaction } from "ethers";
|
|
3
3
|
export declare class EoaSubmitter extends Submitter {
|
|
4
|
-
|
|
4
|
+
name: string;
|
|
5
|
+
submit(transactions: Transaction[]): Promise<void>;
|
|
5
6
|
}
|
|
@@ -1,23 +1,34 @@
|
|
|
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
|
+
constructor() {
|
|
8
|
+
super(...arguments);
|
|
9
|
+
this.name = "EOA Submitter";
|
|
10
|
+
}
|
|
7
11
|
async submit(transactions) {
|
|
8
|
-
|
|
12
|
+
EoaSubmitter.atomicityWarning();
|
|
9
13
|
const [deployer] = await hardhat_1.ethers.getSigners();
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
await
|
|
19
|
-
|
|
14
|
+
console.log(`Send transaction via ${this.name}`);
|
|
15
|
+
/*
|
|
16
|
+
* TODO: Refactor this section.
|
|
17
|
+
* Now sending transactions sequentially.
|
|
18
|
+
* Previously, concurrent eth_estimateGas calls during initialize()
|
|
19
|
+
* could invoke unavailable functions (pre-upgrade), causing failures.
|
|
20
|
+
*/
|
|
21
|
+
for (const tx of transactions) {
|
|
22
|
+
/* eslint-disable no-await-in-loop */
|
|
23
|
+
const receipt = await (await deployer.sendTransaction({
|
|
24
|
+
data: tx.data,
|
|
25
|
+
to: tx.to,
|
|
26
|
+
value: tx.value
|
|
27
|
+
})).wait();
|
|
28
|
+
console.log(`Sent transaction with hash: ${receipt?.hash}`);
|
|
20
29
|
}
|
|
30
|
+
console.log("All transactions sent and confirmed");
|
|
21
31
|
}
|
|
22
32
|
}
|
|
23
33
|
exports.EoaSubmitter = EoaSubmitter;
|
|
34
|
+
//# 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;IAyB3B,CAAC;IAvBG,KAAK,CAAC,MAAM,CAAE,YAA2B;QACrC,YAAY,CAAC,gBAAgB,EAAE,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,GAAG,MAAM,gBAAM,CAAC,UAAU,EAAE,CAAC;QAC7C,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAEjD;;;;;WAKG;QACH,KAAK,MAAM,EAAE,IAAI,YAAY,EAAE,CAAC;YAC5B,qCAAqC;YACrC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,QAAQ,CAAC,eAAe,CAAC;gBAClD,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,EAAE,EAAE,EAAE,CAAC,EAAE;gBACT,KAAK,EAAE,EAAE,CAAC,KAAK;aAClB,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YACX,OAAO,CAAC,GAAG,CAAC,+BAA+B,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACvD,CAAC;CACJ;AA1BD,oCA0BC"}
|
|
@@ -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,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { LegacyMarionette } from "./types/marionette";
|
|
2
2
|
import { SafeToImaSubmitter } from "./safe-to-ima-submitter";
|
|
3
|
+
import { Transaction } from "ethers";
|
|
3
4
|
export declare class SafeImaLegacyMarionetteSubmitter extends SafeToImaSubmitter {
|
|
4
|
-
marionette:
|
|
5
|
-
submit(transactions:
|
|
5
|
+
marionette: LegacyMarionette;
|
|
6
|
+
submit(transactions: Transaction[]): Promise<void>;
|
|
6
7
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
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 ethers_1 = require("ethers");
|
|
7
|
+
const hardhat_1 = require("hardhat");
|
|
7
8
|
class SafeImaLegacyMarionetteSubmitter extends safe_to_ima_submitter_1.SafeToImaSubmitter {
|
|
8
9
|
constructor() {
|
|
9
10
|
super(...arguments);
|
|
10
|
-
this.marionette = new hardhat_1.ethers.
|
|
11
|
+
this.marionette = new hardhat_1.ethers.BaseContract(marionette_1.MARIONETTE_ADDRESS, new hardhat_1.ethers.Interface([
|
|
11
12
|
{
|
|
12
13
|
"inputs": [
|
|
13
14
|
{
|
|
@@ -40,18 +41,18 @@ class SafeImaLegacyMarionetteSubmitter extends safe_to_ima_submitter_1.SafeToIma
|
|
|
40
41
|
]), hardhat_1.ethers.provider);
|
|
41
42
|
}
|
|
42
43
|
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 ? transaction.to : hardhat_1.ethers.constants.AddressZero, transaction.value ? transaction.value : 0, transaction.data ? transaction.data : "0x")
|
|
52
|
-
});
|
|
44
|
+
const singleTransaction = 1;
|
|
45
|
+
if (transactions.length > singleTransaction) {
|
|
46
|
+
SafeImaLegacyMarionetteSubmitter.atomicityWarning();
|
|
53
47
|
}
|
|
48
|
+
const marionetteAddress = await this.marionette.getAddress();
|
|
49
|
+
const transactionsToMarionette = (await Promise.all(transactions.
|
|
50
|
+
map((transaction) => this.marionette.encodeFunctionCall(transaction.to ?? hardhat_1.ethers.ZeroAddress, transaction.value, transaction.data)))).map((data) => ethers_1.Transaction.from({
|
|
51
|
+
"data": hardhat_1.ethers.hexlify(data),
|
|
52
|
+
"to": marionetteAddress
|
|
53
|
+
}));
|
|
54
54
|
await super.submit(transactionsToMarionette);
|
|
55
55
|
}
|
|
56
56
|
}
|
|
57
57
|
exports.SafeImaLegacyMarionetteSubmitter = SafeImaLegacyMarionetteSubmitter;
|
|
58
|
+
//# 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":";;;AAAA,mDAAwE;AACxE,mEAA2D;AAC3D,mCAAmC;AACnC,qCAA+B;AAG/B,MAAa,gCAAiC,SAAQ,0CAAkB;IAAxE;;QACI,eAAU,GAAG,IAAI,gBAAM,CAAC,YAAY,CAChC,+BAAkB,EAClB,IAAI,gBAAM,CAAC,SAAS,CAAC;YACjB;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,CACE,CAAC;IAsB1B,CAAC;IApBG,KAAK,CAAC,MAAM,CAAE,YAA2B;QACrC,MAAM,iBAAiB,GAAG,CAAC,CAAC;QAC5B,IAAI,YAAY,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC1C,gCAAgC,CAAC,gBAAgB,EAAE,CAAC;QACxD,CAAC;QACD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC;QAC7D,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,WAAW,EACpC,WAAW,CAAC,KAAK,EACjB,WAAW,CAAC,IAAI,CACnB,CAAC,CAAC,CACN,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,oBAAW,CAAC,IAAI,CAAC;YAC7B,MAAM,EAAE,gBAAM,CAAC,OAAO,CAAC,IAAI,CAAC;YAC5B,IAAI,EAAE,iBAAiB;SAC1B,CAAC,CAAC,CAAC;QAER,MAAM,KAAK,CAAC,MAAM,CAAC,wBAAwB,CAAC,CAAC;IACjD,CAAC;CACJ;AAzDD,4EAyDC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
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 { Transaction } from "ethers";
|
|
4
4
|
export declare class SafeImaMarionetteSubmitter extends SafeToImaSubmitter {
|
|
5
5
|
marionette: Marionette;
|
|
6
|
-
submit(transactions:
|
|
6
|
+
submit(transactions: Transaction[]): Promise<void>;
|
|
7
7
|
}
|
|
@@ -1,13 +1,14 @@
|
|
|
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 ethers_1 = require("ethers");
|
|
7
|
+
const hardhat_1 = require("hardhat");
|
|
7
8
|
class SafeImaMarionetteSubmitter extends safe_to_ima_submitter_1.SafeToImaSubmitter {
|
|
8
9
|
constructor() {
|
|
9
10
|
super(...arguments);
|
|
10
|
-
this.marionette = new hardhat_1.ethers.
|
|
11
|
+
this.marionette = new hardhat_1.ethers.BaseContract(marionette_1.MARIONETTE_ADDRESS, new hardhat_1.ethers.Interface([
|
|
11
12
|
{
|
|
12
13
|
"inputs": [
|
|
13
14
|
{
|
|
@@ -50,17 +51,18 @@ class SafeImaMarionetteSubmitter extends safe_to_ima_submitter_1.SafeToImaSubmit
|
|
|
50
51
|
const functionCalls = [];
|
|
51
52
|
for (const transaction of transactions) {
|
|
52
53
|
functionCalls.push({
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
"data": transaction.data,
|
|
55
|
+
"receiver": transaction.to ?? hardhat_1.ethers.ZeroAddress,
|
|
56
|
+
"value": transaction.value
|
|
56
57
|
});
|
|
57
58
|
}
|
|
58
|
-
await super.submit([
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
}
|
|
59
|
+
await super.submit([ethers_1.Transaction.from({
|
|
60
|
+
"data": hardhat_1.ethers.hexlify(await this.marionette.
|
|
61
|
+
encodeFunctionCalls(functionCalls)),
|
|
62
|
+
"to": await this.marionette.getAddress()
|
|
63
|
+
})
|
|
63
64
|
]);
|
|
64
65
|
}
|
|
65
66
|
}
|
|
66
67
|
exports.SafeImaMarionetteSubmitter = SafeImaMarionetteSubmitter;
|
|
68
|
+
//# 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;AAC3D,mCAAmC;AACnC,qCAA+B;AAG/B,MAAa,0BAA2B,SAAQ,0CAAkB;IAAlE;;QACI,eAAU,GAAG,IAAI,gBAAM,CAAC,YAAY,CAChC,+BAAkB,EAClB,IAAI,gBAAM,CAAC,SAAS,CAAC;YACjB;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;IAkBpB,CAAC;IAhBG,KAAK,CAAC,MAAM,CAAE,YAA2B;QACrC,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;YACrC,aAAa,CAAC,IAAI,CAAC;gBACf,MAAM,EAAE,WAAW,CAAC,IAAI;gBACxB,UAAU,EAAE,WAAW,CAAC,EAAE,IAAI,gBAAM,CAAC,WAAW;gBAChD,OAAO,EAAE,WAAW,CAAC,KAAK;aAC7B,CAAC,CAAC;QACP,CAAC;QACD,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,oBAAW,CAAC,IAAI,CAAC;gBAC7B,MAAM,EAAE,gBAAM,CAAC,OAAO,CAAC,MAAM,IAAI,CAAC,UAAU;oBACxC,mBAAmB,CAAC,aAAa,CAAC,CAAC;gBACvC,IAAI,EAAE,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;aAC3C,CAAC;SACL,CAAC,CAAC;IACP,CAAC;CACJ;AA5DD,gEA4DC"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { UnsignedTransaction } from "ethers";
|
|
2
1
|
import { Submitter } from "./submitter";
|
|
2
|
+
import { Transaction } from "ethers";
|
|
3
3
|
export declare class SafeSubmitter extends Submitter {
|
|
4
4
|
safeAddress: string;
|
|
5
|
-
chainId:
|
|
6
|
-
constructor(safeAddress: string, chainId?:
|
|
7
|
-
submit(transactions:
|
|
5
|
+
chainId: bigint | undefined;
|
|
6
|
+
constructor(safeAddress: string, chainId?: bigint);
|
|
7
|
+
submit(transactions: Transaction[]): Promise<void>;
|
|
8
8
|
}
|
|
@@ -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();
|
|
@@ -14,7 +14,8 @@ class SafeSubmitter extends submitter_1.Submitter {
|
|
|
14
14
|
if (!this.chainId) {
|
|
15
15
|
this.chainId = (await hardhat_1.ethers.provider.getNetwork()).chainId;
|
|
16
16
|
}
|
|
17
|
-
await (0, gnosis_safe_1.createMultiSendTransaction)(this.safeAddress, transactions);
|
|
17
|
+
await (0, gnosis_safe_1.createMultiSendTransaction)(this.safeAddress, this.chainId, transactions);
|
|
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,YAA2B;QACrC,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,OAAO,GAAG,CAAC,MAAM,gBAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC;QAChE,CAAC;QACD,MAAM,IAAA,wCAA0B,EAC5B,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,OAAO,EACZ,YAAY,CACf,CAAC;IACN,CAAC;CACJ;AArBD,sCAqBC"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
import { BytesLike,
|
|
1
|
+
import { BytesLike, Transaction } from "ethers";
|
|
2
|
+
import { Instance } from "@skalenetwork/skale-contracts-ethers-v6";
|
|
2
3
|
import { SafeSubmitter } from "./safe-submitter";
|
|
3
|
-
|
|
4
|
+
interface Network {
|
|
5
|
+
targetSchainHash: BytesLike;
|
|
6
|
+
mainnetChainId?: bigint;
|
|
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,
|
|
9
|
-
submit(transactions:
|
|
10
|
-
private
|
|
11
|
+
private messageProxyForMainnet;
|
|
12
|
+
constructor(safeAddress: string, imaInstance: Instance, network: Network);
|
|
13
|
+
submit(transactions: Transaction[]): Promise<void>;
|
|
14
|
+
private getMessageProxyForMainnet;
|
|
11
15
|
}
|
|
16
|
+
export {};
|
|
@@ -1,30 +1,38 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SafeToImaSubmitter = void 0;
|
|
4
|
+
const ethers_1 = require("ethers");
|
|
4
5
|
const safe_submitter_1 = require("./safe-submitter");
|
|
5
6
|
class SafeToImaSubmitter extends safe_submitter_1.SafeSubmitter {
|
|
6
|
-
constructor(safeAddress, imaInstance,
|
|
7
|
-
super(safeAddress,
|
|
7
|
+
constructor(safeAddress, imaInstance, network) {
|
|
8
|
+
super(safeAddress, network.mainnetChainId);
|
|
8
9
|
this.imaInstance = imaInstance;
|
|
9
|
-
this.targetSchainHash = targetSchainHash;
|
|
10
|
+
this.targetSchainHash = network.targetSchainHash;
|
|
10
11
|
}
|
|
11
12
|
async submit(transactions) {
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
const singleTransaction = 1;
|
|
14
|
+
if (transactions.length > singleTransaction) {
|
|
15
|
+
SafeToImaSubmitter.atomicityWarning();
|
|
14
16
|
}
|
|
15
|
-
const messageProxyForMainnet = await this.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
17
|
+
const messageProxyForMainnet = await this.getMessageProxyForMainnet();
|
|
18
|
+
const messageProxyForMainnetAddress = await messageProxyForMainnet.getAddress();
|
|
19
|
+
const transactionsToIma = transactions.map((transaction) => ethers_1.Transaction.from({
|
|
20
|
+
"data": messageProxyForMainnet.interface.encodeFunctionData("postOutgoingMessage", [
|
|
21
|
+
this.targetSchainHash,
|
|
22
|
+
transaction.to,
|
|
23
|
+
transaction.data
|
|
24
|
+
]),
|
|
25
|
+
"to": messageProxyForMainnetAddress
|
|
26
|
+
}));
|
|
21
27
|
await super.submit(transactionsToIma);
|
|
22
28
|
}
|
|
23
|
-
async
|
|
24
|
-
if (this.
|
|
25
|
-
this.
|
|
29
|
+
async getMessageProxyForMainnet() {
|
|
30
|
+
if (typeof this.messageProxyForMainnet === "undefined") {
|
|
31
|
+
this.messageProxyForMainnet =
|
|
32
|
+
await this.imaInstance.getContract("MessageProxyForMainnet");
|
|
26
33
|
}
|
|
27
|
-
return this.
|
|
34
|
+
return this.messageProxyForMainnet;
|
|
28
35
|
}
|
|
29
36
|
}
|
|
30
37
|
exports.SafeToImaSubmitter = SafeToImaSubmitter;
|
|
38
|
+
//# sourceMappingURL=safe-to-ima-submitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-to-ima-submitter.js","sourceRoot":"","sources":["../../../src/submitters/safe-to-ima-submitter.ts"],"names":[],"mappings":";;;AAAA,mCAA4D;AAE5D,qDAA+C;AAQ/C,MAAa,kBAAmB,SAAQ,8BAAa;IAOjD,YACI,WAAmB,EACnB,WAAqB,EACrB,OAAgB;QAEhB,KAAK,CACD,WAAW,EACX,OAAO,CAAC,cAAc,CACzB,CAAC;QACF,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,YAA2B;QACrC,MAAM,iBAAiB,GAAG,CAAC,CAAC;QAC5B,IAAI,YAAY,CAAC,MAAM,GAAG,iBAAiB,EAAE,CAAC;YAC1C,kBAAkB,CAAC,gBAAgB,EAAE,CAAC;QAC1C,CAAC;QACD,MAAM,sBAAsB,GAAG,MAAM,IAAI,CAAC,yBAAyB,EAAE,CAAC;QACtE,MAAM,6BAA6B,GAAG,MAAM,sBAAsB,CAAC,UAAU,EAAE,CAAC;QAChF,MAAM,iBAAiB,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,oBAAW,CAAC,IAAI,CAAC;YACzE,MAAM,EAAE,sBAAsB,CAAC,SAAS,CAAC,kBAAkB,CACvD,qBAAqB,EACrB;gBACI,IAAI,CAAC,gBAAgB;gBACrB,WAAW,CAAC,EAAE;gBACd,WAAW,CAAC,IAAI;aACnB,CACJ;YACD,IAAI,EAAE,6BAA6B;SACtC,CAAC,CAAC,CAAC;QACJ,MAAM,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;IAC1C,CAAC;IAEO,KAAK,CAAC,yBAAyB;QACnC,IAAI,OAAO,IAAI,CAAC,sBAAsB,KAAK,WAAW,EAAE,CAAC;YACrD,IAAI,CAAC,sBAAsB;gBACvB,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,wBAAwB,CAAC,CAAC;QACrE,CAAC;QACD,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACvC,CAAC;CACJ;AAhDD,gDAgDC"}
|