@aztec/ethereum 0.0.1-commit.b655e406 → 0.0.1-commit.b9865e97
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/account.d.ts +1 -1
- package/dest/chain.d.ts +1 -1
- package/dest/client.d.ts +25 -3
- package/dest/client.d.ts.map +1 -1
- package/dest/client.js +60 -4
- package/dest/config.d.ts +29 -73
- package/dest/config.d.ts.map +1 -1
- package/dest/config.js +70 -387
- package/dest/constants.d.ts +1 -1
- package/dest/contracts/chain_state_override.d.ts +78 -0
- package/dest/contracts/chain_state_override.d.ts.map +1 -0
- package/dest/contracts/chain_state_override.js +137 -0
- package/dest/contracts/empire_base.d.ts +7 -5
- package/dest/contracts/empire_base.d.ts.map +1 -1
- package/dest/contracts/empire_base.js +1 -1
- package/dest/contracts/errors.d.ts +1 -1
- package/dest/contracts/errors.d.ts.map +1 -1
- package/dest/contracts/fee_asset_handler.d.ts +6 -5
- package/dest/contracts/fee_asset_handler.d.ts.map +1 -1
- package/dest/contracts/fee_asset_handler.js +11 -9
- package/dest/contracts/fee_asset_price_oracle.d.ts +105 -0
- package/dest/contracts/fee_asset_price_oracle.d.ts.map +1 -0
- package/dest/contracts/fee_asset_price_oracle.js +656 -0
- package/dest/contracts/fee_juice.d.ts +1 -1
- package/dest/contracts/fee_juice.d.ts.map +1 -1
- package/dest/contracts/governance.d.ts +113 -36
- package/dest/contracts/governance.d.ts.map +1 -1
- package/dest/contracts/governance.js +207 -16
- package/dest/contracts/governance_proposer.d.ts +38 -4
- package/dest/contracts/governance_proposer.d.ts.map +1 -1
- package/dest/contracts/governance_proposer.js +455 -12
- package/dest/contracts/gse.d.ts +1 -1
- package/dest/contracts/gse.d.ts.map +1 -1
- package/dest/contracts/inbox.d.ts +24 -3
- package/dest/contracts/inbox.d.ts.map +1 -1
- package/dest/contracts/inbox.js +42 -2
- package/dest/contracts/index.d.ts +6 -3
- package/dest/contracts/index.d.ts.map +1 -1
- package/dest/contracts/index.js +5 -2
- package/dest/contracts/log.d.ts +13 -0
- package/dest/contracts/log.d.ts.map +1 -0
- package/dest/contracts/log.js +1 -0
- package/dest/contracts/multicall.d.ts +127 -12
- package/dest/contracts/multicall.d.ts.map +1 -1
- package/dest/contracts/multicall.js +201 -93
- package/dest/contracts/outbox.d.ts +64 -0
- package/dest/contracts/outbox.d.ts.map +1 -0
- package/dest/contracts/outbox.js +113 -0
- package/dest/contracts/registry.d.ts +3 -1
- package/dest/contracts/registry.d.ts.map +1 -1
- package/dest/contracts/registry.js +30 -1
- package/dest/contracts/rollup.d.ts +5432 -131
- package/dest/contracts/rollup.d.ts.map +1 -1
- package/dest/contracts/rollup.js +1114 -231
- package/dest/contracts/slasher_contract.d.ts +1 -1
- package/dest/contracts/slasher_contract.d.ts.map +1 -1
- package/dest/contracts/{tally_slashing_proposer.d.ts → slashing_proposer.d.ts} +11 -10
- package/dest/contracts/slashing_proposer.d.ts.map +1 -0
- package/dest/contracts/{tally_slashing_proposer.js → slashing_proposer.js} +21 -16
- package/dest/contracts/utils.d.ts +1 -1
- package/dest/deploy_aztec_l1_contracts.d.ts +257 -0
- package/dest/deploy_aztec_l1_contracts.d.ts.map +1 -0
- package/dest/deploy_aztec_l1_contracts.js +410 -0
- package/dest/deploy_l1_contract.d.ts +68 -0
- package/dest/deploy_l1_contract.d.ts.map +1 -0
- package/dest/deploy_l1_contract.js +312 -0
- package/dest/eth-signer/eth-signer.d.ts +1 -1
- package/dest/eth-signer/index.d.ts +1 -1
- package/dest/forwarder_proxy.d.ts +32 -0
- package/dest/forwarder_proxy.d.ts.map +1 -0
- package/dest/forwarder_proxy.js +93 -0
- package/dest/generated/l1-contracts-defaults.d.ts +30 -0
- package/dest/generated/l1-contracts-defaults.d.ts.map +1 -0
- package/dest/generated/l1-contracts-defaults.js +30 -0
- package/dest/l1_artifacts.d.ts +19816 -16730
- package/dest/l1_artifacts.d.ts.map +1 -1
- package/dest/l1_artifacts.js +9 -24
- package/dest/l1_contract_addresses.d.ts +61 -65
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +99 -80
- package/dest/l1_reader.d.ts +7 -5
- package/dest/l1_reader.d.ts.map +1 -1
- package/dest/l1_reader.js +15 -7
- package/dest/l1_tx_utils/config.d.ts +11 -5
- package/dest/l1_tx_utils/config.d.ts.map +1 -1
- package/dest/l1_tx_utils/config.js +43 -7
- package/dest/l1_tx_utils/constants.d.ts +8 -2
- package/dest/l1_tx_utils/constants.d.ts.map +1 -1
- package/dest/l1_tx_utils/constants.js +27 -2
- package/dest/l1_tx_utils/factory.d.ts +18 -10
- package/dest/l1_tx_utils/factory.d.ts.map +1 -1
- package/dest/l1_tx_utils/factory.js +17 -7
- package/dest/l1_tx_utils/fee-strategies/index.d.ts +10 -0
- package/dest/l1_tx_utils/fee-strategies/index.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/index.js +12 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts +8 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive.js +129 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts +23 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.js +191 -0
- package/dest/l1_tx_utils/fee-strategies/types.d.ts +51 -0
- package/dest/l1_tx_utils/fee-strategies/types.d.ts.map +1 -0
- package/dest/l1_tx_utils/fee-strategies/types.js +3 -0
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts +41 -0
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.d.ts.map +1 -0
- package/dest/l1_tx_utils/forwarder_l1_tx_utils.js +42 -0
- package/dest/l1_tx_utils/index-blobs.d.ts +3 -0
- package/dest/l1_tx_utils/index-blobs.d.ts.map +1 -0
- package/dest/l1_tx_utils/index-blobs.js +2 -0
- package/dest/l1_tx_utils/index.d.ts +4 -1
- package/dest/l1_tx_utils/index.d.ts.map +1 -1
- package/dest/l1_tx_utils/index.js +3 -0
- package/dest/l1_tx_utils/interfaces.d.ts +2 -2
- package/dest/l1_tx_utils/interfaces.d.ts.map +1 -1
- package/dest/l1_tx_utils/l1_fee_analyzer.d.ts +233 -0
- package/dest/l1_tx_utils/l1_fee_analyzer.d.ts.map +1 -0
- package/dest/l1_tx_utils/l1_fee_analyzer.js +506 -0
- package/dest/l1_tx_utils/l1_tx_utils.d.ts +26 -8
- package/dest/l1_tx_utils/l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/l1_tx_utils.js +118 -70
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts +19 -30
- package/dest/l1_tx_utils/readonly_l1_tx_utils.d.ts.map +1 -1
- package/dest/l1_tx_utils/readonly_l1_tx_utils.js +65 -168
- package/dest/l1_tx_utils/signer.d.ts +1 -1
- package/dest/l1_tx_utils/tx_delayer.d.ts +58 -0
- package/dest/l1_tx_utils/tx_delayer.d.ts.map +1 -0
- package/dest/{test → l1_tx_utils}/tx_delayer.js +70 -39
- package/dest/l1_tx_utils/types.d.ts +1 -1
- package/dest/l1_tx_utils/types.d.ts.map +1 -1
- package/dest/l1_tx_utils/utils.d.ts +1 -1
- package/dest/l1_types.d.ts +1 -1
- package/dest/publisher_manager.d.ts +21 -6
- package/dest/publisher_manager.d.ts.map +1 -1
- package/dest/publisher_manager.js +81 -7
- package/dest/queries.d.ts +14 -3
- package/dest/queries.d.ts.map +1 -1
- package/dest/queries.js +78 -9
- package/dest/test/chain_monitor.d.ts +48 -25
- package/dest/test/chain_monitor.d.ts.map +1 -1
- package/dest/test/chain_monitor.js +71 -38
- package/dest/test/eth_cheat_codes.d.ts +22 -6
- package/dest/test/eth_cheat_codes.d.ts.map +1 -1
- package/dest/test/eth_cheat_codes.js +28 -7
- package/dest/test/eth_cheat_codes_with_state.d.ts +1 -1
- package/dest/test/eth_cheat_codes_with_state.d.ts.map +1 -1
- package/dest/test/index.d.ts +1 -3
- package/dest/test/index.d.ts.map +1 -1
- package/dest/test/index.js +0 -2
- package/dest/test/rollup_cheat_codes.d.ts +46 -14
- package/dest/test/rollup_cheat_codes.d.ts.map +1 -1
- package/dest/test/rollup_cheat_codes.js +118 -42
- package/dest/test/start_anvil.d.ts +25 -2
- package/dest/test/start_anvil.d.ts.map +1 -1
- package/dest/test/start_anvil.js +143 -28
- package/dest/test/upgrade_utils.d.ts +1 -1
- package/dest/test/upgrade_utils.js +2 -2
- package/dest/types.d.ts +57 -2
- package/dest/types.d.ts.map +1 -1
- package/dest/utils.d.ts +24 -4
- package/dest/utils.d.ts.map +1 -1
- package/dest/utils.js +112 -16
- package/dest/zkPassportVerifierAddress.d.ts +1 -1
- package/package.json +35 -17
- package/src/client.ts +66 -2
- package/src/config.ts +91 -469
- package/src/contracts/README.md +157 -0
- package/src/contracts/chain_state_override.ts +200 -0
- package/src/contracts/empire_base.ts +6 -5
- package/src/contracts/fee_asset_handler.ts +10 -7
- package/src/contracts/fee_asset_price_oracle.ts +285 -0
- package/src/contracts/governance.ts +279 -13
- package/src/contracts/governance_proposer.ts +74 -7
- package/src/contracts/inbox.ts +64 -4
- package/src/contracts/index.ts +5 -2
- package/src/contracts/log.ts +13 -0
- package/src/contracts/multicall.ts +243 -102
- package/src/contracts/outbox.ts +132 -0
- package/src/contracts/registry.ts +31 -1
- package/src/contracts/rollup.ts +819 -192
- package/src/contracts/{tally_slashing_proposer.ts → slashing_proposer.ts} +26 -21
- package/src/deploy_aztec_l1_contracts.ts +646 -0
- package/src/deploy_l1_contract.ts +362 -0
- package/src/forwarder_proxy.ts +108 -0
- package/src/generated/l1-contracts-defaults.ts +32 -0
- package/src/l1_artifacts.ts +12 -35
- package/src/l1_contract_addresses.ts +120 -92
- package/src/l1_reader.ts +25 -10
- package/src/l1_tx_utils/config.ts +52 -11
- package/src/l1_tx_utils/constants.ts +13 -2
- package/src/l1_tx_utils/factory.ts +31 -31
- package/src/l1_tx_utils/fee-strategies/index.ts +22 -0
- package/src/l1_tx_utils/fee-strategies/p75_competitive.ts +163 -0
- package/src/l1_tx_utils/fee-strategies/p75_competitive_blob_txs_only.ts +245 -0
- package/src/l1_tx_utils/fee-strategies/types.ts +56 -0
- package/src/l1_tx_utils/forwarder_l1_tx_utils.ts +108 -0
- package/src/l1_tx_utils/index-blobs.ts +2 -0
- package/src/l1_tx_utils/index.ts +3 -0
- package/src/l1_tx_utils/interfaces.ts +1 -1
- package/src/l1_tx_utils/l1_fee_analyzer.ts +803 -0
- package/src/l1_tx_utils/l1_tx_utils.ts +123 -52
- package/src/l1_tx_utils/readonly_l1_tx_utils.ts +79 -214
- package/src/{test → l1_tx_utils}/tx_delayer.ts +97 -58
- package/src/publisher_manager.ts +107 -10
- package/src/queries.ts +87 -10
- package/src/test/chain_monitor.ts +115 -51
- package/src/test/eth_cheat_codes.ts +25 -7
- package/src/test/index.ts +0 -2
- package/src/test/rollup_cheat_codes.ts +123 -45
- package/src/test/start_anvil.ts +179 -27
- package/src/test/upgrade_utils.ts +2 -2
- package/src/types.ts +62 -0
- package/src/utils.ts +128 -19
- package/dest/contracts/empire_slashing_proposer.d.ts +0 -65
- package/dest/contracts/empire_slashing_proposer.d.ts.map +0 -1
- package/dest/contracts/empire_slashing_proposer.js +0 -194
- package/dest/contracts/tally_slashing_proposer.d.ts.map +0 -1
- package/dest/deploy_l1_contracts.d.ts +0 -226
- package/dest/deploy_l1_contracts.d.ts.map +0 -1
- package/dest/deploy_l1_contracts.js +0 -1473
- package/dest/index.d.ts +0 -18
- package/dest/index.d.ts.map +0 -1
- package/dest/index.js +0 -17
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts +0 -26
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.d.ts.map +0 -1
- package/dest/l1_tx_utils/l1_tx_utils_with_blobs.js +0 -26
- package/dest/test/delayed_tx_utils.d.ts +0 -13
- package/dest/test/delayed_tx_utils.d.ts.map +0 -1
- package/dest/test/delayed_tx_utils.js +0 -28
- package/dest/test/tx_delayer.d.ts +0 -36
- package/dest/test/tx_delayer.d.ts.map +0 -1
- package/src/contracts/empire_slashing_proposer.ts +0 -259
- package/src/deploy_l1_contracts.ts +0 -1849
- package/src/index.ts +0 -17
- package/src/l1_tx_utils/l1_tx_utils_with_blobs.ts +0 -77
- package/src/test/delayed_tx_utils.ts +0 -52
|
@@ -1,194 +0,0 @@
|
|
|
1
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
import { createLogger } from '@aztec/foundation/log';
|
|
3
|
-
import { retryUntil } from '@aztec/foundation/retry';
|
|
4
|
-
import { EmpireSlashingProposerAbi } from '@aztec/l1-artifacts/EmpireSlashingProposerAbi';
|
|
5
|
-
import EventEmitter from 'events';
|
|
6
|
-
import { encodeFunctionData, getContract } from 'viem';
|
|
7
|
-
import { FormattedViemError, tryExtractEvent } from '../utils.js';
|
|
8
|
-
import { encodeSignal, encodeSignalWithSignature, signSignalWithSig } from './empire_base.js';
|
|
9
|
-
export class ProposalAlreadyExecutedError extends Error {
|
|
10
|
-
constructor(round){
|
|
11
|
-
super(`Proposal already executed: ${round}`);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
export class EmpireSlashingProposerContract extends EventEmitter {
|
|
15
|
-
client;
|
|
16
|
-
logger;
|
|
17
|
-
proposer;
|
|
18
|
-
type;
|
|
19
|
-
constructor(client, address){
|
|
20
|
-
super(), this.client = client, this.logger = createLogger('ethereum:contracts:empire_slashing_proposer'), this.type = 'empire';
|
|
21
|
-
this.proposer = getContract({
|
|
22
|
-
address: typeof address === 'string' ? address : address.toString(),
|
|
23
|
-
abi: EmpireSlashingProposerAbi,
|
|
24
|
-
client
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
get address() {
|
|
28
|
-
return EthAddress.fromString(this.proposer.address);
|
|
29
|
-
}
|
|
30
|
-
getQuorumSize() {
|
|
31
|
-
return this.proposer.read.QUORUM_SIZE();
|
|
32
|
-
}
|
|
33
|
-
getRoundSize() {
|
|
34
|
-
return this.proposer.read.ROUND_SIZE();
|
|
35
|
-
}
|
|
36
|
-
getLifetimeInRounds() {
|
|
37
|
-
return this.proposer.read.LIFETIME_IN_ROUNDS();
|
|
38
|
-
}
|
|
39
|
-
getExecutionDelayInRounds() {
|
|
40
|
-
return this.proposer.read.EXECUTION_DELAY_IN_ROUNDS();
|
|
41
|
-
}
|
|
42
|
-
getCurrentRound() {
|
|
43
|
-
return this.proposer.read.getCurrentRound();
|
|
44
|
-
}
|
|
45
|
-
computeRound(slot) {
|
|
46
|
-
return this.proposer.read.computeRound([
|
|
47
|
-
slot
|
|
48
|
-
]);
|
|
49
|
-
}
|
|
50
|
-
getInstance() {
|
|
51
|
-
return this.proposer.read.getInstance();
|
|
52
|
-
}
|
|
53
|
-
async getRoundInfo(rollupAddress, round) {
|
|
54
|
-
return await this.proposer.read.getRoundData([
|
|
55
|
-
rollupAddress,
|
|
56
|
-
round
|
|
57
|
-
]);
|
|
58
|
-
}
|
|
59
|
-
getPayloadSignals(rollupAddress, round, payload) {
|
|
60
|
-
return this.proposer.read.signalCount([
|
|
61
|
-
rollupAddress,
|
|
62
|
-
round,
|
|
63
|
-
payload
|
|
64
|
-
]);
|
|
65
|
-
}
|
|
66
|
-
createSignalRequest(payload) {
|
|
67
|
-
return {
|
|
68
|
-
to: this.address.toString(),
|
|
69
|
-
data: encodeSignal(payload)
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
async createSignalRequestWithSignature(payload, slot, chainId, signerAddress, signer) {
|
|
73
|
-
const signature = await signSignalWithSig(signer, payload, slot, await this.getInstance(), this.address.toString(), chainId);
|
|
74
|
-
return {
|
|
75
|
-
to: this.address.toString(),
|
|
76
|
-
data: encodeSignalWithSignature(payload, signature)
|
|
77
|
-
};
|
|
78
|
-
}
|
|
79
|
-
listenToSubmittablePayloads(callback) {
|
|
80
|
-
return this.proposer.watchEvent.PayloadSubmittable({}, {
|
|
81
|
-
strict: true,
|
|
82
|
-
onLogs: (logs)=>{
|
|
83
|
-
for (const log of logs){
|
|
84
|
-
const { payload, round } = log.args;
|
|
85
|
-
if (payload && round) {
|
|
86
|
-
callback({
|
|
87
|
-
payload,
|
|
88
|
-
round
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
listenToPayloadSubmitted(callback) {
|
|
96
|
-
return this.proposer.watchEvent.PayloadSubmitted({}, {
|
|
97
|
-
onLogs: (logs)=>{
|
|
98
|
-
for (const log of logs){
|
|
99
|
-
const { payload, round } = log.args;
|
|
100
|
-
if (round && payload) {
|
|
101
|
-
callback({
|
|
102
|
-
round,
|
|
103
|
-
payload
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
listenToSignalCasted(callback) {
|
|
111
|
-
return this.proposer.watchEvent.SignalCast({}, {
|
|
112
|
-
onLogs: (logs)=>{
|
|
113
|
-
for (const log of logs){
|
|
114
|
-
const { round, payload, signaler } = log.args;
|
|
115
|
-
if (round && payload && signaler) {
|
|
116
|
-
callback({
|
|
117
|
-
round,
|
|
118
|
-
payload,
|
|
119
|
-
signaler
|
|
120
|
-
});
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
/** Creates an L1TxRequest to submit the round winner for the given round. */ buildExecuteRoundRequest(round) {
|
|
127
|
-
return {
|
|
128
|
-
to: this.address.toString(),
|
|
129
|
-
data: encodeFunctionData({
|
|
130
|
-
abi: EmpireSlashingProposerAbi,
|
|
131
|
-
functionName: 'submitRoundWinner',
|
|
132
|
-
args: [
|
|
133
|
-
round
|
|
134
|
-
]
|
|
135
|
-
})
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
/** Tries to extract a PayloadSubmitted event from the given logs. */ tryExtractPayloadSubmittedEvent(logs) {
|
|
139
|
-
return tryExtractEvent(logs, this.address.toString(), EmpireSlashingProposerAbi, 'PayloadSubmitted');
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Wait for a round to be reached.
|
|
143
|
-
*
|
|
144
|
-
* @param round - The round to wait for.
|
|
145
|
-
* @param pollingIntervalSeconds - The interval in seconds to poll for the round.
|
|
146
|
-
* @returns True if the round was reached, false otherwise.
|
|
147
|
-
*/ waitForRound(round, pollingIntervalSeconds = 1) {
|
|
148
|
-
return retryUntil(async ()=>{
|
|
149
|
-
const currentRound = await this.proposer.read.getCurrentRound().catch((e)=>{
|
|
150
|
-
this.logger.error('Error getting current round', e);
|
|
151
|
-
return undefined;
|
|
152
|
-
});
|
|
153
|
-
return currentRound !== undefined && currentRound >= round;
|
|
154
|
-
}, `Waiting for round ${round} to be reached`, 0, pollingIntervalSeconds).catch(()=>false);
|
|
155
|
-
}
|
|
156
|
-
async executeRound(txUtils, round) {
|
|
157
|
-
if (typeof round === 'number') {
|
|
158
|
-
round = BigInt(round);
|
|
159
|
-
}
|
|
160
|
-
const args = {
|
|
161
|
-
abi: EmpireSlashingProposerAbi,
|
|
162
|
-
functionName: 'submitRoundWinner',
|
|
163
|
-
args: [
|
|
164
|
-
round
|
|
165
|
-
]
|
|
166
|
-
};
|
|
167
|
-
const data = encodeFunctionData(args);
|
|
168
|
-
const response = await txUtils.sendAndMonitorTransaction({
|
|
169
|
-
to: this.address.toString(),
|
|
170
|
-
data
|
|
171
|
-
}, {
|
|
172
|
-
// Gas estimation is way off for this, likely because we are creating the contract/selector to call
|
|
173
|
-
// for the actual slashing dynamically.
|
|
174
|
-
gasLimitBufferPercentage: 50
|
|
175
|
-
}).catch((err)=>{
|
|
176
|
-
if (err instanceof FormattedViemError && err.message.includes('ProposalAlreadyExecuted')) {
|
|
177
|
-
throw new ProposalAlreadyExecutedError(round);
|
|
178
|
-
}
|
|
179
|
-
throw err;
|
|
180
|
-
});
|
|
181
|
-
if (response.receipt.status === 'reverted') {
|
|
182
|
-
const error = await txUtils.tryGetErrorFromRevertedTx(data, {
|
|
183
|
-
...args,
|
|
184
|
-
address: this.address.toString()
|
|
185
|
-
}, undefined, []);
|
|
186
|
-
if (error?.includes('ProposalAlreadyExecuted')) {
|
|
187
|
-
throw new ProposalAlreadyExecutedError(round);
|
|
188
|
-
}
|
|
189
|
-
const errorMessage = `Failed to execute round ${round}, TxHash: ${response.receipt.transactionHash}, Error: ${error ?? 'Unknown error'}`;
|
|
190
|
-
throw new Error(errorMessage);
|
|
191
|
-
}
|
|
192
|
-
return response;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tally_slashing_proposer.d.ts","sourceRoot":"","sources":["../../src/contracts/tally_slashing_proposer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,226 +0,0 @@
|
|
|
1
|
-
import { SecretValue } from '@aztec/foundation/config';
|
|
2
|
-
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
3
|
-
import type { Fr } from '@aztec/foundation/fields';
|
|
4
|
-
import { type Logger } from '@aztec/foundation/log';
|
|
5
|
-
import { DateProvider } from '@aztec/foundation/timer';
|
|
6
|
-
import type { Abi, Narrow } from 'abitype';
|
|
7
|
-
import { type Chain, type ContractConstructorArgs, type HDAccount, type Hex, type PrivateKeyAccount } from 'viem';
|
|
8
|
-
import { type L1ContractsConfig } from './config.js';
|
|
9
|
-
import { RollupContract } from './contracts/rollup.js';
|
|
10
|
-
import type { L1ContractAddresses } from './l1_contract_addresses.js';
|
|
11
|
-
import { type GasPrice, type L1TxConfig, type L1TxRequest, L1TxUtils, type L1TxUtilsConfig } from './l1_tx_utils/index.js';
|
|
12
|
-
import type { ExtendedViemWalletClient } from './types.js';
|
|
13
|
-
export declare const DEPLOYER_ADDRESS: Hex;
|
|
14
|
-
export type Operator = {
|
|
15
|
-
attester: EthAddress;
|
|
16
|
-
withdrawer: EthAddress;
|
|
17
|
-
bn254SecretKey: SecretValue<bigint>;
|
|
18
|
-
};
|
|
19
|
-
/**
|
|
20
|
-
* Return type of the deployL1Contract function.
|
|
21
|
-
*/
|
|
22
|
-
export type DeployL1ContractsReturnType = {
|
|
23
|
-
/** Extended Wallet Client Type. */
|
|
24
|
-
l1Client: ExtendedViemWalletClient;
|
|
25
|
-
/** The currently deployed l1 contract addresses */
|
|
26
|
-
l1ContractAddresses: L1ContractAddresses;
|
|
27
|
-
/** Version of the current rollup contract. */
|
|
28
|
-
rollupVersion: number;
|
|
29
|
-
};
|
|
30
|
-
export interface LinkReferences {
|
|
31
|
-
[fileName: string]: {
|
|
32
|
-
[contractName: string]: ReadonlyArray<{
|
|
33
|
-
start: number;
|
|
34
|
-
length: number;
|
|
35
|
-
}>;
|
|
36
|
-
};
|
|
37
|
-
}
|
|
38
|
-
export interface Libraries {
|
|
39
|
-
linkReferences: LinkReferences;
|
|
40
|
-
libraryCode: Record<string, ContractArtifacts>;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* Contract artifacts
|
|
44
|
-
*/
|
|
45
|
-
export interface ContractArtifacts<TAbi extends Abi | readonly unknown[] = Abi> {
|
|
46
|
-
/**
|
|
47
|
-
* The contract name.
|
|
48
|
-
*/
|
|
49
|
-
name: string;
|
|
50
|
-
/**
|
|
51
|
-
* The contract abi.
|
|
52
|
-
*/
|
|
53
|
-
contractAbi: Narrow<TAbi>;
|
|
54
|
-
/**
|
|
55
|
-
* The contract bytecode
|
|
56
|
-
*/
|
|
57
|
-
contractBytecode: Hex;
|
|
58
|
-
/**
|
|
59
|
-
* The contract libraries
|
|
60
|
-
*/
|
|
61
|
-
libraries?: Libraries;
|
|
62
|
-
}
|
|
63
|
-
export type VerificationLibraryEntry = {
|
|
64
|
-
file: string;
|
|
65
|
-
contract: string;
|
|
66
|
-
address: string;
|
|
67
|
-
};
|
|
68
|
-
export type VerificationRecord = {
|
|
69
|
-
name: string;
|
|
70
|
-
address: string;
|
|
71
|
-
constructorArgsHex: Hex;
|
|
72
|
-
libraries: VerificationLibraryEntry[];
|
|
73
|
-
};
|
|
74
|
-
export interface DeployL1ContractsArgs extends Omit<L1ContractsConfig, keyof L1TxUtilsConfig> {
|
|
75
|
-
/** The vk tree root. */
|
|
76
|
-
vkTreeRoot: Fr;
|
|
77
|
-
/** The hash of the protocol contracts. */
|
|
78
|
-
protocolContractsHash: Fr;
|
|
79
|
-
/** The genesis root of the archive tree. */
|
|
80
|
-
genesisArchiveRoot: Fr;
|
|
81
|
-
/** The salt for CREATE2 deployment. */
|
|
82
|
-
salt: number | undefined;
|
|
83
|
-
/** The initial validators for the rollup contract. */
|
|
84
|
-
initialValidators?: Operator[];
|
|
85
|
-
/** Configuration for the L1 tx utils module. */
|
|
86
|
-
l1TxConfig?: Partial<L1TxUtilsConfig>;
|
|
87
|
-
/** Enable fast mode for deployments (fire and forget transactions) */
|
|
88
|
-
acceleratedTestDeployments?: boolean;
|
|
89
|
-
/** The initial balance of the fee juice portal. This is the amount of fee juice that is prefunded to accounts */
|
|
90
|
-
feeJuicePortalInitialBalance?: bigint;
|
|
91
|
-
/** Whether to deploy the real verifier or the mock verifier */
|
|
92
|
-
realVerifier: boolean;
|
|
93
|
-
/** The zk passport args */
|
|
94
|
-
zkPassportArgs?: ZKPassportArgs;
|
|
95
|
-
/** If provided, use this token for BOTH fee and staking assets (skip deployments) */
|
|
96
|
-
existingTokenAddress?: EthAddress;
|
|
97
|
-
}
|
|
98
|
-
export interface ZKPassportArgs {
|
|
99
|
-
/** Whether to use the mock zk passport verifier */
|
|
100
|
-
mockZkPassportVerifier?: boolean;
|
|
101
|
-
/** The domain of the zk passport (url) */
|
|
102
|
-
zkPassportDomain?: string;
|
|
103
|
-
/** The scope of the zk passport (personhood, etc) */
|
|
104
|
-
zkPassportScope?: string;
|
|
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>;
|
|
112
|
-
export declare const deploySharedContracts: (l1Client: ExtendedViemWalletClient, deployer: L1Deployer, args: DeployL1ContractsArgs, logger: Logger) => Promise<{
|
|
113
|
-
feeAssetAddress: EthAddress;
|
|
114
|
-
feeAssetHandlerAddress: EthAddress | undefined;
|
|
115
|
-
stakingAssetAddress: EthAddress;
|
|
116
|
-
stakingAssetHandlerAddress: EthAddress | undefined;
|
|
117
|
-
zkPassportVerifierAddress: EthAddress | undefined;
|
|
118
|
-
registryAddress: EthAddress;
|
|
119
|
-
gseAddress: EthAddress;
|
|
120
|
-
governanceAddress: EthAddress;
|
|
121
|
-
governanceProposerAddress: EthAddress;
|
|
122
|
-
coinIssuerAddress: EthAddress;
|
|
123
|
-
rewardDistributorAddress: EthAddress;
|
|
124
|
-
}>;
|
|
125
|
-
/**
|
|
126
|
-
* Deploys a new rollup, using the existing canonical version to derive certain values (addresses of assets etc).
|
|
127
|
-
* @param clients - The L1 clients.
|
|
128
|
-
* @param args - The deployment arguments.
|
|
129
|
-
* @param registryAddress - The address of the registry.
|
|
130
|
-
* @param logger - The logger.
|
|
131
|
-
* @param txUtilsConfig - The L1 tx utils config.
|
|
132
|
-
* @param createVerificationJson - Optional path to write verification data for forge verify.
|
|
133
|
-
*/
|
|
134
|
-
export declare const deployRollupForUpgrade: (extendedClient: ExtendedViemWalletClient, args: Omit<DeployL1ContractsArgs, "governanceProposerQuorum" | "governanceProposerRoundSize" | "ejectionThreshold" | "activationThreshold">, registryAddress: EthAddress, logger: Logger, txUtilsConfig: L1TxUtilsConfig, createVerificationJson?: string | false) => Promise<{
|
|
135
|
-
rollup: RollupContract;
|
|
136
|
-
slashFactoryAddress: EthAddress;
|
|
137
|
-
}>;
|
|
138
|
-
export declare const deploySlashFactory: (deployer: L1Deployer, rollupAddress: Hex, logger: Logger) => Promise<EthAddress>;
|
|
139
|
-
export declare const deployUpgradePayload: (deployer: L1Deployer, addresses: Pick<L1ContractAddresses, "registryAddress" | "rollupAddress">) => Promise<EthAddress>;
|
|
140
|
-
/**
|
|
141
|
-
* Deploys a new rollup contract, funds and initializes the fee juice portal, and initializes the validator set.
|
|
142
|
-
*/
|
|
143
|
-
export declare const deployRollup: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, args: Omit<DeployL1ContractsArgs, "governanceProposerQuorum" | "governanceProposerRoundSize" | "ejectionThreshold" | "activationThreshold">, addresses: Pick<L1ContractAddresses, "feeJuiceAddress" | "registryAddress" | "rewardDistributorAddress" | "stakingAssetAddress" | "gseAddress" | "governanceAddress">, logger: Logger) => Promise<{
|
|
144
|
-
rollup: RollupContract;
|
|
145
|
-
slashFactoryAddress: EthAddress;
|
|
146
|
-
}>;
|
|
147
|
-
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<{
|
|
148
|
-
dateGatedRelayerAddress: EthAddress;
|
|
149
|
-
}>;
|
|
150
|
-
export declare const addMultipleValidators: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, gseAddress: Hex, rollupAddress: Hex, stakingAssetAddress: Hex, validators: Operator[], acceleratedTestDeployments: boolean | undefined, logger: Logger) => Promise<void>;
|
|
151
|
-
/**
|
|
152
|
-
* Initialize the fee asset handler and make it a minter on the fee asset.
|
|
153
|
-
* @note This function will only be used for testing purposes.
|
|
154
|
-
*
|
|
155
|
-
* @param extendedClient - The L1 clients.
|
|
156
|
-
* @param deployer - The L1 deployer.
|
|
157
|
-
* @param feeAssetAddress - The address of the fee asset.
|
|
158
|
-
* @param logger - The logger.
|
|
159
|
-
*/
|
|
160
|
-
export declare const cheat_initializeFeeAssetHandler: (extendedClient: ExtendedViemWalletClient, deployer: L1Deployer, feeAssetAddress: EthAddress, logger: Logger) => Promise<{
|
|
161
|
-
feeAssetHandlerAddress: EthAddress;
|
|
162
|
-
txHash: Hex;
|
|
163
|
-
}>;
|
|
164
|
-
/**
|
|
165
|
-
* Deploys the aztec L1 contracts; Rollup & (optionally) Decoder Helper.
|
|
166
|
-
* @param rpcUrls - List of URLs of the ETH RPC to use for deployment.
|
|
167
|
-
* @param account - Private Key or HD Account that will deploy the contracts.
|
|
168
|
-
* @param chain - The chain instance to deploy to.
|
|
169
|
-
* @param logger - A logger object.
|
|
170
|
-
* @param args - Arguments for initialization of L1 contracts
|
|
171
|
-
* @returns A list of ETH addresses of the deployed contracts.
|
|
172
|
-
*/
|
|
173
|
-
export declare const deployL1Contracts: (rpcUrls: string[], account: HDAccount | PrivateKeyAccount, chain: Chain, logger: Logger, args: DeployL1ContractsArgs, txUtilsConfig?: L1TxUtilsConfig, createVerificationJson?: string | false) => Promise<DeployL1ContractsReturnType>;
|
|
174
|
-
export declare class L1Deployer {
|
|
175
|
-
readonly client: ExtendedViemWalletClient;
|
|
176
|
-
private acceleratedTestDeployments;
|
|
177
|
-
private logger;
|
|
178
|
-
private txUtilsConfig?;
|
|
179
|
-
private createVerificationJson;
|
|
180
|
-
private salt;
|
|
181
|
-
private txHashes;
|
|
182
|
-
readonly l1TxUtils: L1TxUtils;
|
|
183
|
-
readonly verificationRecords: VerificationRecord[];
|
|
184
|
-
constructor(client: ExtendedViemWalletClient, maybeSalt: number | undefined, dateProvider?: DateProvider, acceleratedTestDeployments?: boolean, logger?: Logger, txUtilsConfig?: L1TxUtilsConfig | undefined, createVerificationJson?: boolean);
|
|
185
|
-
deploy<const TAbi extends Abi>(params: ContractArtifacts<TAbi>, args?: ContractConstructorArgs<TAbi>, opts?: {
|
|
186
|
-
gasLimit?: bigint;
|
|
187
|
-
}): Promise<{
|
|
188
|
-
address: EthAddress;
|
|
189
|
-
existed: boolean;
|
|
190
|
-
}>;
|
|
191
|
-
waitForDeployments(): Promise<void>;
|
|
192
|
-
sendTransaction(tx: L1TxRequest, options?: L1TxConfig): Promise<{
|
|
193
|
-
txHash: Hex;
|
|
194
|
-
gasLimit: bigint;
|
|
195
|
-
gasPrice: GasPrice;
|
|
196
|
-
}>;
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Helper function to deploy ETH contracts.
|
|
200
|
-
* @param walletClient - A viem WalletClient.
|
|
201
|
-
* @param publicClient - A viem PublicClient.
|
|
202
|
-
* @param abi - The ETH contract's ABI (as abitype's Abi).
|
|
203
|
-
* @param bytecode - The ETH contract's bytecode.
|
|
204
|
-
* @param args - Constructor arguments for the contract.
|
|
205
|
-
* @param salt - Optional salt for CREATE2 deployment (does not wait for deployment tx to be mined if set, does not send tx if contract already exists).
|
|
206
|
-
* @returns The ETH address the contract was deployed to.
|
|
207
|
-
*/
|
|
208
|
-
export declare function deployL1Contract(extendedClient: ExtendedViemWalletClient, abi: Narrow<Abi | readonly unknown[]>, bytecode: Hex, args?: readonly unknown[], opts?: {
|
|
209
|
-
salt?: Hex;
|
|
210
|
-
libraries?: Libraries;
|
|
211
|
-
logger?: Logger;
|
|
212
|
-
l1TxUtils?: L1TxUtils;
|
|
213
|
-
gasLimit?: bigint;
|
|
214
|
-
acceleratedTestDeployments?: boolean;
|
|
215
|
-
}): Promise<{
|
|
216
|
-
address: EthAddress;
|
|
217
|
-
txHash: Hex | undefined;
|
|
218
|
-
deployedLibraries?: VerificationLibraryEntry[];
|
|
219
|
-
existed: boolean;
|
|
220
|
-
}>;
|
|
221
|
-
export declare function getExpectedAddress(abi: Narrow<Abi | readonly unknown[]>, bytecode: Hex, args: readonly unknown[], salt: Hex): {
|
|
222
|
-
address: `0x${string}`;
|
|
223
|
-
paddedSalt: `0x${string}`;
|
|
224
|
-
calldata: `0x${string}`;
|
|
225
|
-
};
|
|
226
|
-
//# sourceMappingURL=deploy_l1_contracts.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
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;AAG3C,OAAO,EACL,KAAK,KAAK,EACV,KAAK,uBAAuB,EAC5B,KAAK,SAAS,EACd,KAAK,GAAG,EACR,KAAK,iBAAiB,EAUvB,MAAM,MAAM,CAAC;AAKd,OAAO,EACL,KAAK,iBAAiB,EAMvB,MAAM,aAAa,CAAC;AAIrB,OAAO,EAAE,cAAc,EAAwB,MAAM,uBAAuB,CAAC;AAmB7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACtE,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,SAAS,EACT,KAAK,eAAe,EAGrB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,YAAY,CAAC;AAI3D,eAAO,MAAM,gBAAgB,EAAE,GAAkD,CAAC;AAElF,MAAM,MAAM,QAAQ,GAAG;IACrB,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;CACrC,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG;IACxC,mCAAmC;IACnC,QAAQ,EAAE,wBAAwB,CAAC;IACnC,mDAAmD;IACnD,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,8CAA8C;IAC9C,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,CAAC,QAAQ,EAAE,MAAM,GAAG;QAClB,CAAC,YAAY,EAAE,MAAM,GAAG,aAAa,CAAC;YACpC,KAAK,EAAE,MAAM,CAAC;YACd,MAAM,EAAE,MAAM,CAAC;SAChB,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,SAAS;IACxB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;CAChD;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB,CAAC,IAAI,SAAS,GAAG,GAAG,SAAS,OAAO,EAAE,GAAG,GAAG;IAC5E;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IACb;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC;IAC1B;;OAEG;IACH,gBAAgB,EAAE,GAAG,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB;AAED,MAAM,MAAM,wBAAwB,GAAG;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,GAAG,CAAC;IACxB,SAAS,EAAE,wBAAwB,EAAE,CAAC;CACvC,CAAC;AAEF,MAAM,WAAW,qBAAsB,SAAQ,IAAI,CAAC,iBAAiB,EAAE,MAAM,eAAe,CAAC;IAC3F,wBAAwB;IACxB,UAAU,EAAE,EAAE,CAAC;IACf,0CAA0C;IAC1C,qBAAqB,EAAE,EAAE,CAAC;IAC1B,4CAA4C;IAC5C,kBAAkB,EAAE,EAAE,CAAC;IACvB,uCAAuC;IACvC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB,sDAAsD;IACtD,iBAAiB,CAAC,EAAE,QAAQ,EAAE,CAAC;IAC/B,gDAAgD;IAChD,UAAU,CAAC,EAAE,OAAO,CAAC,eAAe,CAAC,CAAC;IACtC,sEAAsE;IACtE,0BAA0B,CAAC,EAAE,OAAO,CAAC;IACrC,iHAAiH;IACjH,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,+DAA+D;IAC/D,YAAY,EAAE,OAAO,CAAC;IACtB,2BAA2B;IAC3B,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,qFAAqF;IACrF,oBAAoB,CAAC,EAAE,UAAU,CAAC;CACnC;AAED,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,0CAA0C;IAC1C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,qDAAqD;IACrD,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAkCD;;;;GAIG;AACH,wBAAsB,iCAAiC,CACrD,QAAQ,EAAE,wBAAwB,EAClC,YAAY,EAAE,UAAU,EACxB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA+Bf;AAED,eAAO,MAAM,qBAAqB,GAChC,UAAU,wBAAwB,EAClC,UAAU,UAAU,EACpB,MAAM,qBAAqB,EAC3B,QAAQ,MAAM;;;;;;;;;;;;EA2Pf,CAAC;AAqNF;;;;;;;;GAQG;AACH,eAAO,MAAM,sBAAsB,GACjC,gBAAgB,wBAAwB,EACxC,MAAM,IAAI,CACR,qBAAqB,EACrB,0BAA0B,GAAG,6BAA6B,GAAG,mBAAmB,GAAG,qBAAqB,CACzG,EACD,iBAAiB,UAAU,EAC3B,QAAQ,MAAM,EACd,eAAe,eAAe,EAC9B,yBAAwB,MAAM,GAAG,KAAa;;;EAyB/C,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAAU,UAAU,UAAU,EAAE,eAAe,GAAG,EAAE,QAAQ,MAAM,wBAIhG,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,UAAU,UAAU,EACpB,WAAW,IAAI,CAAC,mBAAmB,EAAE,iBAAiB,GAAG,eAAe,CAAC,wBAU1E,CAAC;AAiBF;;GAEG;AACH,eAAO,MAAM,YAAY,GACvB,gBAAgB,wBAAwB,EACxC,UAAU,UAAU,EACpB,MAAM,IAAI,CACR,qBAAqB,EACrB,0BAA0B,GAAG,6BAA6B,GAAG,mBAAmB,GAAG,qBAAqB,CACzG,EACD,WAAW,IAAI,CACb,mBAAmB,EACjB,iBAAiB,GACjB,iBAAiB,GACjB,0BAA0B,GAC1B,qBAAqB,GACrB,YAAY,GACZ,mBAAmB,CACtB,EACD,QAAQ,MAAM;;;EA6Nf,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,gBAAgB,wBAAwB,EACxC,UAAU,UAAU,EACpB,iBAAiB,UAAU,EAC3B,YAAY,UAAU,EACtB,mBAAmB,UAAU,EAC7B,iBAAiB,UAAU,EAC3B,mBAAmB,UAAU,EAC7B,QAAQ,MAAM,EACd,4BAA4B,OAAO,GAAG,SAAS,EAC/C,mBAAkB,OAAe;;EA+HlC,CAAC;AAaF,eAAO,MAAM,qBAAqB,GAChC,gBAAgB,wBAAwB,EACxC,UAAU,UAAU,EACpB,YAAY,GAAG,EACf,eAAe,GAAG,EAClB,qBAAqB,GAAG,EACxB,YAAY,QAAQ,EAAE,EACtB,4BAA4B,OAAO,GAAG,SAAS,EAC/C,QAAQ,MAAM,kBAoIf,CAAC;AAEF;;;;;;;;GAQG;AAEH,eAAO,MAAM,+BAA+B,GAC1C,gBAAgB,wBAAwB,EACxC,UAAU,UAAU,EACpB,iBAAiB,UAAU,EAC3B,QAAQ,MAAM,KACb,OAAO,CAAC;IACT,sBAAsB,EAAE,UAAU,CAAC;IACnC,MAAM,EAAE,GAAG,CAAC;CACb,CAoBA,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,GAC5B,SAAS,MAAM,EAAE,EACjB,SAAS,SAAS,GAAG,iBAAiB,EACtC,OAAO,KAAK,EACZ,QAAQ,MAAM,EACd,MAAM,qBAAqB,EAC3B,gBAAe,eAA6C,EAC5D,yBAAwB,MAAM,GAAG,KAAa,KAC7C,OAAO,CAAC,2BAA2B,CA8IrC,CAAC;AAEF,qBAAa,UAAU;aAOH,MAAM,EAAE,wBAAwB;IAGhD,OAAO,CAAC,0BAA0B;IAClC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,aAAa,CAAC;IACtB,OAAO,CAAC,sBAAsB;IAZhC,OAAO,CAAC,IAAI,CAAkB;IAC9B,OAAO,CAAC,QAAQ,CAAa;IAC7B,SAAgB,SAAS,EAAE,SAAS,CAAC;IACrC,SAAgB,mBAAmB,EAAE,kBAAkB,EAAE,CAAM;gBAG7C,MAAM,EAAE,wBAAwB,EAChD,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,YAAY,GAAE,YAAiC,EACvC,0BAA0B,GAAE,OAAe,EAC3C,MAAM,GAAE,MAAmC,EAC3C,aAAa,CAAC,EAAE,eAAe,YAAA,EAC/B,sBAAsB,GAAE,OAAe;IAU3C,MAAM,CAAC,KAAK,CAAC,IAAI,SAAS,GAAG,EACjC,MAAM,EAAE,iBAAiB,CAAC,IAAI,CAAC,EAC/B,IAAI,CAAC,EAAE,uBAAuB,CAAC,IAAI,CAAC,EACpC,IAAI,GAAE;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAC/B,OAAO,CAAC;QAAE,OAAO,EAAE,UAAU,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAkD/C,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAoBzC,eAAe,CACb,EAAE,EAAE,WAAW,EACf,OAAO,CAAC,EAAE,UAAU,GACnB,OAAO,CAAC;QAAE,MAAM,EAAE,GAAG,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,QAAQ,CAAA;KAAE,CAAC;CAOlE;AAED;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,cAAc,EAAE,wBAAwB,EACxC,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,CAAC,EACrC,QAAQ,EAAE,GAAG,EACb,IAAI,GAAE,SAAS,OAAO,EAAO,EAC7B,IAAI,GAAE;IACJ,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0BAA0B,CAAC,EAAE,OAAO,CAAC;CACjC,GACL,OAAO,CAAC;IACT,OAAO,EAAE,UAAU,CAAC;IACpB,MAAM,EAAE,GAAG,GAAG,SAAS,CAAC;IACxB,iBAAiB,CAAC,EAAE,wBAAwB,EAAE,CAAC;IAC/C,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC,CAyJD;AAED,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,CAAC,EACrC,QAAQ,EAAE,GAAG,EACb,IAAI,EAAE,SAAS,OAAO,EAAE,EACxB,IAAI,EAAE,GAAG;;;;EAeV"}
|