gate-evm-tools 1.0.22 → 1.0.23
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +47 -0
- package/dist/custody/credential.d.ts +16 -0
- package/dist/custody/credential.d.ts.map +1 -0
- package/dist/custody/credential.js +68 -0
- package/dist/custody/credential.js.map +1 -0
- package/dist/custody/hardhat-runtime.d.ts +16 -0
- package/dist/custody/hardhat-runtime.d.ts.map +1 -0
- package/dist/custody/hardhat-runtime.js +101 -0
- package/dist/custody/hardhat-runtime.js.map +1 -0
- package/dist/custody/hardhat.d.ts +3 -0
- package/dist/custody/hardhat.d.ts.map +1 -0
- package/dist/custody/hardhat.js +8 -0
- package/dist/custody/hardhat.js.map +1 -0
- package/dist/custody/index.d.ts +6 -0
- package/dist/custody/index.d.ts.map +1 -0
- package/dist/custody/index.js +6 -0
- package/dist/custody/index.js.map +1 -0
- package/dist/custody/service.d.ts +16 -0
- package/dist/custody/service.d.ts.map +1 -0
- package/dist/custody/service.js +100 -0
- package/dist/custody/service.js.map +1 -0
- package/dist/custody/signer.d.ts +13 -0
- package/dist/custody/signer.d.ts.map +1 -0
- package/dist/custody/signer.js +258 -0
- package/dist/custody/signer.js.map +1 -0
- package/dist/custody/version.d.ts +4 -0
- package/dist/custody/version.d.ts.map +1 -0
- package/dist/custody/version.js +13 -0
- package/dist/custody/version.js.map +1 -0
- package/dist-cjs/custody/credential.js +74 -0
- package/dist-cjs/custody/credential.js.map +1 -0
- package/dist-cjs/custody/hardhat-runtime.js +104 -0
- package/dist-cjs/custody/hardhat-runtime.js.map +1 -0
- package/dist-cjs/custody/hardhat.js +15 -0
- package/dist-cjs/custody/hardhat.js.map +1 -0
- package/dist-cjs/custody/index.js +18 -0
- package/dist-cjs/custody/index.js.map +1 -0
- package/dist-cjs/custody/service.js +105 -0
- package/dist-cjs/custody/service.js.map +1 -0
- package/dist-cjs/custody/signer.js +261 -0
- package/dist-cjs/custody/signer.js.map +1 -0
- package/dist-cjs/custody/version.js +16 -0
- package/dist-cjs/custody/version.js.map +1 -0
- package/dist-cjs/package.json +3 -0
- package/package.json +32 -4
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service.js","sourceRoot":"","sources":["../../src/custody/service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,261 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createSigner = createSigner;
|
|
4
|
+
const credential_js_1 = require("./credential.js");
|
|
5
|
+
const service_js_1 = require("./service.js");
|
|
6
|
+
const version_js_1 = require("./version.js");
|
|
7
|
+
function createSigner(options) {
|
|
8
|
+
const credential = (0, credential_js_1.parseWalletCredential)(options.credential);
|
|
9
|
+
const major = (0, version_js_1.detectEthersMajor)(options.ethers);
|
|
10
|
+
if (credential.kind === 'private-key') {
|
|
11
|
+
const Wallet = requireRuntimeConstructor(options.ethers, 'Wallet');
|
|
12
|
+
return new Wallet(credential.privateKey, options.provider ?? null);
|
|
13
|
+
}
|
|
14
|
+
if (options.provider === undefined || options.provider === null) {
|
|
15
|
+
throw new Error('托管钱包凭证必须同时提供 ethers Provider');
|
|
16
|
+
}
|
|
17
|
+
const address = normalizeAddress(options.ethers, major, credential.address);
|
|
18
|
+
const clientOptions = {
|
|
19
|
+
credential: options.credential.trim(),
|
|
20
|
+
address,
|
|
21
|
+
baseUrl: options.baseUrl,
|
|
22
|
+
fetchImpl: options.fetchImpl,
|
|
23
|
+
};
|
|
24
|
+
const client = new service_js_1.CustodyServiceClient(clientOptions);
|
|
25
|
+
return major === 6
|
|
26
|
+
? createEthersV6Signer(options.ethers, address, options.provider, client)
|
|
27
|
+
: createEthersV5Signer(options.ethers, address, options.provider, client);
|
|
28
|
+
}
|
|
29
|
+
function createEthersV6Signer(ethersRuntime, address, provider, client) {
|
|
30
|
+
const AbstractSigner = requireRuntimeConstructor(ethersRuntime, 'AbstractSigner');
|
|
31
|
+
const Transaction = requireRuntimeConstructor(ethersRuntime, 'Transaction');
|
|
32
|
+
return new (class CustodyEthersV6Signer extends AbstractSigner {
|
|
33
|
+
address = address;
|
|
34
|
+
constructor(connectedProvider) {
|
|
35
|
+
super(connectedProvider);
|
|
36
|
+
}
|
|
37
|
+
async getAddress() {
|
|
38
|
+
return this.address;
|
|
39
|
+
}
|
|
40
|
+
connect(connectedProvider) {
|
|
41
|
+
return new CustodyEthersV6Signer(connectedProvider);
|
|
42
|
+
}
|
|
43
|
+
async signTransaction(transactionRequest) {
|
|
44
|
+
assertTransactionFrom(ethersRuntime, 6, transactionRequest.from, this.address);
|
|
45
|
+
const transactionInput = transactionRequest instanceof Transaction
|
|
46
|
+
? transactionRequest
|
|
47
|
+
: { ...transactionRequest };
|
|
48
|
+
if (!(transactionRequest instanceof Transaction)) {
|
|
49
|
+
delete transactionInput.from;
|
|
50
|
+
}
|
|
51
|
+
let unsignedTransaction;
|
|
52
|
+
try {
|
|
53
|
+
unsignedTransaction = Transaction.from(transactionInput);
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
throw new Error('交易必须是字段完整且地址已解析的未签名交易');
|
|
57
|
+
}
|
|
58
|
+
if (unsignedTransaction.signature) {
|
|
59
|
+
throw new Error('交易必须是未签名交易');
|
|
60
|
+
}
|
|
61
|
+
const result = await client.signTransaction({
|
|
62
|
+
transaction: unsignedTransaction.toJSON(),
|
|
63
|
+
chainId: unsignedTransaction.chainId.toString(),
|
|
64
|
+
});
|
|
65
|
+
const serialized = (0, service_js_1.requireResponseString)(result, 'signedTransaction');
|
|
66
|
+
let signedTransaction;
|
|
67
|
+
try {
|
|
68
|
+
signedTransaction = Transaction.from(serialized);
|
|
69
|
+
}
|
|
70
|
+
catch {
|
|
71
|
+
throw new Error('托管服务返回了无效的已签名交易');
|
|
72
|
+
}
|
|
73
|
+
if (!signedTransaction.signature || !signedTransaction.from) {
|
|
74
|
+
throw new Error('托管服务返回的交易缺少有效签名');
|
|
75
|
+
}
|
|
76
|
+
if (signedTransaction.unsignedHash !== unsignedTransaction.unsignedHash) {
|
|
77
|
+
throw new Error('托管服务返回的交易与原始交易不一致');
|
|
78
|
+
}
|
|
79
|
+
assertRecoveredAddress(ethersRuntime, 6, signedTransaction.from, this.address);
|
|
80
|
+
return signedTransaction.serialized;
|
|
81
|
+
}
|
|
82
|
+
async signMessage(message) {
|
|
83
|
+
const result = await client.signMessage(typeof message === 'string'
|
|
84
|
+
? { message }
|
|
85
|
+
: { messageHex: ethersRuntime.hexlify(message) });
|
|
86
|
+
const signature = normalizeV6Signature(ethersRuntime, result);
|
|
87
|
+
assertRecoveredAddress(ethersRuntime, 6, ethersRuntime.verifyMessage(message, signature), this.address);
|
|
88
|
+
return signature;
|
|
89
|
+
}
|
|
90
|
+
async signTypedData(domain, types, value) {
|
|
91
|
+
const result = await client.signTypedData({ domain, types, value });
|
|
92
|
+
const signature = normalizeV6Signature(ethersRuntime, result);
|
|
93
|
+
assertRecoveredAddress(ethersRuntime, 6, ethersRuntime.verifyTypedData(domain, types, value, signature), this.address);
|
|
94
|
+
return signature;
|
|
95
|
+
}
|
|
96
|
+
})(provider);
|
|
97
|
+
}
|
|
98
|
+
function createEthersV5Signer(ethersRuntime, address, provider, client) {
|
|
99
|
+
const Signer = requireRuntimeConstructor(ethersRuntime, 'Signer');
|
|
100
|
+
const utils = requireRuntimeObject(ethersRuntime, 'utils');
|
|
101
|
+
return new (class CustodyEthersV5Signer extends Signer {
|
|
102
|
+
address = address;
|
|
103
|
+
constructor(connectedProvider) {
|
|
104
|
+
super();
|
|
105
|
+
Object.defineProperty(this, 'provider', {
|
|
106
|
+
value: connectedProvider,
|
|
107
|
+
enumerable: true,
|
|
108
|
+
configurable: false,
|
|
109
|
+
writable: false,
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
async getAddress() {
|
|
113
|
+
return this.address;
|
|
114
|
+
}
|
|
115
|
+
connect(connectedProvider) {
|
|
116
|
+
return new CustodyEthersV5Signer(connectedProvider);
|
|
117
|
+
}
|
|
118
|
+
async signTransaction(transactionRequest) {
|
|
119
|
+
const resolvedRequest = await utils.resolveProperties(transactionRequest);
|
|
120
|
+
assertTransactionFrom(ethersRuntime, 5, resolvedRequest.from, this.address);
|
|
121
|
+
const unsignedTransaction = selectV5TransactionFields(resolvedRequest);
|
|
122
|
+
let unsignedSerialized;
|
|
123
|
+
try {
|
|
124
|
+
unsignedSerialized = utils.serializeTransaction(unsignedTransaction);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
throw new Error('交易必须是字段完整且地址已解析的未签名交易');
|
|
128
|
+
}
|
|
129
|
+
const result = await client.signTransaction({
|
|
130
|
+
transaction: serializeV5TransactionForService(unsignedTransaction),
|
|
131
|
+
chainId: String(unsignedTransaction.chainId),
|
|
132
|
+
});
|
|
133
|
+
const serialized = (0, service_js_1.requireResponseString)(result, 'signedTransaction');
|
|
134
|
+
let signedTransaction;
|
|
135
|
+
try {
|
|
136
|
+
signedTransaction = utils.parseTransaction(serialized);
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
throw new Error('托管服务返回了无效的已签名交易');
|
|
140
|
+
}
|
|
141
|
+
if (!signedTransaction.from || !signedTransaction.r || !signedTransaction.s) {
|
|
142
|
+
throw new Error('托管服务返回的交易缺少有效签名');
|
|
143
|
+
}
|
|
144
|
+
const returnedUnsigned = utils.serializeTransaction(selectV5TransactionFields(signedTransaction));
|
|
145
|
+
if (returnedUnsigned.toLowerCase() !== unsignedSerialized.toLowerCase()) {
|
|
146
|
+
throw new Error('托管服务返回的交易与原始交易不一致');
|
|
147
|
+
}
|
|
148
|
+
assertRecoveredAddress(ethersRuntime, 5, signedTransaction.from, this.address);
|
|
149
|
+
return serialized;
|
|
150
|
+
}
|
|
151
|
+
async signMessage(message) {
|
|
152
|
+
const result = await client.signMessage(typeof message === 'string'
|
|
153
|
+
? { message }
|
|
154
|
+
: { messageHex: utils.hexlify(message) });
|
|
155
|
+
const signature = normalizeV5Signature(utils, result);
|
|
156
|
+
assertRecoveredAddress(ethersRuntime, 5, utils.verifyMessage(message, signature), this.address);
|
|
157
|
+
return signature;
|
|
158
|
+
}
|
|
159
|
+
async _signTypedData(domain, types, value) {
|
|
160
|
+
const result = await client.signTypedData({ domain, types, value });
|
|
161
|
+
const signature = normalizeV5Signature(utils, result);
|
|
162
|
+
assertRecoveredAddress(ethersRuntime, 5, utils.verifyTypedData(domain, types, value, signature), this.address);
|
|
163
|
+
return signature;
|
|
164
|
+
}
|
|
165
|
+
})(provider);
|
|
166
|
+
}
|
|
167
|
+
function selectV5TransactionFields(transaction) {
|
|
168
|
+
const result = {};
|
|
169
|
+
for (const field of [
|
|
170
|
+
'type',
|
|
171
|
+
'chainId',
|
|
172
|
+
'nonce',
|
|
173
|
+
'to',
|
|
174
|
+
'value',
|
|
175
|
+
'gasLimit',
|
|
176
|
+
'gasPrice',
|
|
177
|
+
'data',
|
|
178
|
+
'accessList',
|
|
179
|
+
'maxFeePerGas',
|
|
180
|
+
'maxPriorityFeePerGas',
|
|
181
|
+
]) {
|
|
182
|
+
if (transaction[field] !== undefined && transaction[field] !== null) {
|
|
183
|
+
result[field] = transaction[field];
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
return result;
|
|
187
|
+
}
|
|
188
|
+
function serializeV5TransactionForService(transaction) {
|
|
189
|
+
const result = {};
|
|
190
|
+
for (const [field, value] of Object.entries(transaction)) {
|
|
191
|
+
if (value !== null &&
|
|
192
|
+
typeof value === 'object' &&
|
|
193
|
+
typeof value.toString === 'function' &&
|
|
194
|
+
['chainId', 'nonce', 'value', 'gasLimit', 'gasPrice', 'maxFeePerGas', 'maxPriorityFeePerGas'].includes(field)) {
|
|
195
|
+
result[field] = value.toString();
|
|
196
|
+
}
|
|
197
|
+
else {
|
|
198
|
+
result[field] = value;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return result;
|
|
202
|
+
}
|
|
203
|
+
function normalizeV6Signature(ethersRuntime, payload) {
|
|
204
|
+
const value = (0, service_js_1.requireResponseString)(payload, 'signature');
|
|
205
|
+
try {
|
|
206
|
+
return ethersRuntime.Signature.from(value).serialized;
|
|
207
|
+
}
|
|
208
|
+
catch {
|
|
209
|
+
throw new Error('托管服务返回了无效签名');
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
function normalizeV5Signature(utils, payload) {
|
|
213
|
+
const value = (0, service_js_1.requireResponseString)(payload, 'signature');
|
|
214
|
+
try {
|
|
215
|
+
return utils.joinSignature(utils.splitSignature(value));
|
|
216
|
+
}
|
|
217
|
+
catch {
|
|
218
|
+
throw new Error('托管服务返回了无效签名');
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
function assertTransactionFrom(ethersRuntime, major, from, expectedAddress) {
|
|
222
|
+
if (from === undefined || from === null) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
if (typeof from !== 'string') {
|
|
226
|
+
throw new Error('交易 from 必须是已解析的钱包地址');
|
|
227
|
+
}
|
|
228
|
+
assertRecoveredAddress(ethersRuntime, major, from, expectedAddress);
|
|
229
|
+
}
|
|
230
|
+
function assertRecoveredAddress(ethersRuntime, major, actual, expected) {
|
|
231
|
+
let normalizedActual;
|
|
232
|
+
try {
|
|
233
|
+
normalizedActual = normalizeAddress(ethersRuntime, major, actual);
|
|
234
|
+
}
|
|
235
|
+
catch {
|
|
236
|
+
throw new Error('托管服务返回的签名地址无效');
|
|
237
|
+
}
|
|
238
|
+
if (normalizedActual !== expected) {
|
|
239
|
+
throw new Error('托管服务返回的签名地址与配置钱包地址不一致');
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
function normalizeAddress(ethersRuntime, major, address) {
|
|
243
|
+
return major === 6
|
|
244
|
+
? ethersRuntime.getAddress(address)
|
|
245
|
+
: requireRuntimeObject(ethersRuntime, 'utils').getAddress(address);
|
|
246
|
+
}
|
|
247
|
+
function requireRuntimeConstructor(ethersRuntime, field) {
|
|
248
|
+
const value = ethersRuntime[field];
|
|
249
|
+
if (typeof value !== 'function') {
|
|
250
|
+
throw new Error(`当前 ethers runtime 缺少 ${field}`);
|
|
251
|
+
}
|
|
252
|
+
return value;
|
|
253
|
+
}
|
|
254
|
+
function requireRuntimeObject(ethersRuntime, field) {
|
|
255
|
+
const value = ethersRuntime[field];
|
|
256
|
+
if (typeof value !== 'object' || value === null) {
|
|
257
|
+
throw new Error(`当前 ethers runtime 缺少 ${field}`);
|
|
258
|
+
}
|
|
259
|
+
return value;
|
|
260
|
+
}
|
|
261
|
+
//# sourceMappingURL=signer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/custody/signer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.detectEthersMajor = detectEthersMajor;
|
|
4
|
+
function detectEthersMajor(ethersRuntime) {
|
|
5
|
+
const { version } = ethersRuntime;
|
|
6
|
+
if (typeof version !== 'string') {
|
|
7
|
+
throw new Error('无法识别当前 ethers 版本');
|
|
8
|
+
}
|
|
9
|
+
const match = /^(?:ethers\/)?(\d+)(?:\.|$)/.exec(version.trim());
|
|
10
|
+
const major = match === null ? Number.NaN : Number.parseInt(match[1], 10);
|
|
11
|
+
if (major === 5 || major === 6) {
|
|
12
|
+
return major;
|
|
13
|
+
}
|
|
14
|
+
throw new Error(`不支持的 ethers 版本:${version}`);
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../src/custody/version.ts"],"names":[],"mappings":";;AAAA,8CAaC;AAbD,SAAgB,iBAAiB,CAAC,aAAoC;IACpE,MAAM,EAAE,OAAO,EAAE,GAAG,aAAa,CAAC;IAClC,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,KAAK,GAAG,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;IACjE,MAAM,KAAK,GAAG,KAAK,KAAK,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1E,IAAI,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,kBAAkB,OAAO,EAAE,CAAC,CAAC;AAC/C,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,22 +1,47 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gate-evm-tools",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.23",
|
|
4
4
|
"description": "Gate 智能合约工具集 - 字节码检查、合约升级验证、合约状态同步",
|
|
5
5
|
"type": "module",
|
|
6
|
+
"exports": {
|
|
7
|
+
"./custody": {
|
|
8
|
+
"types": "./dist/custody/index.d.ts",
|
|
9
|
+
"import": "./dist/custody/index.js",
|
|
10
|
+
"require": "./dist-cjs/custody/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./hardhat": {
|
|
13
|
+
"types": "./dist/custody/hardhat.d.ts",
|
|
14
|
+
"import": "./dist/custody/hardhat.js",
|
|
15
|
+
"require": "./dist-cjs/custody/hardhat.js"
|
|
16
|
+
}
|
|
17
|
+
},
|
|
18
|
+
"typesVersions": {
|
|
19
|
+
"*": {
|
|
20
|
+
"custody": [
|
|
21
|
+
"dist/custody/index.d.ts"
|
|
22
|
+
],
|
|
23
|
+
"hardhat": [
|
|
24
|
+
"dist/custody/hardhat.d.ts"
|
|
25
|
+
]
|
|
26
|
+
}
|
|
27
|
+
},
|
|
6
28
|
"bin": {
|
|
7
29
|
"gate-tool": "./bin/cli.js"
|
|
8
30
|
},
|
|
9
31
|
"files": [
|
|
10
32
|
"bin/",
|
|
11
33
|
"dist/",
|
|
34
|
+
"dist-cjs/",
|
|
12
35
|
"README.md",
|
|
13
36
|
"contractInfo.example.json"
|
|
14
37
|
],
|
|
15
38
|
"scripts": {
|
|
16
|
-
"build": "tsc",
|
|
39
|
+
"build": "tsc && tsc -p tsconfig.custody-cjs.json && node scripts/write-cjs-package.mjs",
|
|
17
40
|
"dev": "tsc --watch",
|
|
18
41
|
"start": "node bin/cli.js",
|
|
19
|
-
"
|
|
42
|
+
"pretest": "npm run build",
|
|
43
|
+
"test": "node --test test/*.test.mjs",
|
|
44
|
+
"test:custody:hardhat-v6": "npm run build && node scripts/test-custody-hardhat-v6.mjs"
|
|
20
45
|
},
|
|
21
46
|
"keywords": [
|
|
22
47
|
"bytecode",
|
|
@@ -40,18 +65,21 @@
|
|
|
40
65
|
"prompts": "^2.4.2"
|
|
41
66
|
},
|
|
42
67
|
"devDependencies": {
|
|
68
|
+
"@nomicfoundation/hardhat-ethers": "3.1.2",
|
|
43
69
|
"@openzeppelin/hardhat-upgrades": "^3.9.1",
|
|
44
70
|
"@openzeppelin/upgrades-core": "^1.44.2",
|
|
45
71
|
"@types/fs-extra": "^11.0.4",
|
|
46
72
|
"@types/node": "^24.7.2",
|
|
47
73
|
"@types/prompts": "^2.4.9",
|
|
48
74
|
"ethers": "^6.15.0",
|
|
75
|
+
"ethers5": "npm:ethers@5.7.2",
|
|
76
|
+
"hardhat": "2.27.1",
|
|
49
77
|
"typescript": "^5.9.3"
|
|
50
78
|
},
|
|
51
79
|
"peerDependencies": {
|
|
52
80
|
"@openzeppelin/hardhat-upgrades": ">=2.0.0 <4.0.0",
|
|
53
81
|
"@openzeppelin/upgrades-core": ">=1.0.0 <2.0.0",
|
|
54
|
-
"ethers": ">=
|
|
82
|
+
"ethers": ">=5.7.0 <7.0.0",
|
|
55
83
|
"hardhat": ">=2.0.0 <3.0.0"
|
|
56
84
|
},
|
|
57
85
|
"engines": {
|