@aztec/ethereum 2.0.3 → 2.1.0-rc.2
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/dest/config.d.ts +10 -5
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +27 -39
- package/dest/contracts/empire_base.d.ts +1 -1
- package/dest/contracts/empire_base.d.ts.map +1 -1
- package/dest/contracts/empire_slashing_proposer.d.ts +1 -1
- package/dest/contracts/empire_slashing_proposer.d.ts.map +1 -1
- package/dest/contracts/fee_asset_handler.d.ts +3 -3
- package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
- package/dest/contracts/governance.js +7 -3
- package/dest/contracts/governance_proposer.d.ts +1 -2
- package/dest/contracts/governance_proposer.d.ts.map +1 -1
- package/dest/contracts/governance_proposer.js +1 -2
- package/dest/contracts/multicall.d.ts +3 -5
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +6 -4
- package/dest/contracts/rollup.d.ts +13 -14
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +25 -67
- package/dest/contracts/slasher_contract.d.ts +10 -0
- package/dest/contracts/slasher_contract.d.ts.map +1 -1
- package/dest/contracts/slasher_contract.js +18 -0
- package/dest/deploy_l1_contracts.d.ts +18 -4
- package/dest/deploy_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_l1_contracts.js +316 -159
- package/dest/index.d.ts +1 -1
- package/dest/index.d.ts.map +1 -1
- package/dest/index.js +1 -1
- package/dest/l1_artifacts.d.ts +8019 -5948
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_artifacts.js +6 -1
- package/dest/l1_contract_addresses.d.ts +5 -1
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +2 -1
- package/dest/l1_tx_utils/config.d.ts +59 -0
- package/dest/l1_tx_utils/config.d.ts.map +1 -0
- package/dest/l1_tx_utils/config.js +73 -0
- package/dest/l1_tx_utils/constants.d.ts +6 -0
- package/dest/l1_tx_utils/constants.d.ts.map +1 -0
- package/dest/l1_tx_utils/constants.js +14 -0
- package/dest/l1_tx_utils/factory.d.ts +24 -0
- package/dest/l1_tx_utils/factory.d.ts.map +1 -0
- package/dest/l1_tx_utils/factory.js +12 -0
- package/dest/l1_tx_utils/index.d.ts +10 -0
- package/dest/l1_tx_utils/index.d.ts.map +1 -0
- package/dest/l1_tx_utils/index.js +10 -0
- package/dest/l1_tx_utils/interfaces.d.ts +76 -0
- package/dest/l1_tx_utils/interfaces.d.ts.map +1 -0
- package/dest/l1_tx_utils/interfaces.js +4 -0
- package/dest/l1_tx_utils/l1_tx_utils.d.ts +95 -0
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -0
- package/dest/l1_tx_utils/l1_tx_utils.js +610 -0
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +26 -0
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +1 -0
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +26 -0
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +81 -0
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -0
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +294 -0
- package/dest/l1_tx_utils/signer.d.ts +4 -0
- package/dest/l1_tx_utils/signer.d.ts.map +1 -0
- package/dest/l1_tx_utils/signer.js +16 -0
- package/dest/l1_tx_utils/types.d.ts +67 -0
- package/dest/l1_tx_utils/types.d.ts.map +1 -0
- package/dest/l1_tx_utils/types.js +26 -0
- package/dest/l1_tx_utils/utils.d.ts +4 -0
- package/dest/l1_tx_utils/utils.d.ts.map +1 -0
- package/dest/l1_tx_utils/utils.js +14 -0
- package/dest/publisher_manager.d.ts +7 -2
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +36 -8
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +8 -2
- package/dest/test/chain_monitor.js +2 -2
- package/dest/test/delayed_tx_utils.d.ts +2 -2
- package/dest/test/delayed_tx_utils.d.ts.map +1 -1
- package/dest/test/delayed_tx_utils.js +2 -2
- package/dest/test/eth_cheat_codes.d.ts +18 -1
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/eth_cheat_codes.js +101 -22
- package/dest/test/rollup_cheat_codes.d.ts +3 -1
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +2 -2
- package/dest/test/upgrade_utils.js +1 -1
- package/package.json +6 -6
- package/src/config.ts +34 -44
- package/src/contracts/empire_base.ts +1 -1
- package/src/contracts/empire_slashing_proposer.ts +1 -1
- package/src/contracts/fee_asset_handler.ts +1 -1
- package/src/contracts/governance.ts +3 -3
- package/src/contracts/governance_proposer.ts +3 -4
- package/src/contracts/multicall.ts +12 -10
- package/src/contracts/rollup.ts +31 -86
- package/src/contracts/slasher_contract.ts +22 -0
- package/src/deploy_l1_contracts.ts +351 -178
- package/src/index.ts +1 -1
- package/src/l1_artifacts.ts +8 -0
- package/src/l1_contract_addresses.ts +3 -1
- package/src/l1_tx_utils/README.md +177 -0
- package/src/l1_tx_utils/config.ts +140 -0
- package/src/l1_tx_utils/constants.ts +18 -0
- package/src/l1_tx_utils/factory.ts +64 -0
- package/src/l1_tx_utils/index.ts +12 -0
- package/src/l1_tx_utils/interfaces.ts +86 -0
- package/src/l1_tx_utils/l1_tx_utils.ts +718 -0
- package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +77 -0
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +372 -0
- package/src/l1_tx_utils/signer.ts +28 -0
- package/src/l1_tx_utils/types.ts +85 -0
- package/src/l1_tx_utils/utils.ts +16 -0
- package/src/publisher_manager.ts +51 -9
- package/src/queries.ts +10 -1
- package/src/test/chain_monitor.ts +2 -2
- package/src/test/delayed_tx_utils.ts +2 -2
- package/src/test/eth_cheat_codes.ts +120 -20
- package/src/test/rollup_cheat_codes.ts +5 -2
- package/src/test/upgrade_utils.ts +1 -1
- package/dest/l1_tx_utils.d.ts +0 -252
- package/dest/l1_tx_utils.d.ts.map +0 -1
- package/dest/l1_tx_utils.js +0 -834
- package/dest/l1_tx_utils_with_blobs.d.ts +0 -20
- package/dest/l1_tx_utils_with_blobs.d.ts.map +0 -1
- package/dest/l1_tx_utils_with_blobs.js +0 -87
- package/src/l1_tx_utils.ts +0 -1124
- package/src/l1_tx_utils_with_blobs.ts +0 -150
package/dest/contracts/rollup.js
CHANGED
|
@@ -122,6 +122,12 @@ export class RollupContract {
|
|
|
122
122
|
getEjectionThreshold() {
|
|
123
123
|
return this.rollup.read.getEjectionThreshold();
|
|
124
124
|
}
|
|
125
|
+
getLocalEjectionThreshold() {
|
|
126
|
+
return this.rollup.read.getLocalEjectionThreshold();
|
|
127
|
+
}
|
|
128
|
+
getLagInEpochs() {
|
|
129
|
+
return this.rollup.read.getLagInEpochs();
|
|
130
|
+
}
|
|
125
131
|
getActivationThreshold() {
|
|
126
132
|
return this.rollup.read.getActivationThreshold();
|
|
127
133
|
}
|
|
@@ -144,10 +150,9 @@ export class RollupContract {
|
|
|
144
150
|
return this.rollup.read.getVersion();
|
|
145
151
|
}
|
|
146
152
|
async getGenesisArchiveTreeRoot() {
|
|
147
|
-
|
|
153
|
+
return await this.rollup.read.archiveAt([
|
|
148
154
|
0n
|
|
149
155
|
]);
|
|
150
|
-
return block.archive;
|
|
151
156
|
}
|
|
152
157
|
/**
|
|
153
158
|
* Returns rollup constants used for epoch queries.
|
|
@@ -281,7 +286,7 @@ export class RollupContract {
|
|
|
281
286
|
}
|
|
282
287
|
getBlock(blockNumber) {
|
|
283
288
|
return this.rollup.read.getBlock([
|
|
284
|
-
blockNumber
|
|
289
|
+
BigInt(blockNumber)
|
|
285
290
|
]);
|
|
286
291
|
}
|
|
287
292
|
getTips() {
|
|
@@ -295,12 +300,20 @@ export class RollupContract {
|
|
|
295
300
|
getEntryQueueLength() {
|
|
296
301
|
return this.rollup.read.getEntryQueueLength();
|
|
297
302
|
}
|
|
298
|
-
|
|
299
|
-
|
|
303
|
+
getCurrentEpochNumber() {
|
|
304
|
+
return this.rollup.read.getCurrentEpoch();
|
|
305
|
+
}
|
|
306
|
+
getEpochNumberForBlock(blockNumber) {
|
|
300
307
|
return this.rollup.read.getEpochForBlock([
|
|
301
308
|
BigInt(blockNumber)
|
|
302
309
|
]);
|
|
303
310
|
}
|
|
311
|
+
getAvailableValidatorFlushes() {
|
|
312
|
+
return this.rollup.read.getAvailableValidatorFlushes();
|
|
313
|
+
}
|
|
314
|
+
getNextFlushableEpoch() {
|
|
315
|
+
return this.rollup.read.getNextFlushableEpoch();
|
|
316
|
+
}
|
|
304
317
|
async getRollupAddresses() {
|
|
305
318
|
const [inboxAddress, outboxAddress, feeJuicePortalAddress, rewardDistributorAddress, feeJuiceAddress, stakingAssetAddress, gseAddress] = (await Promise.all([
|
|
306
319
|
this.rollup.read.getInbox(),
|
|
@@ -347,64 +360,6 @@ export class RollupContract {
|
|
|
347
360
|
}
|
|
348
361
|
}
|
|
349
362
|
/**
|
|
350
|
-
* Packs an array of committee attestations into the format expected by the Solidity contract
|
|
351
|
-
*
|
|
352
|
-
* @param attestations - Array of committee attestations with addresses and signatures
|
|
353
|
-
* @returns Packed attestations with bitmap and tightly packed signature/address data
|
|
354
|
-
*/ static packAttestations(attestations) {
|
|
355
|
-
const length = attestations.length;
|
|
356
|
-
// Calculate bitmap size (1 bit per attestation, rounded up to nearest byte)
|
|
357
|
-
const bitmapSize = Math.ceil(length / 8);
|
|
358
|
-
const signatureIndices = new Uint8Array(bitmapSize);
|
|
359
|
-
// Calculate total data size needed
|
|
360
|
-
let totalDataSize = 0;
|
|
361
|
-
for(let i = 0; i < length; i++){
|
|
362
|
-
const signature = attestations[i].signature;
|
|
363
|
-
// Check if signature is empty (v = 0)
|
|
364
|
-
const isEmpty = signature.v === 0;
|
|
365
|
-
if (!isEmpty) {
|
|
366
|
-
totalDataSize += 65; // v (1) + r (32) + s (32)
|
|
367
|
-
} else {
|
|
368
|
-
totalDataSize += 20; // address only
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
const signaturesOrAddresses = new Uint8Array(totalDataSize);
|
|
372
|
-
let dataIndex = 0;
|
|
373
|
-
// Pack the data
|
|
374
|
-
for(let i = 0; i < length; i++){
|
|
375
|
-
const attestation = attestations[i];
|
|
376
|
-
const signature = attestation.signature;
|
|
377
|
-
// Check if signature is empty
|
|
378
|
-
const isEmpty = signature.v === 0;
|
|
379
|
-
if (!isEmpty) {
|
|
380
|
-
// Set bit in bitmap (bit 7-0 in each byte, left to right)
|
|
381
|
-
const byteIndex = Math.floor(i / 8);
|
|
382
|
-
const bitIndex = 7 - i % 8;
|
|
383
|
-
signatureIndices[byteIndex] |= 1 << bitIndex;
|
|
384
|
-
// Pack signature: v + r + s
|
|
385
|
-
signaturesOrAddresses[dataIndex] = signature.v;
|
|
386
|
-
dataIndex++;
|
|
387
|
-
// Pack r (32 bytes)
|
|
388
|
-
const rBytes = Buffer.from(signature.r.slice(2), 'hex');
|
|
389
|
-
signaturesOrAddresses.set(rBytes, dataIndex);
|
|
390
|
-
dataIndex += 32;
|
|
391
|
-
// Pack s (32 bytes)
|
|
392
|
-
const sBytes = Buffer.from(signature.s.slice(2), 'hex');
|
|
393
|
-
signaturesOrAddresses.set(sBytes, dataIndex);
|
|
394
|
-
dataIndex += 32;
|
|
395
|
-
} else {
|
|
396
|
-
// Pack address only (20 bytes)
|
|
397
|
-
const addrBytes = Buffer.from(attestation.addr.slice(2), 'hex');
|
|
398
|
-
signaturesOrAddresses.set(addrBytes, dataIndex);
|
|
399
|
-
dataIndex += 20;
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
return {
|
|
403
|
-
signatureIndices: `0x${Buffer.from(signatureIndices).toString('hex')}`,
|
|
404
|
-
signaturesOrAddresses: `0x${Buffer.from(signaturesOrAddresses).toString('hex')}`
|
|
405
|
-
};
|
|
406
|
-
}
|
|
407
|
-
/**
|
|
408
363
|
* @notice Calls `canProposeAtTime` with the time of the next Ethereum block and the sender address
|
|
409
364
|
*
|
|
410
365
|
* @dev Throws if unable to propose
|
|
@@ -468,7 +423,7 @@ export class RollupContract {
|
|
|
468
423
|
}
|
|
469
424
|
];
|
|
470
425
|
}
|
|
471
|
-
/** Creates a request to Rollup#invalidateBadAttestation to be simulated or sent */ buildInvalidateBadAttestationRequest(blockNumber,
|
|
426
|
+
/** Creates a request to Rollup#invalidateBadAttestation to be simulated or sent */ buildInvalidateBadAttestationRequest(blockNumber, attestationsAndSigners, committee, invalidIndex) {
|
|
472
427
|
return {
|
|
473
428
|
to: this.address,
|
|
474
429
|
data: encodeFunctionData({
|
|
@@ -476,14 +431,14 @@ export class RollupContract {
|
|
|
476
431
|
functionName: 'invalidateBadAttestation',
|
|
477
432
|
args: [
|
|
478
433
|
BigInt(blockNumber),
|
|
479
|
-
|
|
434
|
+
attestationsAndSigners,
|
|
480
435
|
committee.map((addr)=>addr.toString()),
|
|
481
436
|
BigInt(invalidIndex)
|
|
482
437
|
]
|
|
483
438
|
})
|
|
484
439
|
};
|
|
485
440
|
}
|
|
486
|
-
/** Creates a request to Rollup#invalidateInsufficientAttestations to be simulated or sent */ buildInvalidateInsufficientAttestationsRequest(blockNumber,
|
|
441
|
+
/** Creates a request to Rollup#invalidateInsufficientAttestations to be simulated or sent */ buildInvalidateInsufficientAttestationsRequest(blockNumber, attestationsAndSigners, committee) {
|
|
487
442
|
return {
|
|
488
443
|
to: this.address,
|
|
489
444
|
data: encodeFunctionData({
|
|
@@ -491,7 +446,7 @@ export class RollupContract {
|
|
|
491
446
|
functionName: 'invalidateInsufficientAttestations',
|
|
492
447
|
args: [
|
|
493
448
|
BigInt(blockNumber),
|
|
494
|
-
|
|
449
|
+
attestationsAndSigners,
|
|
495
450
|
committee.map((addr)=>addr.toString())
|
|
496
451
|
]
|
|
497
452
|
})
|
|
@@ -689,6 +644,9 @@ _ts_decorate([
|
|
|
689
644
|
_ts_decorate([
|
|
690
645
|
memoize
|
|
691
646
|
], RollupContract.prototype, "getEjectionThreshold", null);
|
|
647
|
+
_ts_decorate([
|
|
648
|
+
memoize
|
|
649
|
+
], RollupContract.prototype, "getLagInEpochs", null);
|
|
692
650
|
_ts_decorate([
|
|
693
651
|
memoize
|
|
694
652
|
], RollupContract.prototype, "getActivationThreshold", null);
|
|
@@ -15,11 +15,21 @@ export declare class SlasherContract {
|
|
|
15
15
|
* @returns True if the payload is vetoed, false otherwise
|
|
16
16
|
*/
|
|
17
17
|
isPayloadVetoed(payloadAddress: EthAddress): Promise<boolean>;
|
|
18
|
+
/**
|
|
19
|
+
* Checks if slashing is currently enabled. Slashing can be disabled by the vetoer.
|
|
20
|
+
* @returns True if slashing is enabled, false otherwise
|
|
21
|
+
*/
|
|
22
|
+
isSlashingEnabled(): Promise<boolean>;
|
|
18
23
|
/**
|
|
19
24
|
* Gets the current vetoer address.
|
|
20
25
|
* @returns The vetoer address
|
|
21
26
|
*/
|
|
22
27
|
getVetoer(): Promise<EthAddress>;
|
|
28
|
+
/**
|
|
29
|
+
* Gets the disable duration by the vetoer.
|
|
30
|
+
* @returns The disable duration in seconds
|
|
31
|
+
*/
|
|
32
|
+
getSlashingDisableDuration(): Promise<number>;
|
|
23
33
|
/**
|
|
24
34
|
* Gets the current governance address.
|
|
25
35
|
* @returns The governance address
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slasher_contract.d.ts","sourceRoot":"","sources":["../../src/contracts/slasher_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAM3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IALtB,OAAO,CAAC,QAAQ,CAAuD;gBAGpD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EACnB,GAAG,yCAAmC;IASzD;;;;OAIG;IACU,eAAe,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1E;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAK7C;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjD;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;CAIhD"}
|
|
1
|
+
{"version":3,"file":"slasher_contract.d.ts","sourceRoot":"","sources":["../../src/contracts/slasher_contract.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAM3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;GAEG;AACH,qBAAa,eAAe;IAIxB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,GAAG;IALtB,OAAO,CAAC,QAAQ,CAAuD;gBAGpD,MAAM,EAAE,UAAU,EAClB,OAAO,EAAE,UAAU,EACnB,GAAG,yCAAmC;IASzD;;;;OAIG;IACU,eAAe,CAAC,cAAc,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAS1E;;;OAGG;IACU,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC;IASlD;;;OAGG;IACU,SAAS,IAAI,OAAO,CAAC,UAAU,CAAC;IAK7C;;;OAGG;IACU,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC;IAK1D;;;OAGG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjD;;;OAGG;IACU,WAAW,IAAI,OAAO,CAAC,UAAU,CAAC;CAIhD"}
|
|
@@ -34,6 +34,17 @@ import { getContract } from 'viem';
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
/**
|
|
37
|
+
* Checks if slashing is currently enabled. Slashing can be disabled by the vetoer.
|
|
38
|
+
* @returns True if slashing is enabled, false otherwise
|
|
39
|
+
*/ async isSlashingEnabled() {
|
|
40
|
+
try {
|
|
41
|
+
return await this.contract.read.isSlashingEnabled();
|
|
42
|
+
} catch (error) {
|
|
43
|
+
this.log.error(`Error checking if slashing is enabled`, error);
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
37
48
|
* Gets the current vetoer address.
|
|
38
49
|
* @returns The vetoer address
|
|
39
50
|
*/ async getVetoer() {
|
|
@@ -41,6 +52,13 @@ import { getContract } from 'viem';
|
|
|
41
52
|
return EthAddress.fromString(vetoer);
|
|
42
53
|
}
|
|
43
54
|
/**
|
|
55
|
+
* Gets the disable duration by the vetoer.
|
|
56
|
+
* @returns The disable duration in seconds
|
|
57
|
+
*/ async getSlashingDisableDuration() {
|
|
58
|
+
const duration = await this.contract.read.SLASHING_DISABLE_DURATION();
|
|
59
|
+
return Number(duration);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
44
62
|
* Gets the current governance address.
|
|
45
63
|
* @returns The governance address
|
|
46
64
|
*/ async getGovernance() {
|
|
@@ -8,7 +8,7 @@ import { type Chain, type ContractConstructorArgs, type HDAccount, type Hex, typ
|
|
|
8
8
|
import { type L1ContractsConfig } from './config.js';
|
|
9
9
|
import { RollupContract } from './contracts/rollup.js';
|
|
10
10
|
import type { L1ContractAddresses } from './l1_contract_addresses.js';
|
|
11
|
-
import { type GasPrice, type
|
|
11
|
+
import { type GasPrice, type L1TxConfig, type L1TxRequest, L1TxUtils, type L1TxUtilsConfig } from './l1_tx_utils/index.js';
|
|
12
12
|
import type { ExtendedViemWalletClient } from './types.js';
|
|
13
13
|
export declare const DEPLOYER_ADDRESS: Hex;
|
|
14
14
|
export type Operator = {
|
|
@@ -92,6 +92,8 @@ export interface DeployL1ContractsArgs extends Omit<L1ContractsConfig, keyof L1T
|
|
|
92
92
|
realVerifier: boolean;
|
|
93
93
|
/** The zk passport args */
|
|
94
94
|
zkPassportArgs?: ZKPassportArgs;
|
|
95
|
+
/** If provided, use this token for BOTH fee and staking assets (skip deployments) */
|
|
96
|
+
existingTokenAddress?: EthAddress;
|
|
95
97
|
}
|
|
96
98
|
export interface ZKPassportArgs {
|
|
97
99
|
/** Whether to use the mock zk passport verifier */
|
|
@@ -101,6 +103,12 @@ export interface ZKPassportArgs {
|
|
|
101
103
|
/** The scope of the zk passport (personhood, etc) */
|
|
102
104
|
zkPassportScope?: string;
|
|
103
105
|
}
|
|
106
|
+
/**
|
|
107
|
+
* Validates that the provided address points to a contract that resembles an ERC20 token.
|
|
108
|
+
* Checks for contract code and attempts common ERC20 view calls.
|
|
109
|
+
* Throws an error if validation fails.
|
|
110
|
+
*/
|
|
111
|
+
export declare function validateExistingErc20TokenAddress(l1Client: ExtendedViemWalletClient, tokenAddress: EthAddress, logger: Logger): Promise<void>;
|
|
104
112
|
export declare const deploySharedContracts: (l1Client: ExtendedViemWalletClient, deployer: L1Deployer, args: DeployL1ContractsArgs, logger: Logger) => Promise<{
|
|
105
113
|
feeAssetAddress: EthAddress;
|
|
106
114
|
feeAssetHandlerAddress: EthAddress | undefined;
|
|
@@ -135,7 +143,9 @@ export declare const deployRollup: (extendedClient: ExtendedViemWalletClient, de
|
|
|
135
143
|
rollup: RollupContract;
|
|
136
144
|
slashFactoryAddress: EthAddress;
|
|
137
145
|
}>;
|
|
138
|
-
export declare const handoverToGovernance: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, registryAddress: EthAddress, gseAddress: EthAddress, coinIssuerAddress: EthAddress, feeAssetAddress: EthAddress, governanceAddress: EthAddress, logger: Logger, acceleratedTestDeployments: boolean | undefined) => Promise<
|
|
146
|
+
export declare const handoverToGovernance: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, registryAddress: EthAddress, gseAddress: EthAddress, coinIssuerAddress: EthAddress, feeAssetAddress: EthAddress, governanceAddress: EthAddress, logger: Logger, acceleratedTestDeployments: boolean | undefined, useExternalToken?: boolean) => Promise<{
|
|
147
|
+
dateGatedRelayerAddress: EthAddress;
|
|
148
|
+
}>;
|
|
139
149
|
export declare const addMultipleValidators: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, gseAddress: Hex, rollupAddress: Hex, stakingAssetAddress: Hex, validators: Operator[], acceleratedTestDeployments: boolean | undefined, logger: Logger) => Promise<void>;
|
|
140
150
|
/**
|
|
141
151
|
* Initialize the fee asset handler and make it a minter on the fee asset.
|
|
@@ -173,9 +183,12 @@ export declare class L1Deployer {
|
|
|
173
183
|
constructor(client: ExtendedViemWalletClient, maybeSalt: number | undefined, dateProvider?: DateProvider, acceleratedTestDeployments?: boolean, logger?: Logger, txUtilsConfig?: L1TxUtilsConfig | undefined, createVerificationJson?: boolean);
|
|
174
184
|
deploy<const TAbi extends Abi>(params: ContractArtifacts<TAbi>, args?: ContractConstructorArgs<TAbi>, opts?: {
|
|
175
185
|
gasLimit?: bigint;
|
|
176
|
-
}): Promise<
|
|
186
|
+
}): Promise<{
|
|
187
|
+
address: EthAddress;
|
|
188
|
+
existed: boolean;
|
|
189
|
+
}>;
|
|
177
190
|
waitForDeployments(): Promise<void>;
|
|
178
|
-
sendTransaction(tx: L1TxRequest, options?:
|
|
191
|
+
sendTransaction(tx: L1TxRequest, options?: L1TxConfig): Promise<{
|
|
179
192
|
txHash: Hex;
|
|
180
193
|
gasLimit: bigint;
|
|
181
194
|
gasPrice: GasPrice;
|
|
@@ -202,6 +215,7 @@ export declare function deployL1Contract(extendedClient: ExtendedViemWalletClien
|
|
|
202
215
|
address: EthAddress;
|
|
203
216
|
txHash: Hex | undefined;
|
|
204
217
|
deployedLibraries?: VerificationLibraryEntry[];
|
|
218
|
+
existed: boolean;
|
|
205
219
|
}>;
|
|
206
220
|
export declare function getExpectedAddress(abi: Narrow<Abi | readonly unknown[]>, bytecode: Hex, args: readonly unknown[], salt: Hex): {
|
|
207
221
|
address: `0x${string}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_l1_contracts.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAwB,MAAM,0BAA0B,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,0BAA0B,CAAC;AAEnD,OAAO,EAAE,KAAK,MAAM,EAAgB,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAGvD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_l1_contracts.ts"],"names":[],"mappings":"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"}
|