@aztec/ethereum 0.28.1 → 0.30.0
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/deploy_l1_contracts.d.ts +8 -0
- package/dest/deploy_l1_contracts.d.ts.map +1 -1
- package/dest/deploy_l1_contracts.js +19 -3
- package/dest/l1_contract_addresses.d.ts +1 -1
- package/dest/l1_contract_addresses.d.ts.map +1 -1
- package/dest/l1_contract_addresses.js +3 -1
- package/package.json +2 -2
- package/src/deploy_l1_contracts.ts +41 -9
- package/src/l1_contract_addresses.ts +2 -0
|
@@ -58,6 +58,14 @@ export interface L1ContractArtifactsForDeployment {
|
|
|
58
58
|
* Rollup contract artifacts
|
|
59
59
|
*/
|
|
60
60
|
rollup: ContractArtifacts;
|
|
61
|
+
/**
|
|
62
|
+
* The token to pay for gas. This will be bridged to L2 via the gasPortal below
|
|
63
|
+
*/
|
|
64
|
+
gasToken: ContractArtifacts;
|
|
65
|
+
/**
|
|
66
|
+
* Gas portal contract artifacts. Optional for now as gas is not strictly enforced
|
|
67
|
+
*/
|
|
68
|
+
gasPortal: ContractArtifacts;
|
|
61
69
|
}
|
|
62
70
|
/**
|
|
63
71
|
* Deploys the aztec L1 contracts; Rollup, Contract Deployment Emitter & (optionally) Decoder Helper.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_l1_contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EACL,OAAO,EACP,KAAK,EACL,GAAG,EACH,aAAa,EACb,YAAY,EACZ,YAAY,EAMb,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAEjD;;OAEG;IACH,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,CAAC,CAAC;IAC9C;;OAEG;IACH,gBAAgB,EAAE,GAAG,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,KAAK,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;OAEG;IACH,kBAAkB,EAAE,iBAAiB,CAAC;IACtC;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAC;IAC5B;;OAEG;IACH,MAAM,EAAE,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_l1_contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EACL,OAAO,EACP,KAAK,EACL,GAAG,EACH,aAAa,EACb,YAAY,EACZ,YAAY,EAMb,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAC1D;;OAEG;IACH,YAAY,EAAE,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAEjD;;OAEG;IACH,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,WAAW,EAAE,MAAM,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,CAAC,CAAC;IAC9C;;OAEG;IACH,gBAAgB,EAAE,GAAG,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C;;OAEG;IACH,KAAK,EAAE,iBAAiB,CAAC;IACzB;;OAEG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;OAEG;IACH,kBAAkB,EAAE,iBAAiB,CAAC;IACtC;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAC;IAC5B;;OAEG;IACH,MAAM,EAAE,iBAAiB,CAAC;IAC1B;;OAEG;IACH,QAAQ,EAAE,iBAAiB,CAAC;IAC5B;;OAEG;IACH,SAAS,EAAE,iBAAiB,CAAC;CAC9B;AAED;;;;;;;;GAQG;AACH,eAAO,MAAM,iBAAiB,WACpB,MAAM,WACL,SAAS,GAAG,iBAAiB,SAC/B,KAAK,UACJ,WAAW,qBACA,gCAAgC,KAClD,QAAQ,iBAAiB,CAwG3B,CAAC;AAGF;;;;;;;;GAQG;AACH,wBAAsB,gBAAgB,CACpC,YAAY,EAAE,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,EACzD,YAAY,EAAE,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,EAChD,GAAG,EAAE,MAAM,CAAC,GAAG,GAAG,SAAS,OAAO,EAAE,CAAC,EACrC,QAAQ,EAAE,GAAG,EACb,IAAI,GAAE,SAAS,OAAO,EAAO,GAC5B,OAAO,CAAC,UAAU,CAAC,CAcrB"}
|
|
@@ -22,14 +22,22 @@ export const deployL1Contracts = async (rpcUrl, account, chain, logger, contract
|
|
|
22
22
|
});
|
|
23
23
|
const registryAddress = await deployL1Contract(walletClient, publicClient, contractsToDeploy.registry.contractAbi, contractsToDeploy.registry.contractBytecode);
|
|
24
24
|
logger(`Deployed Registry at ${registryAddress}`);
|
|
25
|
-
const inboxAddress = await deployL1Contract(walletClient, publicClient, contractsToDeploy.inbox.contractAbi, contractsToDeploy.inbox.contractBytecode, [getAddress(registryAddress.toString())]);
|
|
26
|
-
logger(`Deployed Inbox at ${inboxAddress}`);
|
|
27
25
|
const outboxAddress = await deployL1Contract(walletClient, publicClient, contractsToDeploy.outbox.contractAbi, contractsToDeploy.outbox.contractBytecode, [getAddress(registryAddress.toString())]);
|
|
28
26
|
logger(`Deployed Outbox at ${outboxAddress}`);
|
|
29
27
|
const availabilityOracleAddress = await deployL1Contract(walletClient, publicClient, contractsToDeploy.availabilityOracle.contractAbi, contractsToDeploy.availabilityOracle.contractBytecode);
|
|
30
28
|
logger(`Deployed AvailabilityOracle at ${availabilityOracleAddress}`);
|
|
31
29
|
const rollupAddress = await deployL1Contract(walletClient, publicClient, contractsToDeploy.rollup.contractAbi, contractsToDeploy.rollup.contractBytecode, [getAddress(registryAddress.toString()), getAddress(availabilityOracleAddress.toString())]);
|
|
32
30
|
logger(`Deployed Rollup at ${rollupAddress}`);
|
|
31
|
+
// Inbox is immutable and is deployed from Rollup's constructor so we just fetch it from the contract.
|
|
32
|
+
let inboxAddress;
|
|
33
|
+
{
|
|
34
|
+
const rollup = getContract({
|
|
35
|
+
address: getAddress(rollupAddress.toString()),
|
|
36
|
+
abi: contractsToDeploy.rollup.contractAbi,
|
|
37
|
+
client: publicClient,
|
|
38
|
+
});
|
|
39
|
+
inboxAddress = EthAddress.fromString((await rollup.read.INBOX([])));
|
|
40
|
+
}
|
|
33
41
|
// We need to call a function on the registry to set the various contract addresses.
|
|
34
42
|
const registryContract = getContract({
|
|
35
43
|
address: getAddress(registryAddress.toString()),
|
|
@@ -37,12 +45,20 @@ export const deployL1Contracts = async (rpcUrl, account, chain, logger, contract
|
|
|
37
45
|
client: walletClient,
|
|
38
46
|
});
|
|
39
47
|
await registryContract.write.upgrade([getAddress(rollupAddress.toString()), getAddress(inboxAddress.toString()), getAddress(outboxAddress.toString())], { account });
|
|
48
|
+
// this contract remains uninitialized because at this point we don't know the address of the gas token on L2
|
|
49
|
+
const gasTokenAddress = await deployL1Contract(walletClient, publicClient, contractsToDeploy.gasToken.contractAbi, contractsToDeploy.gasToken.contractBytecode);
|
|
50
|
+
logger(`Deployed Gas Token at ${gasTokenAddress}`);
|
|
51
|
+
// this contract remains uninitialized because at this point we don't know the address of the gas token on L2
|
|
52
|
+
const gasPortalAddress = await deployL1Contract(walletClient, publicClient, contractsToDeploy.gasPortal.contractAbi, contractsToDeploy.gasPortal.contractBytecode);
|
|
53
|
+
logger(`Deployed Gas Portal at ${gasPortalAddress}`);
|
|
40
54
|
const l1Contracts = {
|
|
41
55
|
availabilityOracleAddress,
|
|
42
56
|
rollupAddress,
|
|
43
57
|
registryAddress,
|
|
44
58
|
inboxAddress,
|
|
45
59
|
outboxAddress,
|
|
60
|
+
gasTokenAddress,
|
|
61
|
+
gasPortalAddress,
|
|
46
62
|
};
|
|
47
63
|
return {
|
|
48
64
|
walletClient,
|
|
@@ -74,4 +90,4 @@ export async function deployL1Contract(walletClient, publicClient, abi, bytecode
|
|
|
74
90
|
return EthAddress.fromString(receipt.contractAddress);
|
|
75
91
|
}
|
|
76
92
|
// docs:end:deployL1Contract
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2wxX2NvbnRyYWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXBsb3lfbDFfY29udHJhY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUkzRCxPQUFPLEVBT0wsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixVQUFVLEVBQ1YsV0FBVyxFQUNYLElBQUksR0FDTCxNQUFNLE1BQU0sQ0FBQztBQXdFZDs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLEtBQUssRUFDcEMsTUFBYyxFQUNkLE9BQXNDLEVBQ3RDLEtBQVksRUFDWixNQUFtQixFQUNuQixpQkFBbUQsRUFDdkIsRUFBRTtJQUM5QixNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztJQUVqQyxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztRQUN0QyxPQUFPO1FBQ1AsS0FBSztRQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ3hCLENBQUMsQ0FBQztJQUNILE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDO1FBQ3RDLEtBQUs7UUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUN4QixDQUFDLENBQUM7SUFFSCxNQUFNLGVBQWUsR0FBRyxNQUFNLGdCQUFnQixDQUM1QyxZQUFZLEVBQ1osWUFBWSxFQUNaLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQ3RDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDNUMsQ0FBQztJQUNGLE1BQU0sQ0FBQyx3QkFBd0IsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUVsRCxNQUFNLGFBQWEsR0FBRyxNQUFNLGdCQUFnQixDQUMxQyxZQUFZLEVBQ1osWUFBWSxFQUNaLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQ3BDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxn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
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
|
-
export declare const l1ContractsNames: readonly ["availabilityOracleAddress", "rollupAddress", "registryAddress", "inboxAddress", "outboxAddress"];
|
|
2
|
+
export declare const l1ContractsNames: readonly ["availabilityOracleAddress", "rollupAddress", "registryAddress", "inboxAddress", "outboxAddress", "gasTokenAddress", "gasPortalAddress"];
|
|
3
3
|
/**
|
|
4
4
|
* Provides the directory of current L1 contract addresses
|
|
5
5
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"l1_contract_addresses.d.ts","sourceRoot":"","sources":["../src/l1_contract_addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,eAAO,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"l1_contract_addresses.d.ts","sourceRoot":"","sources":["../src/l1_contract_addresses.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,eAAO,MAAM,gBAAgB,oJAQnB,CAAC;AAEX;;GAEG;AACH,MAAM,MAAM,mBAAmB,GAAG;KAC/B,CAAC,IAAI,CAAC,OAAO,gBAAgB,CAAC,CAAC,MAAM,CAAC,GAAG,UAAU;CACrD,CAAC"}
|
|
@@ -4,5 +4,7 @@ export const l1ContractsNames = [
|
|
|
4
4
|
'registryAddress',
|
|
5
5
|
'inboxAddress',
|
|
6
6
|
'outboxAddress',
|
|
7
|
+
'gasTokenAddress',
|
|
8
|
+
'gasPortalAddress',
|
|
7
9
|
];
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibDFfY29udHJhY3RfYWRkcmVzc2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2wxX2NvbnRyYWN0X2FkZHJlc3Nlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM5QiwyQkFBMkI7SUFDM0IsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixjQUFjO0lBQ2QsZUFBZTtJQUNmLGlCQUFpQjtJQUNqQixrQkFBa0I7Q0FDVixDQUFDIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/ethereum",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.30.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"exports": "./dest/index.js",
|
|
6
6
|
"typedocOptions": {
|
|
@@ -24,7 +24,7 @@
|
|
|
24
24
|
"../package.common.json"
|
|
25
25
|
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@aztec/foundation": "0.
|
|
27
|
+
"@aztec/foundation": "0.30.0",
|
|
28
28
|
"dotenv": "^16.0.3",
|
|
29
29
|
"tslib": "^2.4.0",
|
|
30
30
|
"viem": "^2.7.15"
|
|
@@ -76,6 +76,14 @@ export interface L1ContractArtifactsForDeployment {
|
|
|
76
76
|
* Rollup contract artifacts
|
|
77
77
|
*/
|
|
78
78
|
rollup: ContractArtifacts;
|
|
79
|
+
/**
|
|
80
|
+
* The token to pay for gas. This will be bridged to L2 via the gasPortal below
|
|
81
|
+
*/
|
|
82
|
+
gasToken: ContractArtifacts;
|
|
83
|
+
/**
|
|
84
|
+
* Gas portal contract artifacts. Optional for now as gas is not strictly enforced
|
|
85
|
+
*/
|
|
86
|
+
gasPortal: ContractArtifacts;
|
|
79
87
|
}
|
|
80
88
|
|
|
81
89
|
/**
|
|
@@ -114,15 +122,6 @@ export const deployL1Contracts = async (
|
|
|
114
122
|
);
|
|
115
123
|
logger(`Deployed Registry at ${registryAddress}`);
|
|
116
124
|
|
|
117
|
-
const inboxAddress = await deployL1Contract(
|
|
118
|
-
walletClient,
|
|
119
|
-
publicClient,
|
|
120
|
-
contractsToDeploy.inbox.contractAbi,
|
|
121
|
-
contractsToDeploy.inbox.contractBytecode,
|
|
122
|
-
[getAddress(registryAddress.toString())],
|
|
123
|
-
);
|
|
124
|
-
logger(`Deployed Inbox at ${inboxAddress}`);
|
|
125
|
-
|
|
126
125
|
const outboxAddress = await deployL1Contract(
|
|
127
126
|
walletClient,
|
|
128
127
|
publicClient,
|
|
@@ -149,6 +148,17 @@ export const deployL1Contracts = async (
|
|
|
149
148
|
);
|
|
150
149
|
logger(`Deployed Rollup at ${rollupAddress}`);
|
|
151
150
|
|
|
151
|
+
// Inbox is immutable and is deployed from Rollup's constructor so we just fetch it from the contract.
|
|
152
|
+
let inboxAddress!: EthAddress;
|
|
153
|
+
{
|
|
154
|
+
const rollup = getContract({
|
|
155
|
+
address: getAddress(rollupAddress.toString()),
|
|
156
|
+
abi: contractsToDeploy.rollup.contractAbi,
|
|
157
|
+
client: publicClient,
|
|
158
|
+
});
|
|
159
|
+
inboxAddress = EthAddress.fromString((await rollup.read.INBOX([])) as any);
|
|
160
|
+
}
|
|
161
|
+
|
|
152
162
|
// We need to call a function on the registry to set the various contract addresses.
|
|
153
163
|
const registryContract = getContract({
|
|
154
164
|
address: getAddress(registryAddress.toString()),
|
|
@@ -160,12 +170,34 @@ export const deployL1Contracts = async (
|
|
|
160
170
|
{ account },
|
|
161
171
|
);
|
|
162
172
|
|
|
173
|
+
// this contract remains uninitialized because at this point we don't know the address of the gas token on L2
|
|
174
|
+
const gasTokenAddress = await deployL1Contract(
|
|
175
|
+
walletClient,
|
|
176
|
+
publicClient,
|
|
177
|
+
contractsToDeploy.gasToken.contractAbi,
|
|
178
|
+
contractsToDeploy.gasToken.contractBytecode,
|
|
179
|
+
);
|
|
180
|
+
|
|
181
|
+
logger(`Deployed Gas Token at ${gasTokenAddress}`);
|
|
182
|
+
|
|
183
|
+
// this contract remains uninitialized because at this point we don't know the address of the gas token on L2
|
|
184
|
+
const gasPortalAddress = await deployL1Contract(
|
|
185
|
+
walletClient,
|
|
186
|
+
publicClient,
|
|
187
|
+
contractsToDeploy.gasPortal.contractAbi,
|
|
188
|
+
contractsToDeploy.gasPortal.contractBytecode,
|
|
189
|
+
);
|
|
190
|
+
|
|
191
|
+
logger(`Deployed Gas Portal at ${gasPortalAddress}`);
|
|
192
|
+
|
|
163
193
|
const l1Contracts: L1ContractAddresses = {
|
|
164
194
|
availabilityOracleAddress,
|
|
165
195
|
rollupAddress,
|
|
166
196
|
registryAddress,
|
|
167
197
|
inboxAddress,
|
|
168
198
|
outboxAddress,
|
|
199
|
+
gasTokenAddress,
|
|
200
|
+
gasPortalAddress,
|
|
169
201
|
};
|
|
170
202
|
|
|
171
203
|
return {
|