@aztec/ethereum 0.41.0 → 0.43.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.
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
import { type DebugLogger } from '@aztec/foundation/log';
|
|
3
4
|
import type { Abi, Narrow } from 'abitype';
|
|
@@ -74,7 +75,7 @@ export interface L1ContractArtifactsForDeployment {
|
|
|
74
75
|
* @param chain - Optional chain spec (defaults to local foundry).
|
|
75
76
|
* @returns - A wallet and a public client.
|
|
76
77
|
*/
|
|
77
|
-
export declare function createL1Clients(rpcUrl: string, mnemonicOrHdAccount: string | HDAccount, chain?: Chain): {
|
|
78
|
+
export declare function createL1Clients(rpcUrl: string, mnemonicOrHdAccount: string | HDAccount | PrivateKeyAccount, chain?: Chain): {
|
|
78
79
|
publicClient: PublicClient<HttpTransport, Chain>;
|
|
79
80
|
walletClient: WalletClient<HttpTransport, Chain, Account>;
|
|
80
81
|
};
|
|
@@ -85,9 +86,12 @@ export declare function createL1Clients(rpcUrl: string, mnemonicOrHdAccount: str
|
|
|
85
86
|
* @param chain - The chain instance to deploy to.
|
|
86
87
|
* @param logger - A logger object.
|
|
87
88
|
* @param contractsToDeploy - The set of L1 artifacts to be deployed
|
|
89
|
+
* @param args - Arguments for initialization of L1 contracts
|
|
88
90
|
* @returns A list of ETH addresses of the deployed contracts.
|
|
89
91
|
*/
|
|
90
|
-
export declare const deployL1Contracts: (rpcUrl: string, account: HDAccount | PrivateKeyAccount, chain: Chain, logger: DebugLogger, contractsToDeploy: L1ContractArtifactsForDeployment
|
|
92
|
+
export declare const deployL1Contracts: (rpcUrl: string, account: HDAccount | PrivateKeyAccount, chain: Chain, logger: DebugLogger, contractsToDeploy: L1ContractArtifactsForDeployment, args: {
|
|
93
|
+
l2GasTokenAddress: AztecAddress;
|
|
94
|
+
}) => Promise<DeployL1Contracts>;
|
|
91
95
|
/**
|
|
92
96
|
* Helper function to deploy ETH contracts.
|
|
93
97
|
* @param walletClient - A viem WalletClient.
|
|
@@ -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,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EAMlB,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAAqB,MAAM,eAAe,CAAC;AAG1F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE;;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;IACjD;;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;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"deploy_l1_contracts.d.ts","sourceRoot":"","sources":["../src/deploy_l1_contracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEzD,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC3C,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,KAAK,EACV,KAAK,GAAG,EACR,KAAK,aAAa,EAClB,KAAK,YAAY,EACjB,KAAK,YAAY,EAMlB,MAAM,MAAM,CAAC;AACd,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,iBAAiB,EAAqB,MAAM,eAAe,CAAC;AAG1F,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE;;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;IACjD;;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;;;;;;GAMG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,MAAM,GAAG,SAAS,GAAG,iBAAiB,EAC3D,KAAK,GAAE,KAAe,GACrB;IAAE,YAAY,EAAE,YAAY,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;IAAC,YAAY,EAAE,YAAY,CAAC,aAAa,EAAE,KAAK,EAAE,OAAO,CAAC,CAAA;CAAE,CAejH;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,iBAAiB,WACpB,MAAM,WACL,SAAS,GAAG,iBAAiB,SAC/B,KAAK,UACJ,WAAW,qBACA,gCAAgC,QAC7C;IAAE,iBAAiB,EAAE,YAAY,CAAA;CAAE,KACxC,QAAQ,iBAAiB,CA0I3B,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,CAkBrB"}
|
|
@@ -29,9 +29,10 @@ export function createL1Clients(rpcUrl, mnemonicOrHdAccount, chain = foundry) {
|
|
|
29
29
|
* @param chain - The chain instance to deploy to.
|
|
30
30
|
* @param logger - A logger object.
|
|
31
31
|
* @param contractsToDeploy - The set of L1 artifacts to be deployed
|
|
32
|
+
* @param args - Arguments for initialization of L1 contracts
|
|
32
33
|
* @returns A list of ETH addresses of the deployed contracts.
|
|
33
34
|
*/
|
|
34
|
-
export const deployL1Contracts = async (rpcUrl, account, chain, logger, contractsToDeploy) => {
|
|
35
|
+
export const deployL1Contracts = async (rpcUrl, account, chain, logger, contractsToDeploy, args) => {
|
|
35
36
|
logger.debug('Deploying contracts...');
|
|
36
37
|
const walletClient = createWalletClient({
|
|
37
38
|
account,
|
|
@@ -85,6 +86,19 @@ export const deployL1Contracts = async (rpcUrl, account, chain, logger, contract
|
|
|
85
86
|
// this contract remains uninitialized because at this point we don't know the address of the gas token on L2
|
|
86
87
|
const gasPortalAddress = await deployL1Contract(walletClient, publicClient, contractsToDeploy.gasPortal.contractAbi, contractsToDeploy.gasPortal.contractBytecode);
|
|
87
88
|
logger.info(`Deployed Gas Portal at ${gasPortalAddress}`);
|
|
89
|
+
const gasPortal = getContract({
|
|
90
|
+
address: gasPortalAddress.toString(),
|
|
91
|
+
abi: contractsToDeploy.gasPortal.contractAbi,
|
|
92
|
+
client: walletClient,
|
|
93
|
+
});
|
|
94
|
+
await publicClient.waitForTransactionReceipt({
|
|
95
|
+
hash: await gasPortal.write.initialize([
|
|
96
|
+
registryAddress.toString(),
|
|
97
|
+
gasTokenAddress.toString(),
|
|
98
|
+
args.l2GasTokenAddress.toString(),
|
|
99
|
+
]),
|
|
100
|
+
});
|
|
101
|
+
logger.info(`Initialized Gas Portal at ${gasPortalAddress} to bridge between L1 ${gasTokenAddress} to L2 ${args.l2GasTokenAddress}`);
|
|
88
102
|
// fund the rollup contract with gas tokens
|
|
89
103
|
const gasToken = getContract({
|
|
90
104
|
address: gasTokenAddress.toString(),
|
|
@@ -128,9 +142,9 @@ export async function deployL1Contract(walletClient, publicClient, abi, bytecode
|
|
|
128
142
|
const receipt = await publicClient.waitForTransactionReceipt({ hash, pollingInterval: 100 });
|
|
129
143
|
const contractAddress = receipt.contractAddress;
|
|
130
144
|
if (!contractAddress) {
|
|
131
|
-
throw new Error(`No contract address found in receipt: ${JSON.stringify(receipt)}`);
|
|
145
|
+
throw new Error(`No contract address found in receipt: ${JSON.stringify(receipt, (_, val) => typeof val === 'bigint' ? String(val) : val)}`);
|
|
132
146
|
}
|
|
133
147
|
return EthAddress.fromString(receipt.contractAddress);
|
|
134
148
|
}
|
|
135
149
|
// docs:end:deployL1Contract
|
|
136
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
150
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95X2wxX2NvbnRyYWN0cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9kZXBsb3lfbDFfY29udHJhY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUkzRCxPQUFPLEVBT0wsa0JBQWtCLEVBQ2xCLGtCQUFrQixFQUNsQixVQUFVLEVBQ1YsV0FBVyxFQUNYLElBQUksR0FDTCxNQUFNLE1BQU0sQ0FBQztBQUNkLE9BQU8sRUFBMEMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGFBQWEsQ0FBQztBQXNFdEM7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLGVBQWUsQ0FDN0IsTUFBYyxFQUNkLG1CQUEyRCxFQUMzRCxRQUFlLE9BQU87SUFFdEIsTUFBTSxTQUFTLEdBQ2IsT0FBTyxtQkFBbUIsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLGlCQUFpQixDQUFDLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxDQUFDLG1CQUFtQixDQUFDO0lBRXpHLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDO1FBQ3RDLE9BQU8sRUFBRSxTQUFTO1FBQ2xCLEtBQUs7UUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQztLQUN4QixDQUFDLENBQUM7SUFDSCxNQUFNLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztRQUN0QyxLQUFLO1FBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsQ0FBQztBQUN4QyxDQUFDO0FBRUQ7Ozs7Ozs7OztHQVNHO0FBQ0gsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsS0FBSyxFQUNwQyxNQUFjLEVBQ2QsT0FBc0MsRUFDdEMsS0FBWSxFQUNaLE1BQW1CLEVBQ25CLGlCQUFtRCxFQUNuRCxJQUF5QyxFQUNiLEVBQUU7SUFDOUIsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBRXZDLE1BQU0sWUFBWSxHQUFHLGtCQUFrQixDQUFDO1FBQ3RDLE9BQU87UUFDUCxLQUFLO1FBQ0wsU0FBUyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7S0FDeEIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxZQUFZLEdBQUcsa0JBQWtCLENBQUM7UUFDdEMsS0FBSztRQUNMLFNBQVMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO0tBQ3hCLENBQUMsQ0FBQztJQUVILE1BQU0sZUFBZSxHQUFHLE1BQU0sZ0JBQWdCLENBQzVDLFlBQVksRUFDWixZQUFZLEVBQ1osaUJBQWlCLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFDdEMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUM1QyxDQUFDO0lBQ0YsTUFBTSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsZUFBZSxFQUFFLENBQUMsQ0FBQztJQUV2RCxNQUFNLHlCQUF5QixHQUFHLE1BQU0sZ0JBQWdCLENBQ3RELFlBQVksRUFDWixZQUFZLEVBQ1osaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUNoRCxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FDdEQsQ0FBQztJQUNGLE1BQU0sQ0FBQyxJQUFJLENBQUMsa0NBQWtDLHlCQUF5QixFQUFFLENBQUMsQ0FBQztJQUUzRSxNQUFNLGVBQWUsR0FBRyxNQUFNLGdCQUFnQixDQUM1QyxZQUFZLEVBQ1osWUFBWSxFQUNaLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQ3RDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FDNUMsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMseUJBQXlCLGVBQWUsRUFBRSxDQUFDLENBQUM7SUFFeEQsTUFBTSxhQUFhLEdBQUcsTUFBTSxnQkFBZ0IsQ0FDMUMsWUFBWSxFQUNaLFlBQVksRUFDWixpQkFBaUIsQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUNwQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQ3pDO1FBQ0UsVUFBVSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN0QyxVQUFVLENBQUMseUJBQXlCLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEQsVUFBVSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztLQUN2QyxDQUNGLENBQUM7SUFDRixNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixhQUFhLEVBQUUsQ0FBQyxDQUFDO0lBRW5ELHFIQUFxSDtJQUNySCxJQUFJLFlBQXlCLENBQUM7SUFDOUIsQ0FBQztRQUNDLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQztZQUN6QixPQUFPLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDekMsTUFBTSxFQUFFLFlBQVk7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsWUFBWSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFRLENBQUMsQ0FBQztJQUM3RSxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxzQkFBc0IsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUVsRCxJQUFJLGFBQTBCLENBQUM7SUFDL0IsQ0FBQztRQUNDLE1BQU0sTUFBTSxHQUFHLFdBQVcsQ0FBQztZQUN6QixPQUFPLEVBQUUsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUM3QyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDekMsTUFBTSxFQUFFLFlBQVk7U0FDckIsQ0FBQyxDQUFDO1FBQ0gsYUFBYSxHQUFHLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFRLENBQUMsQ0FBQztJQUMvRSxDQUFDO0lBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsYUFBYSxFQUFFLENBQUMsQ0FBQztJQUVwRCxvRkFBb0Y7SUFDcEYsTUFBTSxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7UUFDbkMsT0FBTyxFQUFFLFVBQVUsQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDL0MsR0FBRyxFQUFFLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxXQUFXO1FBQzNDLE1BQU0sRUFBRSxZQUFZO0tBQ3JCLENBQUMsQ0FBQztJQUNILE1BQU0sZ0JBQWdCLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FDbEMsQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxFQUNqSCxFQUFFLE9BQU8sRUFBRSxDQUNaLENBQUM7SUFFRiw2R0FBNkc7SUFDN0csTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLGdCQUFnQixDQUM3QyxZQUFZLEVBQ1osWUFBWSxFQUNaLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQ3ZDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FDN0MsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFJLENBQUMsMEJBQTBCLGdCQUFnQixFQUFFLENBQUMsQ0FBQztJQUUxRCxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUM7UUFDNUIsT0FBTyxFQUFFLGdCQUFnQixDQUFDLFFBQVEsRUFBRTtRQUNwQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFdBQVc7UUFDNUMsTUFBTSxFQUFFLFlBQVk7S0FDckIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxZQUFZLENBQUMseUJBQXlCLENBQUM7UUFDM0MsSUFBSSxFQUFFLE1BQU0sU0FBUyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUM7WUFDckMsZUFBZSxDQUFDLFFBQVEsRUFBRTtZQUMxQixlQUFlLENBQUMsUUFBUSxFQUFFO1lBQzFCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLEVBQUU7U0FDbEMsQ0FBQztLQUNILENBQUMsQ0FBQztJQUVILE1BQU0sQ0FBQyxJQUFJLENBQ1QsNkJBQTZCLGdCQUFnQix5QkFBeUIsZUFBZSxVQUFVLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUN4SCxDQUFDO0lBRUYsMkNBQTJDO0lBQzNDLE1BQU0sUUFBUSxHQUFHLFdBQVcsQ0FBQztRQUMzQixPQUFPLEVBQUUsZUFBZSxDQUFDLFFBQVEsRUFBRTtRQUNuQyxHQUFHLEVBQUUsaUJBQWlCLENBQUMsUUFBUSxDQUFDLFdBQVc7UUFDM0MsTUFBTSxFQUFFLFlBQVk7S0FDckIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxPQUFPLEdBQUcsTUFBTSxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxzQkFBc0IsQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFDO0lBQ3pHLE1BQU0sWUFBWSxDQUFDLHlCQUF5QixDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEUsTUFBTSxDQUFDLElBQUksQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO0lBRXRELE1BQU0sV0FBVyxHQUF3QjtRQUN2Qyx5QkFBeUI7UUFDekIsYUFBYTtRQUNiLGVBQWU7UUFDZixZQUFZO1FBQ1osYUFBYTtRQUNiLGVBQWU7UUFDZixnQkFBZ0I7S0FDakIsQ0FBQztJQUVGLE9BQU87UUFDTCxZQUFZO1FBQ1osWUFBWTtRQUNaLG1CQUFtQixFQUFFLFdBQVc7S0FDakMsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLDhCQUE4QjtBQUM5Qjs7Ozs7Ozs7R0FRRztBQUNILE1BQU0sQ0FBQyxLQUFLLFVBQVUsZ0JBQWdCLENBQ3BDLFlBQXlELEVBQ3pELFlBQWdELEVBQ2hELEdBQXFDLEVBQ3JDLFFBQWEsRUFDYixPQUEyQixFQUFFO0lBRTdCLE1BQU0sSUFBSSxHQUFHLE1BQU0sWUFBWSxDQUFDLGNBQWMsQ0FBQztRQUM3QyxHQUFHO1FBQ0gsUUFBUTtRQUNSLElBQUk7S0FDTCxDQUFDLENBQUM7SUFFSCxNQUFNLE9BQU8sR0FBRyxNQUFNLFlBQVksQ0FBQyx5QkFBeUIsQ0FBQyxFQUFFLElBQUksRUFBRSxlQUFlLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztJQUM3RixNQUFNLGVBQWUsR0FBRyxPQUFPLENBQUMsZUFBZSxDQUFDO0lBQ2hELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUNyQixNQUFNLElBQUksS0FBSyxDQUNiLHlDQUF5QyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUMxRSxPQUFPLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUM1QyxFQUFFLENBQ0osQ0FBQztJQUNKLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGVBQWdCLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBQ0QsNEJBQTRCIn0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aztec/ethereum",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.43.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.43.0",
|
|
28
28
|
"dotenv": "^16.0.3",
|
|
29
29
|
"tslib": "^2.4.0",
|
|
30
30
|
"viem": "^2.7.15"
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { type AztecAddress } from '@aztec/foundation/aztec-address';
|
|
1
2
|
import { EthAddress } from '@aztec/foundation/eth-address';
|
|
2
3
|
import { type DebugLogger } from '@aztec/foundation/log';
|
|
3
4
|
|
|
@@ -95,7 +96,7 @@ export interface L1ContractArtifactsForDeployment {
|
|
|
95
96
|
*/
|
|
96
97
|
export function createL1Clients(
|
|
97
98
|
rpcUrl: string,
|
|
98
|
-
mnemonicOrHdAccount: string | HDAccount,
|
|
99
|
+
mnemonicOrHdAccount: string | HDAccount | PrivateKeyAccount,
|
|
99
100
|
chain: Chain = foundry,
|
|
100
101
|
): { publicClient: PublicClient<HttpTransport, Chain>; walletClient: WalletClient<HttpTransport, Chain, Account> } {
|
|
101
102
|
const hdAccount =
|
|
@@ -121,6 +122,7 @@ export function createL1Clients(
|
|
|
121
122
|
* @param chain - The chain instance to deploy to.
|
|
122
123
|
* @param logger - A logger object.
|
|
123
124
|
* @param contractsToDeploy - The set of L1 artifacts to be deployed
|
|
125
|
+
* @param args - Arguments for initialization of L1 contracts
|
|
124
126
|
* @returns A list of ETH addresses of the deployed contracts.
|
|
125
127
|
*/
|
|
126
128
|
export const deployL1Contracts = async (
|
|
@@ -129,6 +131,7 @@ export const deployL1Contracts = async (
|
|
|
129
131
|
chain: Chain,
|
|
130
132
|
logger: DebugLogger,
|
|
131
133
|
contractsToDeploy: L1ContractArtifactsForDeployment,
|
|
134
|
+
args: { l2GasTokenAddress: AztecAddress },
|
|
132
135
|
): Promise<DeployL1Contracts> => {
|
|
133
136
|
logger.debug('Deploying contracts...');
|
|
134
137
|
|
|
@@ -224,6 +227,24 @@ export const deployL1Contracts = async (
|
|
|
224
227
|
|
|
225
228
|
logger.info(`Deployed Gas Portal at ${gasPortalAddress}`);
|
|
226
229
|
|
|
230
|
+
const gasPortal = getContract({
|
|
231
|
+
address: gasPortalAddress.toString(),
|
|
232
|
+
abi: contractsToDeploy.gasPortal.contractAbi,
|
|
233
|
+
client: walletClient,
|
|
234
|
+
});
|
|
235
|
+
|
|
236
|
+
await publicClient.waitForTransactionReceipt({
|
|
237
|
+
hash: await gasPortal.write.initialize([
|
|
238
|
+
registryAddress.toString(),
|
|
239
|
+
gasTokenAddress.toString(),
|
|
240
|
+
args.l2GasTokenAddress.toString(),
|
|
241
|
+
]),
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
logger.info(
|
|
245
|
+
`Initialized Gas Portal at ${gasPortalAddress} to bridge between L1 ${gasTokenAddress} to L2 ${args.l2GasTokenAddress}`,
|
|
246
|
+
);
|
|
247
|
+
|
|
227
248
|
// fund the rollup contract with gas tokens
|
|
228
249
|
const gasToken = getContract({
|
|
229
250
|
address: gasTokenAddress.toString(),
|
|
@@ -277,7 +298,11 @@ export async function deployL1Contract(
|
|
|
277
298
|
const receipt = await publicClient.waitForTransactionReceipt({ hash, pollingInterval: 100 });
|
|
278
299
|
const contractAddress = receipt.contractAddress;
|
|
279
300
|
if (!contractAddress) {
|
|
280
|
-
throw new Error(
|
|
301
|
+
throw new Error(
|
|
302
|
+
`No contract address found in receipt: ${JSON.stringify(receipt, (_, val) =>
|
|
303
|
+
typeof val === 'bigint' ? String(val) : val,
|
|
304
|
+
)}`,
|
|
305
|
+
);
|
|
281
306
|
}
|
|
282
307
|
|
|
283
308
|
return EthAddress.fromString(receipt.contractAddress!);
|