viem 2.8.17 → 2.9.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/CHANGELOG.md +21 -0
- package/_cjs/chains/definitions/optimismSepolia.js +5 -0
- package/_cjs/chains/definitions/optimismSepolia.js.map +1 -1
- package/_cjs/chains/opStack/abis.js +1070 -1
- package/_cjs/chains/opStack/abis.js.map +1 -1
- package/_cjs/chains/opStack/actions/buildProveWithdrawal.js +3 -3
- package/_cjs/chains/opStack/actions/buildProveWithdrawal.js.map +1 -1
- package/_cjs/chains/opStack/actions/getGame.js +20 -0
- package/_cjs/chains/opStack/actions/getGame.js.map +1 -0
- package/_cjs/chains/opStack/actions/getGames.js +56 -0
- package/_cjs/chains/opStack/actions/getGames.js.map +1 -0
- package/_cjs/chains/opStack/actions/getL2Output.js +12 -0
- package/_cjs/chains/opStack/actions/getL2Output.js.map +1 -1
- package/_cjs/chains/opStack/actions/getPortalVersion.js +25 -0
- package/_cjs/chains/opStack/actions/getPortalVersion.js.map +1 -0
- package/_cjs/chains/opStack/actions/getTimeToFinalize.js +52 -26
- package/_cjs/chains/opStack/actions/getTimeToFinalize.js.map +1 -1
- package/_cjs/chains/opStack/actions/getTimeToNextGame.js +45 -0
- package/_cjs/chains/opStack/actions/getTimeToNextGame.js.map +1 -0
- package/_cjs/chains/opStack/actions/getTimeToProve.js +9 -1
- package/_cjs/chains/opStack/actions/getTimeToProve.js.map +1 -1
- package/_cjs/chains/opStack/actions/getWithdrawalStatus.js +79 -28
- package/_cjs/chains/opStack/actions/getWithdrawalStatus.js.map +1 -1
- package/_cjs/chains/opStack/actions/proveWithdrawal.js +1 -1
- package/_cjs/chains/opStack/actions/proveWithdrawal.js.map +1 -1
- package/_cjs/chains/opStack/actions/waitForNextGame.js +35 -0
- package/_cjs/chains/opStack/actions/waitForNextGame.js.map +1 -0
- package/_cjs/chains/opStack/actions/waitForNextL2Output.js.map +1 -1
- package/_cjs/chains/opStack/actions/waitToProve.js +34 -3
- package/_cjs/chains/opStack/actions/waitToProve.js.map +1 -1
- package/_cjs/chains/opStack/decorators/publicL1.js +10 -0
- package/_cjs/chains/opStack/decorators/publicL1.js.map +1 -1
- package/_cjs/chains/opStack/errors/withdrawal.js +13 -1
- package/_cjs/chains/opStack/errors/withdrawal.js.map +1 -1
- package/_cjs/chains/opStack/index.js +11 -1
- package/_cjs/chains/opStack/index.js.map +1 -1
- package/_cjs/chains/zksync/actions/deployContract.js +26 -0
- package/_cjs/chains/zksync/actions/deployContract.js.map +1 -0
- package/_cjs/chains/zksync/constants/abis.js +427 -0
- package/_cjs/chains/zksync/constants/abis.js.map +1 -0
- package/_cjs/chains/zksync/constants/address.js +5 -0
- package/_cjs/chains/zksync/constants/address.js.map +1 -0
- package/_cjs/chains/zksync/constants/contract.js +6 -0
- package/_cjs/chains/zksync/constants/contract.js.map +1 -0
- package/_cjs/chains/zksync/constants/number.js +6 -0
- package/_cjs/chains/zksync/constants/number.js.map +1 -0
- package/_cjs/chains/zksync/decorators/eip712.js +2 -0
- package/_cjs/chains/zksync/decorators/eip712.js.map +1 -1
- package/_cjs/chains/zksync/errors/bytecode.js +41 -0
- package/_cjs/chains/zksync/errors/bytecode.js.map +1 -0
- package/_cjs/chains/zksync/formatters.js +5 -1
- package/_cjs/chains/zksync/formatters.js.map +1 -1
- package/_cjs/chains/zksync/index.js +3 -1
- package/_cjs/chains/zksync/index.js.map +1 -1
- package/_cjs/chains/zksync/types/contract.js +3 -0
- package/_cjs/chains/zksync/types/contract.js.map +1 -0
- package/_cjs/chains/zksync/utils/abi/encodeDeployData.js +68 -0
- package/_cjs/chains/zksync/utils/abi/encodeDeployData.js.map +1 -0
- package/_cjs/chains/zksync/utils/getEip712Domain.js +4 -2
- package/_cjs/chains/zksync/utils/getEip712Domain.js.map +1 -1
- package/_cjs/chains/zksync/utils/hashBytecode.js +36 -0
- package/_cjs/chains/zksync/utils/hashBytecode.js.map +1 -0
- package/_cjs/errors/version.js +1 -1
- package/_cjs/errors/version.js.map +1 -1
- package/_cjs/index.js.map +1 -1
- package/_esm/chains/definitions/optimismSepolia.js +5 -0
- package/_esm/chains/definitions/optimismSepolia.js.map +1 -1
- package/_esm/chains/opStack/abis.js +1069 -0
- package/_esm/chains/opStack/abis.js.map +1 -1
- package/_esm/chains/opStack/actions/buildProveWithdrawal.js +4 -3
- package/_esm/chains/opStack/actions/buildProveWithdrawal.js.map +1 -1
- package/_esm/chains/opStack/actions/getGame.js +40 -0
- package/_esm/chains/opStack/actions/getGame.js.map +1 -0
- package/_esm/chains/opStack/actions/getGames.js +75 -0
- package/_esm/chains/opStack/actions/getGames.js.map +1 -0
- package/_esm/chains/opStack/actions/getL2Output.js +12 -0
- package/_esm/chains/opStack/actions/getL2Output.js.map +1 -1
- package/_esm/chains/opStack/actions/getPortalVersion.js +48 -0
- package/_esm/chains/opStack/actions/getPortalVersion.js.map +1 -0
- package/_esm/chains/opStack/actions/getTimeToFinalize.js +54 -27
- package/_esm/chains/opStack/actions/getTimeToFinalize.js.map +1 -1
- package/_esm/chains/opStack/actions/getTimeToNextGame.js +71 -0
- package/_esm/chains/opStack/actions/getTimeToNextGame.js.map +1 -0
- package/_esm/chains/opStack/actions/getTimeToProve.js +10 -1
- package/_esm/chains/opStack/actions/getTimeToProve.js.map +1 -1
- package/_esm/chains/opStack/actions/getWithdrawalStatus.js +84 -32
- package/_esm/chains/opStack/actions/getWithdrawalStatus.js.map +1 -1
- package/_esm/chains/opStack/actions/proveWithdrawal.js +1 -1
- package/_esm/chains/opStack/actions/proveWithdrawal.js.map +1 -1
- package/_esm/chains/opStack/actions/waitForNextGame.js +61 -0
- package/_esm/chains/opStack/actions/waitForNextGame.js.map +1 -0
- package/_esm/chains/opStack/actions/waitForNextL2Output.js.map +1 -1
- package/_esm/chains/opStack/actions/waitToProve.js +35 -3
- package/_esm/chains/opStack/actions/waitToProve.js.map +1 -1
- package/_esm/chains/opStack/decorators/publicL1.js +10 -0
- package/_esm/chains/opStack/decorators/publicL1.js.map +1 -1
- package/_esm/chains/opStack/errors/withdrawal.js +11 -0
- package/_esm/chains/opStack/errors/withdrawal.js.map +1 -1
- package/_esm/chains/opStack/index.js +5 -0
- package/_esm/chains/opStack/index.js.map +1 -1
- package/_esm/chains/zksync/actions/deployContract.js +52 -0
- package/_esm/chains/zksync/actions/deployContract.js.map +1 -0
- package/_esm/chains/zksync/constants/abis.js +425 -0
- package/_esm/chains/zksync/constants/abis.js.map +1 -0
- package/_esm/chains/zksync/constants/address.js +2 -0
- package/_esm/chains/zksync/constants/address.js.map +1 -0
- package/_esm/chains/zksync/constants/contract.js +3 -0
- package/_esm/chains/zksync/constants/contract.js.map +1 -0
- package/_esm/chains/zksync/constants/number.js +3 -0
- package/_esm/chains/zksync/constants/number.js.map +1 -0
- package/_esm/chains/zksync/decorators/eip712.js +2 -0
- package/_esm/chains/zksync/decorators/eip712.js.map +1 -1
- package/_esm/chains/zksync/errors/bytecode.js +35 -0
- package/_esm/chains/zksync/errors/bytecode.js.map +1 -0
- package/_esm/chains/zksync/formatters.js +5 -1
- package/_esm/chains/zksync/formatters.js.map +1 -1
- package/_esm/chains/zksync/index.js +1 -0
- package/_esm/chains/zksync/index.js.map +1 -1
- package/_esm/chains/zksync/types/contract.js +2 -0
- package/_esm/chains/zksync/types/contract.js.map +1 -0
- package/_esm/chains/zksync/utils/abi/encodeDeployData.js +65 -0
- package/_esm/chains/zksync/utils/abi/encodeDeployData.js.map +1 -0
- package/_esm/chains/zksync/utils/getEip712Domain.js +4 -2
- package/_esm/chains/zksync/utils/getEip712Domain.js.map +1 -1
- package/_esm/chains/zksync/utils/hashBytecode.js +36 -0
- package/_esm/chains/zksync/utils/hashBytecode.js.map +1 -0
- package/_esm/errors/version.js +1 -1
- package/_esm/errors/version.js.map +1 -1
- package/_esm/index.js.map +1 -1
- package/_types/chains/definitions/optimismSepolia.d.ts +5 -0
- package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
- package/_types/chains/opStack/abis.d.ts +824 -0
- package/_types/chains/opStack/abis.d.ts.map +1 -1
- package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts +6 -2
- package/_types/chains/opStack/actions/buildProveWithdrawal.d.ts.map +1 -1
- package/_types/chains/opStack/actions/getGame.d.ts +57 -0
- package/_types/chains/opStack/actions/getGame.d.ts.map +1 -0
- package/_types/chains/opStack/actions/getGames.d.ts +48 -0
- package/_types/chains/opStack/actions/getGames.d.ts.map +1 -0
- package/_types/chains/opStack/actions/getL2Output.d.ts +8 -1
- package/_types/chains/opStack/actions/getL2Output.d.ts.map +1 -1
- package/_types/chains/opStack/actions/getPortalVersion.d.ts +46 -0
- package/_types/chains/opStack/actions/getPortalVersion.d.ts.map +1 -0
- package/_types/chains/opStack/actions/getTimeToFinalize.d.ts.map +1 -1
- package/_types/chains/opStack/actions/getTimeToNextGame.d.ts +61 -0
- package/_types/chains/opStack/actions/getTimeToNextGame.d.ts.map +1 -0
- package/_types/chains/opStack/actions/getTimeToProve.d.ts +6 -3
- package/_types/chains/opStack/actions/getTimeToProve.d.ts.map +1 -1
- package/_types/chains/opStack/actions/getWithdrawalStatus.d.ts +7 -1
- package/_types/chains/opStack/actions/getWithdrawalStatus.d.ts.map +1 -1
- package/_types/chains/opStack/actions/proveWithdrawal.d.ts +1 -1
- package/_types/chains/opStack/actions/proveWithdrawal.d.ts.map +1 -1
- package/_types/chains/opStack/actions/waitForNextGame.d.ts +60 -0
- package/_types/chains/opStack/actions/waitForNextGame.d.ts.map +1 -0
- package/_types/chains/opStack/actions/waitForNextL2Output.d.ts.map +1 -1
- package/_types/chains/opStack/actions/waitToProve.d.ts +10 -2
- package/_types/chains/opStack/actions/waitToProve.d.ts.map +1 -1
- package/_types/chains/opStack/decorators/publicL1.d.ts +129 -0
- package/_types/chains/opStack/decorators/publicL1.d.ts.map +1 -1
- package/_types/chains/opStack/errors/withdrawal.d.ts +7 -0
- package/_types/chains/opStack/errors/withdrawal.d.ts.map +1 -1
- package/_types/chains/opStack/index.d.ts +5 -0
- package/_types/chains/opStack/index.d.ts.map +1 -1
- package/_types/chains/opStack/types/chain.d.ts +1 -1
- package/_types/chains/opStack/types/chain.d.ts.map +1 -1
- package/_types/chains/opStack/types/withdrawal.d.ts +7 -0
- package/_types/chains/opStack/types/withdrawal.d.ts.map +1 -1
- package/_types/chains/zksync/actions/deployContract.d.ts +49 -0
- package/_types/chains/zksync/actions/deployContract.d.ts.map +1 -0
- package/_types/chains/zksync/constants/abis.d.ts +70 -0
- package/_types/chains/zksync/constants/abis.d.ts.map +1 -0
- package/_types/chains/zksync/constants/address.d.ts +2 -0
- package/_types/chains/zksync/constants/address.d.ts.map +1 -0
- package/_types/chains/zksync/constants/contract.d.ts +3 -0
- package/_types/chains/zksync/constants/contract.d.ts.map +1 -0
- package/_types/chains/zksync/constants/number.d.ts +2 -0
- package/_types/chains/zksync/constants/number.d.ts.map +1 -0
- package/_types/chains/zksync/decorators/eip712.d.ts +32 -0
- package/_types/chains/zksync/decorators/eip712.d.ts.map +1 -1
- package/_types/chains/zksync/errors/bytecode.d.ts +30 -0
- package/_types/chains/zksync/errors/bytecode.d.ts.map +1 -0
- package/_types/chains/zksync/formatters.d.ts.map +1 -1
- package/_types/chains/zksync/index.d.ts +1 -0
- package/_types/chains/zksync/index.d.ts.map +1 -1
- package/_types/chains/zksync/types/contract.d.ts +2 -0
- package/_types/chains/zksync/types/contract.d.ts.map +1 -0
- package/_types/chains/zksync/utils/abi/encodeDeployData.d.ts +13 -0
- package/_types/chains/zksync/utils/abi/encodeDeployData.d.ts.map +1 -0
- package/_types/chains/zksync/utils/getEip712Domain.d.ts.map +1 -1
- package/_types/chains/zksync/utils/hashBytecode.d.ts +3 -0
- package/_types/chains/zksync/utils/hashBytecode.d.ts.map +1 -0
- package/_types/errors/version.d.ts +1 -1
- package/_types/errors/version.d.ts.map +1 -1
- package/_types/index.d.ts +7 -3
- package/_types/index.d.ts.map +1 -1
- package/chains/definitions/optimismSepolia.ts +5 -0
- package/chains/opStack/abis.ts +1071 -0
- package/chains/opStack/actions/buildProveWithdrawal.ts +7 -6
- package/chains/opStack/actions/getGame.ts +99 -0
- package/chains/opStack/actions/getGames.ts +133 -0
- package/chains/opStack/actions/getL2Output.ts +44 -3
- package/chains/opStack/actions/getPortalVersion.ts +87 -0
- package/chains/opStack/actions/getTimeToFinalize.ts +64 -27
- package/chains/opStack/actions/getTimeToNextGame.ts +143 -0
- package/chains/opStack/actions/getTimeToProve.ts +43 -5
- package/chains/opStack/actions/getWithdrawalStatus.ts +130 -38
- package/chains/opStack/actions/proveWithdrawal.ts +3 -1
- package/chains/opStack/actions/waitForNextGame.ts +122 -0
- package/chains/opStack/actions/waitForNextL2Output.ts +5 -1
- package/chains/opStack/actions/waitToProve.ts +65 -7
- package/chains/opStack/decorators/publicL1.ts +164 -0
- package/chains/opStack/errors/withdrawal.ts +10 -0
- package/chains/opStack/index.ts +30 -0
- package/chains/opStack/types/chain.ts +4 -1
- package/chains/opStack/types/withdrawal.ts +8 -0
- package/chains/zksync/actions/deployContract.ts +100 -0
- package/chains/zksync/constants/abis.ts +424 -0
- package/chains/zksync/constants/address.ts +2 -0
- package/chains/zksync/constants/contract.ts +2 -0
- package/chains/zksync/constants/number.ts +3 -0
- package/chains/zksync/decorators/eip712.ts +47 -0
- package/chains/zksync/errors/bytecode.ts +46 -0
- package/chains/zksync/formatters.ts +7 -1
- package/chains/zksync/index.ts +6 -0
- package/chains/zksync/types/contract.ts +6 -0
- package/chains/zksync/utils/abi/encodeDeployData.ts +120 -0
- package/chains/zksync/utils/getEip712Domain.ts +4 -2
- package/chains/zksync/utils/hashBytecode.ts +48 -0
- package/errors/version.ts +1 -1
- package/index.ts +36 -1
- package/package.json +1 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"getTimeToNextGame.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/getTimeToNextGame.ts"],"names":[],"mappings":"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"}
|
@@ -1,3 +1,5 @@
|
|
1
|
+
import { getPortalVersion, } from './getPortalVersion.js';
|
2
|
+
import { getTimeToNextGame, } from './getTimeToNextGame.js';
|
1
3
|
import { getTimeToNextL2Output, } from './getTimeToNextL2Output.js';
|
2
4
|
/**
|
3
5
|
* Returns the time until the withdrawal transaction is ready to prove. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.
|
@@ -31,7 +33,14 @@ import { getTimeToNextL2Output, } from './getTimeToNextL2Output.js';
|
|
31
33
|
*/
|
32
34
|
export async function getTimeToProve(client, parameters) {
|
33
35
|
const { receipt } = parameters;
|
34
|
-
|
36
|
+
const portalVersion = await getPortalVersion(client, parameters);
|
37
|
+
// Legacy
|
38
|
+
if (portalVersion.major < 3)
|
39
|
+
return getTimeToNextL2Output(client, {
|
40
|
+
...parameters,
|
41
|
+
l2BlockNumber: receipt.blockNumber,
|
42
|
+
});
|
43
|
+
return getTimeToNextGame(client, {
|
35
44
|
...parameters,
|
36
45
|
l2BlockNumber: receipt.blockNumber,
|
37
46
|
});
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getTimeToProve.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/getTimeToProve.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"getTimeToProve.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/getTimeToProve.ts"],"names":[],"mappings":"AAYA,OAAO,EAGL,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAIL,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAIL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAkCnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAKlC,MAAyC,EACzC,UAA0D;IAE1D,MAAM,EAAE,OAAO,EAAE,GAAG,UAAU,CAAA;IAE9B,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAC1C,MAAM,EACN,UAAwC,CACzC,CAAA;IAED,SAAS;IACT,IAAI,aAAa,CAAC,KAAK,GAAG,CAAC;QACzB,OAAO,qBAAqB,CAAC,MAAM,EAAE;YACnC,GAAG,UAAU;YACb,aAAa,EAAE,OAAO,CAAC,WAAW;SACA,CAAC,CAAA;IAEvC,OAAO,iBAAiB,CAAC,MAAM,EAAE;QAC/B,GAAG,UAAU;QACb,aAAa,EAAE,OAAO,CAAC,WAAW;KACJ,CAAC,CAAA;AACnC,CAAC"}
|
@@ -1,9 +1,11 @@
|
|
1
1
|
import { readContract, } from '../../../actions/public/readContract.js';
|
2
2
|
import { ContractFunctionRevertedError } from '../../../errors/contract.js';
|
3
|
-
import { portalAbi } from '../abis.js';
|
3
|
+
import { portal2Abi, portalAbi } from '../abis.js';
|
4
4
|
import { ReceiptContainsNoWithdrawalsError } from '../errors/withdrawal.js';
|
5
5
|
import { getWithdrawals, } from '../utils/getWithdrawals.js';
|
6
|
-
import {
|
6
|
+
import { getGame, } from './getGame.js';
|
7
|
+
import { getL2Output, } from './getL2Output.js';
|
8
|
+
import { getPortalVersion, } from './getPortalVersion.js';
|
7
9
|
import { getTimeToFinalize, } from './getTimeToFinalize.js';
|
8
10
|
/**
|
9
11
|
* Returns the current status of a withdrawal. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.
|
@@ -36,7 +38,8 @@ import { getTimeToFinalize, } from './getTimeToFinalize.js';
|
|
36
38
|
* })
|
37
39
|
*/
|
38
40
|
export async function getWithdrawalStatus(client, parameters) {
|
39
|
-
const { chain = client.chain, receipt, targetChain } = parameters;
|
41
|
+
const { chain = client.chain, gameLimit = 100, receipt, targetChain: targetChain_, } = parameters;
|
42
|
+
const targetChain = targetChain_;
|
40
43
|
const portalAddress = (() => {
|
41
44
|
if (parameters.portalAddress)
|
42
45
|
return parameters.portalAddress;
|
@@ -49,51 +52,100 @@ export async function getWithdrawalStatus(client, parameters) {
|
|
49
52
|
throw new ReceiptContainsNoWithdrawalsError({
|
50
53
|
hash: receipt.transactionHash,
|
51
54
|
});
|
52
|
-
const
|
53
|
-
|
55
|
+
const portalVersion = await getPortalVersion(client, parameters);
|
56
|
+
// Legacy (Portal < v3)
|
57
|
+
if (portalVersion.major < 3) {
|
58
|
+
const [outputResult, proveResult, finalizedResult, timeToFinalizeResult] = await Promise.allSettled([
|
59
|
+
getL2Output(client, {
|
60
|
+
...parameters,
|
61
|
+
l2BlockNumber: receipt.blockNumber,
|
62
|
+
}),
|
63
|
+
readContract(client, {
|
64
|
+
abi: portalAbi,
|
65
|
+
address: portalAddress,
|
66
|
+
functionName: 'provenWithdrawals',
|
67
|
+
args: [withdrawal.withdrawalHash],
|
68
|
+
}),
|
69
|
+
readContract(client, {
|
70
|
+
abi: portalAbi,
|
71
|
+
address: portalAddress,
|
72
|
+
functionName: 'finalizedWithdrawals',
|
73
|
+
args: [withdrawal.withdrawalHash],
|
74
|
+
}),
|
75
|
+
getTimeToFinalize(client, {
|
76
|
+
...parameters,
|
77
|
+
withdrawalHash: withdrawal.withdrawalHash,
|
78
|
+
}),
|
79
|
+
]);
|
80
|
+
// If the L2 Output is not processed yet (ie. the actions throws), this means
|
81
|
+
// that the withdrawal is not ready to prove.
|
82
|
+
if (outputResult.status === 'rejected') {
|
83
|
+
const error = outputResult.reason;
|
84
|
+
if (error.cause instanceof ContractFunctionRevertedError &&
|
85
|
+
error.cause.data?.args?.[0] ===
|
86
|
+
'L2OutputOracle: cannot get output for a block that has not been proposed')
|
87
|
+
return 'waiting-to-prove';
|
88
|
+
throw error;
|
89
|
+
}
|
90
|
+
if (proveResult.status === 'rejected')
|
91
|
+
throw proveResult.reason;
|
92
|
+
if (finalizedResult.status === 'rejected')
|
93
|
+
throw finalizedResult.reason;
|
94
|
+
if (timeToFinalizeResult.status === 'rejected')
|
95
|
+
throw timeToFinalizeResult.reason;
|
96
|
+
const [_, proveTimestamp] = proveResult.value;
|
97
|
+
if (!proveTimestamp)
|
98
|
+
return 'ready-to-prove';
|
99
|
+
const finalized = finalizedResult.value;
|
100
|
+
if (finalized)
|
101
|
+
return 'finalized';
|
102
|
+
const { seconds } = timeToFinalizeResult.value;
|
103
|
+
return seconds > 0 ? 'waiting-to-finalize' : 'ready-to-finalize';
|
104
|
+
}
|
105
|
+
const [disputeGameResult, checkWithdrawalResult, finalizedResult] = await Promise.allSettled([
|
106
|
+
getGame(client, {
|
54
107
|
...parameters,
|
55
108
|
l2BlockNumber: receipt.blockNumber,
|
109
|
+
limit: gameLimit,
|
56
110
|
}),
|
57
111
|
readContract(client, {
|
58
|
-
abi:
|
112
|
+
abi: portal2Abi,
|
59
113
|
address: portalAddress,
|
60
|
-
functionName: '
|
114
|
+
functionName: 'checkWithdrawal',
|
61
115
|
args: [withdrawal.withdrawalHash],
|
62
116
|
}),
|
63
117
|
readContract(client, {
|
64
|
-
abi:
|
118
|
+
abi: portal2Abi,
|
65
119
|
address: portalAddress,
|
66
120
|
functionName: 'finalizedWithdrawals',
|
67
121
|
args: [withdrawal.withdrawalHash],
|
68
122
|
}),
|
69
|
-
getTimeToFinalize(client, {
|
70
|
-
...parameters,
|
71
|
-
withdrawalHash: withdrawal.withdrawalHash,
|
72
|
-
}),
|
73
123
|
]);
|
74
|
-
|
75
|
-
|
76
|
-
if (
|
77
|
-
const error =
|
78
|
-
if (error.
|
79
|
-
error.cause.data?.args?.[0] ===
|
80
|
-
'L2OutputOracle: cannot get output for a block that has not been proposed')
|
124
|
+
if (finalizedResult.status === 'fulfilled' && finalizedResult.value)
|
125
|
+
return 'finalized';
|
126
|
+
if (disputeGameResult.status === 'rejected') {
|
127
|
+
const error = disputeGameResult.reason;
|
128
|
+
if (error.name === 'GameNotFoundError')
|
81
129
|
return 'waiting-to-prove';
|
82
|
-
throw
|
130
|
+
throw disputeGameResult.reason;
|
131
|
+
}
|
132
|
+
if (checkWithdrawalResult.status === 'rejected') {
|
133
|
+
const error = checkWithdrawalResult.reason;
|
134
|
+
if (error.cause instanceof ContractFunctionRevertedError) {
|
135
|
+
const errorMessage = error.cause.data?.args?.[0];
|
136
|
+
if (errorMessage === 'OptimismPortal: withdrawal has not been proven yet')
|
137
|
+
return 'ready-to-prove';
|
138
|
+
if (errorMessage ===
|
139
|
+
'OptimismPortal: proven withdrawal has not matured yet' ||
|
140
|
+
errorMessage ===
|
141
|
+
'OptimismPortal: output proposal has not been finalized yet' ||
|
142
|
+
errorMessage === 'OptimismPortal: output proposal in air-gap')
|
143
|
+
return 'waiting-to-finalize';
|
144
|
+
}
|
145
|
+
throw checkWithdrawalResult.reason;
|
83
146
|
}
|
84
|
-
if (proveResult.status === 'rejected')
|
85
|
-
throw proveResult.reason;
|
86
147
|
if (finalizedResult.status === 'rejected')
|
87
148
|
throw finalizedResult.reason;
|
88
|
-
|
89
|
-
throw timeToFinalizeResult.reason;
|
90
|
-
const [_, proveTimestamp] = proveResult.value;
|
91
|
-
if (!proveTimestamp)
|
92
|
-
return 'ready-to-prove';
|
93
|
-
const finalized = finalizedResult.value;
|
94
|
-
if (finalized)
|
95
|
-
return 'finalized';
|
96
|
-
const { seconds } = timeToFinalizeResult.value;
|
97
|
-
return seconds > 0 ? 'waiting-to-finalize' : 'ready-to-finalize';
|
149
|
+
return 'ready-to-finalize';
|
98
150
|
}
|
99
151
|
//# sourceMappingURL=getWithdrawalStatus.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"getWithdrawalStatus.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/getWithdrawalStatus.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,YAAY,GACb,MAAM,yCAAyC,CAAA;AAGhD,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;
|
1
|
+
{"version":3,"file":"getWithdrawalStatus.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/getWithdrawalStatus.ts"],"names":[],"mappings":"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"}
|
@@ -38,7 +38,7 @@ export async function proveWithdrawal(client, parameters) {
|
|
38
38
|
return targetChain.contracts.portal[chain.id].address;
|
39
39
|
return Object.values(targetChain.contracts.portal)[0].address;
|
40
40
|
})();
|
41
|
-
const gas_ = typeof gas !== '
|
41
|
+
const gas_ = typeof gas !== 'bigint' && gas !== null
|
42
42
|
? await estimateProveWithdrawalGas(client, parameters)
|
43
43
|
: gas ?? undefined;
|
44
44
|
return writeContract(client, {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"proveWithdrawal.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/proveWithdrawal.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,GACd,MAAM,0CAA0C,CAAA;AAajD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,OAAO,EAGL,0BAA0B,GAC3B,MAAM,iCAAiC,CAAA;
|
1
|
+
{"version":3,"file":"proveWithdrawal.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/proveWithdrawal.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,aAAa,GACd,MAAM,0CAA0C,CAAA;AAajD,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAEtC,OAAO,EAGL,0BAA0B,GAC3B,MAAM,iCAAiC,CAAA;AAqDxC;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAKnC,MAAyC,EACzC,UAAoE;IAEpE,MAAM,EACJ,OAAO,EACP,KAAK,GAAG,MAAM,CAAC,KAAK,EACpB,GAAG,EACH,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,KAAK,EACL,eAAe,EACf,WAAW,EACX,eAAe,EACf,UAAU,GACX,GAAG,UAAU,CAAA;IAEd,MAAM,aAAa,GAAG,CAAC,GAAG,EAAE;QAC1B,IAAI,UAAU,CAAC,aAAa;YAAE,OAAO,UAAU,CAAC,aAAa,CAAA;QAC7D,IAAI,KAAK;YAAE,OAAO,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAA;QACjE,OAAO,MAAM,CAAC,MAAM,CAAC,WAAY,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAA;IAChE,CAAC,CAAC,EAAE,CAAA;IAEJ,MAAM,IAAI,GACR,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QACrC,CAAC,CAAC,MAAM,0BAA0B,CAC9B,MAAM,EACN,UAAkD,CACnD;QACH,CAAC,CAAC,GAAG,IAAI,SAAS,CAAA;IAEtB,OAAO,aAAa,CAAC,MAAM,EAAE;QAC3B,OAAO,EAAE,OAAQ;QACjB,GAAG,EAAE,SAAS;QACd,OAAO,EAAE,aAAa;QACtB,KAAK;QACL,YAAY,EAAE,4BAA4B;QAC1C,IAAI,EAAE,CAAC,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,CAAC;QACnE,GAAG,EAAE,IAAI;QACT,YAAY;QACZ,oBAAoB;QACpB,KAAK;KACmC,CAAC,CAAA;AAC7C,CAAC"}
|
@@ -0,0 +1,61 @@
|
|
1
|
+
import { poll } from '../../../utils/poll.js';
|
2
|
+
import { GameNotFoundError } from '../errors/withdrawal.js';
|
3
|
+
import { getGame, } from './getGame.js';
|
4
|
+
import { getTimeToNextGame, } from './getTimeToNextGame.js';
|
5
|
+
/**
|
6
|
+
* Waits for the next dispute game (after the provided block number) to be submitted.
|
7
|
+
*
|
8
|
+
* - Docs: https://viem.sh/op-stack/actions/waitForNextGame
|
9
|
+
*
|
10
|
+
* @param client - Client to use
|
11
|
+
* @param parameters - {@link WaitForNextGameParameters}
|
12
|
+
* @returns The L2 transaction hash. {@link WaitForNextGameReturnType}
|
13
|
+
*
|
14
|
+
* @example
|
15
|
+
* import { createPublicClient, http } from 'viem'
|
16
|
+
* import { getBlockNumber } from 'viem/actions'
|
17
|
+
* import { mainnet, optimism } from 'viem/chains'
|
18
|
+
* import { waitForNextGame } from 'viem/op-stack'
|
19
|
+
*
|
20
|
+
* const publicClientL1 = createPublicClient({
|
21
|
+
* chain: mainnet,
|
22
|
+
* transport: http(),
|
23
|
+
* })
|
24
|
+
* const publicClientL2 = createPublicClient({
|
25
|
+
* chain: optimism,
|
26
|
+
* transport: http(),
|
27
|
+
* })
|
28
|
+
*
|
29
|
+
* const l2BlockNumber = await getBlockNumber(publicClientL2)
|
30
|
+
* await waitForNextGame(publicClientL1, {
|
31
|
+
* l2BlockNumber,
|
32
|
+
* targetChain: optimism
|
33
|
+
* })
|
34
|
+
*/
|
35
|
+
export async function waitForNextGame(client, parameters) {
|
36
|
+
const { pollingInterval = client.pollingInterval } = parameters;
|
37
|
+
const { seconds } = await getTimeToNextGame(client, parameters);
|
38
|
+
return new Promise((resolve, reject) => {
|
39
|
+
poll(async ({ unpoll }) => {
|
40
|
+
try {
|
41
|
+
const game = await getGame(client, {
|
42
|
+
...parameters,
|
43
|
+
strategy: 'random',
|
44
|
+
});
|
45
|
+
unpoll();
|
46
|
+
resolve(game);
|
47
|
+
}
|
48
|
+
catch (e) {
|
49
|
+
const error = e;
|
50
|
+
if (!(error instanceof GameNotFoundError)) {
|
51
|
+
unpoll();
|
52
|
+
reject(e);
|
53
|
+
}
|
54
|
+
}
|
55
|
+
}, {
|
56
|
+
interval: pollingInterval,
|
57
|
+
initialWaitTime: async () => seconds * 1000,
|
58
|
+
});
|
59
|
+
});
|
60
|
+
}
|
61
|
+
//# sourceMappingURL=waitForNextGame.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"waitForNextGame.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/waitForNextGame.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAE3D,OAAO,EAGL,OAAO,GACR,MAAM,cAAc,CAAA;AACrB,OAAO,EAGL,iBAAiB,GAClB,MAAM,wBAAwB,CAAA;AAkC/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAKnC,MAAyC,EACzC,UAA2D;IAE3D,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,GAAG,UAAU,CAAA;IAE/D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,iBAAiB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAE/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CACF,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,MAAM,EAAE;oBACjC,GAAG,UAAU;oBACb,QAAQ,EAAE,QAAQ;iBACnB,CAAC,CAAA;gBACF,MAAM,EAAE,CAAA;gBACR,OAAO,CAAC,IAAI,CAAC,CAAA;YACf,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,CAAqB,CAAA;gBACnC,IAAI,CAAC,CAAC,KAAK,YAAY,iBAAiB,CAAC,EAAE,CAAC;oBAC1C,MAAM,EAAE,CAAA;oBACR,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC,EACD;YACE,QAAQ,EAAE,eAAe;YACzB,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,GAAG,IAAI;SAC5C,CACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"waitForNextL2Output.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/waitForNextL2Output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAQ3E,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAE7C,OAAO,
|
1
|
+
{"version":3,"file":"waitForNextL2Output.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/waitForNextL2Output.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,6BAA6B,EAAE,MAAM,6BAA6B,CAAA;AAQ3E,OAAO,EAAE,IAAI,EAAE,MAAM,wBAAwB,CAAA;AAE7C,OAAO,EAIL,WAAW,GACZ,MAAM,kBAAkB,CAAA;AACzB,OAAO,EAGL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AA4BnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAKvC,MAAyC,EACzC,UAA+D;IAE/D,MAAM,EAAE,eAAe,GAAG,MAAM,CAAC,eAAe,EAAE,GAAG,UAAU,CAAA;IAE/D,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,qBAAqB,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;IAEnE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,IAAI,CACF,KAAK,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE;YACnB,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,WAAW,CAC9B,MAAM,EACN,UAAmC,CACpC,CAAA;gBACD,MAAM,EAAE,CAAA;gBACR,OAAO,CAAC,MAAM,CAAC,CAAA;YACjB,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,MAAM,KAAK,GAAG,CAAyB,CAAA;gBACvC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,6BAA6B,CAAC,EAAE,CAAC;oBAC5D,MAAM,EAAE,CAAA;oBACR,MAAM,CAAC,CAAC,CAAC,CAAA;gBACX,CAAC;YACH,CAAC;QACH,CAAC,EACD;YACE,QAAQ,EAAE,eAAe;YACzB,eAAe,EAAE,KAAK,IAAI,EAAE,CAAC,OAAO,GAAG,IAAI;SAC5C,CACF,CAAA;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
|
@@ -1,5 +1,7 @@
|
|
1
1
|
import { ReceiptContainsNoWithdrawalsError } from '../errors/withdrawal.js';
|
2
2
|
import { getWithdrawals, } from '../utils/getWithdrawals.js';
|
3
|
+
import { getPortalVersion, } from './getPortalVersion.js';
|
4
|
+
import { waitForNextGame, } from './waitForNextGame.js';
|
3
5
|
import { waitForNextL2Output, } from './waitForNextL2Output.js';
|
4
6
|
/**
|
5
7
|
* Waits until the L2 withdrawal transaction is ready to be proved. Used for the [Withdrawal](/op-stack/guides/withdrawals) flow.
|
@@ -32,16 +34,46 @@ import { waitForNextL2Output, } from './waitForNextL2Output.js';
|
|
32
34
|
* })
|
33
35
|
*/
|
34
36
|
export async function waitToProve(client, parameters) {
|
35
|
-
const { receipt } = parameters;
|
37
|
+
const { gameLimit, receipt } = parameters;
|
36
38
|
const [withdrawal] = getWithdrawals(receipt);
|
37
39
|
if (!withdrawal)
|
38
40
|
throw new ReceiptContainsNoWithdrawalsError({
|
39
41
|
hash: receipt.transactionHash,
|
40
42
|
});
|
41
|
-
const
|
43
|
+
const portalVersion = await getPortalVersion(client, parameters);
|
44
|
+
// Legacy (Portal < v3)
|
45
|
+
if (portalVersion.major < 3) {
|
46
|
+
const output = await waitForNextL2Output(client, {
|
47
|
+
...parameters,
|
48
|
+
l2BlockNumber: receipt.blockNumber,
|
49
|
+
});
|
50
|
+
return {
|
51
|
+
game: {
|
52
|
+
extraData: '0x',
|
53
|
+
index: output.outputIndex,
|
54
|
+
l2BlockNumber: output.l2BlockNumber,
|
55
|
+
metadata: '0x',
|
56
|
+
rootClaim: output.outputRoot,
|
57
|
+
timestamp: output.timestamp,
|
58
|
+
},
|
59
|
+
output,
|
60
|
+
withdrawal,
|
61
|
+
};
|
62
|
+
}
|
63
|
+
const game = await waitForNextGame(client, {
|
42
64
|
...parameters,
|
65
|
+
limit: gameLimit,
|
43
66
|
l2BlockNumber: receipt.blockNumber,
|
44
67
|
});
|
45
|
-
return {
|
68
|
+
return {
|
69
|
+
game,
|
70
|
+
output: {
|
71
|
+
l2BlockNumber: game.l2BlockNumber,
|
72
|
+
outputIndex: game.index,
|
73
|
+
outputRoot: game.rootClaim,
|
74
|
+
timestamp: game.timestamp,
|
75
|
+
},
|
76
|
+
withdrawal,
|
77
|
+
};
|
46
78
|
}
|
47
79
|
//# sourceMappingURL=waitToProve.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"waitToProve.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/waitToProve.ts"],"names":[],"mappings":"
|
1
|
+
{"version":3,"file":"waitToProve.js","sourceRoot":"","sources":["../../../../chains/opStack/actions/waitToProve.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,iCAAiC,EAAE,MAAM,yBAAyB,CAAA;AAG3E,OAAO,EAEL,cAAc,GACf,MAAM,4BAA4B,CAAA;AACnC,OAAO,EAEL,gBAAgB,GACjB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAGL,eAAe,GAChB,MAAM,sBAAsB,CAAA;AAC7B,OAAO,EAIL,mBAAmB,GACpB,MAAM,0BAA0B,CAAA;AAqCjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAK/B,MAAyC,EACzC,UAAuD;IAEvD,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,UAAU,CAAA;IAEzC,MAAM,CAAC,UAAU,CAAC,GAAG,cAAc,CAAC,OAAO,CAAC,CAAA;IAE5C,IAAI,CAAC,UAAU;QACb,MAAM,IAAI,iCAAiC,CAAC;YAC1C,IAAI,EAAE,OAAO,CAAC,eAAe;SAC9B,CAAC,CAAA;IAEJ,MAAM,aAAa,GAAG,MAAM,gBAAgB,CAC1C,MAAM,EACN,UAAwC,CACzC,CAAA;IAED,uBAAuB;IACvB,IAAI,aAAa,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE;YAC/C,GAAG,UAAU;YACb,aAAa,EAAE,OAAO,CAAC,WAAW;SACF,CAAC,CAAA;QACnC,OAAO;YACL,IAAI,EAAE;gBACJ,SAAS,EAAE,IAAI;gBACf,KAAK,EAAE,MAAM,CAAC,WAAW;gBACzB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,QAAQ,EAAE,IAAI;gBACd,SAAS,EAAE,MAAM,CAAC,UAAU;gBAC5B,SAAS,EAAE,MAAM,CAAC,SAAS;aAC5B;YACD,MAAM;YACN,UAAU;SACX,CAAA;IACH,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE;QACzC,GAAG,UAAU;QACb,KAAK,EAAE,SAAS;QAChB,aAAa,EAAE,OAAO,CAAC,WAAW;KACN,CAAC,CAAA;IAC/B,OAAO;QACL,IAAI;QACJ,MAAM,EAAE;YACN,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,WAAW,EAAE,IAAI,CAAC,KAAK;YACvB,UAAU,EAAE,IAAI,CAAC,SAAS;YAC1B,SAAS,EAAE,IAAI,CAAC,SAAS;SAC1B;QACD,UAAU;KACX,CAAA;AACH,CAAC"}
|
@@ -2,11 +2,16 @@ import { buildInitiateWithdrawal, } from '../actions/buildInitiateWithdrawal.js'
|
|
2
2
|
import { estimateDepositTransactionGas, } from '../actions/estimateDepositTransactionGas.js';
|
3
3
|
import { estimateFinalizeWithdrawalGas, } from '../actions/estimateFinalizeWithdrawalGas.js';
|
4
4
|
import { estimateProveWithdrawalGas, } from '../actions/estimateProveWithdrawalGas.js';
|
5
|
+
import { getGame, } from '../actions/getGame.js';
|
6
|
+
import { getGames, } from '../actions/getGames.js';
|
5
7
|
import { getL2Output, } from '../actions/getL2Output.js';
|
8
|
+
import { getPortalVersion, } from '../actions/getPortalVersion.js';
|
6
9
|
import { getTimeToFinalize, } from '../actions/getTimeToFinalize.js';
|
10
|
+
import { getTimeToNextGame, } from '../actions/getTimeToNextGame.js';
|
7
11
|
import { getTimeToNextL2Output, } from '../actions/getTimeToNextL2Output.js';
|
8
12
|
import { getTimeToProve, } from '../actions/getTimeToProve.js';
|
9
13
|
import { getWithdrawalStatus, } from '../actions/getWithdrawalStatus.js';
|
14
|
+
import { waitForNextGame, } from '../actions/waitForNextGame.js';
|
10
15
|
import { waitForNextL2Output, } from '../actions/waitForNextL2Output.js';
|
11
16
|
import { waitToFinalize, } from '../actions/waitToFinalize.js';
|
12
17
|
import { waitToProve, } from '../actions/waitToProve.js';
|
@@ -32,11 +37,16 @@ export function publicActionsL1() {
|
|
32
37
|
estimateDepositTransactionGas: (args) => estimateDepositTransactionGas(client, args),
|
33
38
|
estimateFinalizeWithdrawalGas: (args) => estimateFinalizeWithdrawalGas(client, args),
|
34
39
|
estimateProveWithdrawalGas: (args) => estimateProveWithdrawalGas(client, args),
|
40
|
+
getGame: (args) => getGame(client, args),
|
41
|
+
getGames: (args) => getGames(client, args),
|
35
42
|
getL2Output: (args) => getL2Output(client, args),
|
43
|
+
getPortalVersion: (args) => getPortalVersion(client, args),
|
36
44
|
getTimeToFinalize: (args) => getTimeToFinalize(client, args),
|
45
|
+
getTimeToNextGame: (args) => getTimeToNextGame(client, args),
|
37
46
|
getTimeToNextL2Output: (args) => getTimeToNextL2Output(client, args),
|
38
47
|
getTimeToProve: (args) => getTimeToProve(client, args),
|
39
48
|
getWithdrawalStatus: (args) => getWithdrawalStatus(client, args),
|
49
|
+
waitForNextGame: (args) => waitForNextGame(client, args),
|
40
50
|
waitForNextL2Output: (args) => waitForNextL2Output(client, args),
|
41
51
|
waitToFinalize: (args) => waitToFinalize(client, args),
|
42
52
|
waitToProve: (args) => waitToProve(client, args),
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"publicL1.js","sourceRoot":"","sources":["../../../../chains/opStack/decorators/publicL1.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,uBAAuB,GACxB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAGL,6BAA6B,GAC9B,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAGL,6BAA6B,GAC9B,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAGL,0BAA0B,GAC3B,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAGL,WAAW,GACZ,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAGL,iBAAiB,GAClB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAGL,qBAAqB,GACtB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAGL,cAAc,GACf,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAGL,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAGL,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAGL,cAAc,GACf,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAGL,WAAW,GACZ,MAAM,2BAA2B,CAAA;
|
1
|
+
{"version":3,"file":"publicL1.js","sourceRoot":"","sources":["../../../../chains/opStack/decorators/publicL1.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,uBAAuB,GACxB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EAGL,6BAA6B,GAC9B,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAGL,6BAA6B,GAC9B,MAAM,6CAA6C,CAAA;AACpD,OAAO,EAGL,0BAA0B,GAC3B,MAAM,0CAA0C,CAAA;AACjD,OAAO,EAGL,OAAO,GACR,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAGL,QAAQ,GACT,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAGL,WAAW,GACZ,MAAM,2BAA2B,CAAA;AAClC,OAAO,EAGL,gBAAgB,GACjB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAGL,iBAAiB,GAClB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAGL,iBAAiB,GAClB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EAGL,qBAAqB,GACtB,MAAM,qCAAqC,CAAA;AAC5C,OAAO,EAGL,cAAc,GACf,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAGL,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAGL,eAAe,GAChB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAGL,mBAAmB,GACpB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EAGL,cAAc,GACf,MAAM,8BAA8B,CAAA;AACrC,OAAO,EAGL,WAAW,GACZ,MAAM,2BAA2B,CAAA;AA6iBlC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,CAKL,MAA4C,EACT,EAAE;QACrC,OAAO;YACL,uBAAuB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,uBAAuB,CAAC,MAAM,EAAE,IAAI,CAAC;YACxE,6BAA6B,EAAE,CAAC,IAAI,EAAE,EAAE,CACtC,6BAA6B,CAAC,MAAM,EAAE,IAAI,CAAC;YAC7C,6BAA6B,EAAE,CAAC,IAAI,EAAE,EAAE,CACtC,6BAA6B,CAAC,MAAM,EAAE,IAAI,CAAC;YAC7C,0BAA0B,EAAE,CAAC,IAAI,EAAE,EAAE,CACnC,0BAA0B,CAAC,MAAM,EAAE,IAAI,CAAC;YAC1C,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;YACxC,QAAQ,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC;YAC1C,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;YAChD,gBAAgB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC;YAC1D,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;YAC5D,iBAAiB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC;YAC5D,qBAAqB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC;YACpE,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;YACtD,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;YAChE,eAAe,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC;YACxD,mBAAmB,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;YAChE,cAAc,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC;YACtD,WAAW,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC;SACjD,CAAA;IACH,CAAC,CAAA;AACH,CAAC"}
|
@@ -1,4 +1,15 @@
|
|
1
1
|
import { BaseError } from '../../../errors/base.js';
|
2
|
+
export class GameNotFoundError extends BaseError {
|
3
|
+
constructor() {
|
4
|
+
super('Dispute game not found.');
|
5
|
+
Object.defineProperty(this, "name", {
|
6
|
+
enumerable: true,
|
7
|
+
configurable: true,
|
8
|
+
writable: true,
|
9
|
+
value: 'GameNotFoundError'
|
10
|
+
});
|
11
|
+
}
|
12
|
+
}
|
2
13
|
export class ReceiptContainsNoWithdrawalsError extends BaseError {
|
3
14
|
constructor({ hash }) {
|
4
15
|
super(`The provided transaction receipt with hash "${hash}" contains no withdrawals.`);
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"withdrawal.js","sourceRoot":"","sources":["../../../../chains/opStack/errors/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;
|
1
|
+
{"version":3,"file":"withdrawal.js","sourceRoot":"","sources":["../../../../chains/opStack/errors/withdrawal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AAMnD,MAAM,OAAO,iBAAkB,SAAQ,SAAS;IAE9C;QACE,KAAK,CAAC,yBAAyB,CAAC,CAAA;QAFzB;;;;mBAAO,mBAAmB;WAAA;IAGnC,CAAC;CACF;AAMD,MAAM,OAAO,iCAAkC,SAAQ,SAAS;IAE9D,YAAY,EAAE,IAAI,EAAiB;QACjC,KAAK,CACH,+CAA+C,IAAI,4BAA4B,CAChF,CAAA;QAJM;;;;mBAAO,mCAAmC;WAAA;IAKnD,CAAC;CACF"}
|
@@ -7,18 +7,23 @@ export { estimateContractL1Gas, } from './actions/estimateContractL1Gas.js';
|
|
7
7
|
export { estimateContractTotalFee, } from './actions/estimateContractTotalFee.js';
|
8
8
|
export { estimateContractTotalGas, } from './actions/estimateContractTotalGas.js';
|
9
9
|
export { estimateL1Fee, } from './actions/estimateL1Fee.js';
|
10
|
+
export { getGame, } from './actions/getGame.js';
|
11
|
+
export { getGames, } from './actions/getGames.js';
|
10
12
|
export { getL1BaseFee, } from './actions/getL1BaseFee.js';
|
11
13
|
export { estimateL1Gas, } from './actions/estimateL1Gas.js';
|
12
14
|
export { estimateTotalFee, } from './actions/estimateTotalFee.js';
|
13
15
|
export { estimateTotalGas, } from './actions/estimateTotalGas.js';
|
14
16
|
export { finalizeWithdrawal, } from './actions/finalizeWithdrawal.js';
|
15
17
|
export { getL2Output, } from './actions/getL2Output.js';
|
18
|
+
export { getPortalVersion, } from './actions/getPortalVersion.js';
|
19
|
+
export { getTimeToNextGame, } from './actions/getTimeToNextGame.js';
|
16
20
|
export { getTimeToFinalize, } from './actions/getTimeToFinalize.js';
|
17
21
|
export { getTimeToNextL2Output, } from './actions/getTimeToNextL2Output.js';
|
18
22
|
export { getTimeToProve, } from './actions/getTimeToProve.js';
|
19
23
|
export { getWithdrawalStatus, } from './actions/getWithdrawalStatus.js';
|
20
24
|
export { initiateWithdrawal, } from './actions/initiateWithdrawal.js';
|
21
25
|
export { proveWithdrawal, } from './actions/proveWithdrawal.js';
|
26
|
+
export { waitForNextGame, } from './actions/waitForNextGame.js';
|
22
27
|
export { waitForNextL2Output, } from './actions/waitForNextL2Output.js';
|
23
28
|
export { waitToFinalize, } from './actions/waitToFinalize.js';
|
24
29
|
export { waitToProve, } from './actions/waitToProve.js';
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chains/opStack/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,GAIxB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,uBAAuB,GAIxB,MAAM,sCAAsC,CAAA;AAC7C,OAAO,EACL,oBAAoB,GAIrB,MAAM,mCAAmC,CAAA;AAC1C,OAAO,EACL,kBAAkB,GAInB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,qBAAqB,GAItB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,qBAAqB,GAItB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,wBAAwB,GAIzB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,wBAAwB,GAIzB,MAAM,uCAAuC,CAAA;AAC9C,OAAO,EACL,aAAa,GAId,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,YAAY,GAIb,MAAM,2BAA2B,CAAA;AAClC,OAAO,EACL,aAAa,GAId,MAAM,4BAA4B,CAAA;AACnC,OAAO,EACL,gBAAgB,GAIjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,gBAAgB,GAIjB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EACL,kBAAkB,GAInB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,WAAW,GAIZ,MAAM,0BAA0B,CAAA;AACjC,OAAO,EACL,iBAAiB,GAIlB,MAAM,gCAAgC,CAAA;AACvC,OAAO,EACL,qBAAqB,GAItB,MAAM,oCAAoC,CAAA;AAC3C,OAAO,EACL,cAAc,GAIf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,mBAAmB,GAIpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,kBAAkB,GAInB,MAAM,iCAAiC,CAAA;AACxC,OAAO,EACL,eAAe,GAIhB,MAAM,8BAA8B,CAAA;AACrC,OAAO,EACL,mBAAmB,GAIpB,MAAM,kCAAkC,CAAA;AACzC,OAAO,EACL,cAAc,GAIf,MAAM,6BAA6B,CAAA;AACpC,OAAO,EACL,WAAW,GAIZ,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAA;AAE9C,cAAc,aAAa,CAAA;AAE3B,OAAO,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAA;AAChF,OAAO,EAAE,eAAe,EAAwB,MAAM,0BAA0B,CAAA;AAEhF,OAAO,EACL,gBAAgB,GAGjB,MAAM,cAAc,CAAA;AAErB,OAAO,EACL,oBAAoB,EACpB,WAAW,GAGZ,MAAM,kBAAkB,CAAA;AAmBzB,OAAO,EACL,4BAA4B,GAI7B,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EACL,+BAA+B,GAIhC,MAAM,4CAA4C,CAAA;AAEnD,OAAO,EACL,uBAAuB,GAIxB,MAAM,oCAAoC,CAAA;AAE3C,OAAO,EACL,oBAAoB,GAIrB,MAAM,iCAAiC,CAAA;AAExC,OAAO,EACL,sBAAsB,GAIvB,MAAM,mCAAmC,CAAA;AAE1C,OAAO,EACL,aAAa,GAId,MAAM,0BAA0B,CAAA;AAEjC,OAAO,EACL,4BAA4B,GAI7B,MAAM,yCAAyC,CAAA;AAEhD,OAAO,EACL,cAAc,GAIf,MAAM,2BAA2B,CAAA"}
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../chains/opStack/index.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,52 @@
|
|
1
|
+
import { contractDeployerAddress } from '../constants/address.js';
|
2
|
+
import { encodeDeployData } from '../utils/abi/encodeDeployData.js';
|
3
|
+
import { sendEip712Transaction, } from './sendEip712Transaction.js';
|
4
|
+
/**
|
5
|
+
* Deploys a contract to the network, given bytecode and constructor arguments using EIP712 transaction.
|
6
|
+
*
|
7
|
+
* - Docs: https://viem.sh/docs/contract/deployContract
|
8
|
+
*
|
9
|
+
* @param client - Client to use
|
10
|
+
* @param parameters - {@link DeployContractParameters}
|
11
|
+
* @returns The [Transaction](https://viem.sh/docs/glossary/terms#transaction) hash. {@link DeployContractReturnType}
|
12
|
+
*
|
13
|
+
* @example
|
14
|
+
* import { createWalletClient, custom } from 'viem'
|
15
|
+
* import { privateKeyToAccount } from 'viem/accounts'
|
16
|
+
* import { zkSync } from 'viem/chains'
|
17
|
+
* import { deployContract } from 'viem/zksync'
|
18
|
+
*
|
19
|
+
* const client = createWalletClient({
|
20
|
+
* account: privateKeyToAccount('0x…'),
|
21
|
+
* chain: zksync,
|
22
|
+
* transport: custom(provider),
|
23
|
+
* })
|
24
|
+
* const hash = await deployContract(client, {
|
25
|
+
* abi: [],
|
26
|
+
* account: '0x…,
|
27
|
+
* deploymentType: 'create',
|
28
|
+
* bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
|
29
|
+
* factoryDeps: ['0x608060405260405161083e38038061083e833981016040819052610...'],
|
30
|
+
* gasPerPubdata: 50000n
|
31
|
+
* })
|
32
|
+
*/
|
33
|
+
export function deployContract(walletClient, parameters) {
|
34
|
+
const { abi, args, bytecode, deploymentType, salt, ...request } = parameters;
|
35
|
+
const data = encodeDeployData({
|
36
|
+
abi,
|
37
|
+
args,
|
38
|
+
bytecode,
|
39
|
+
deploymentType,
|
40
|
+
salt,
|
41
|
+
});
|
42
|
+
// Add the bytecode to the factoryDeps if it's not already there
|
43
|
+
request.factoryDeps = request.factoryDeps || [];
|
44
|
+
if (!request.factoryDeps.includes(bytecode))
|
45
|
+
request.factoryDeps.push(bytecode);
|
46
|
+
return sendEip712Transaction(walletClient, {
|
47
|
+
...request,
|
48
|
+
data,
|
49
|
+
to: contractDeployerAddress,
|
50
|
+
});
|
51
|
+
}
|
52
|
+
//# sourceMappingURL=deployContract.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"deployContract.js","sourceRoot":"","sources":["../../../../chains/zksync/actions/deployContract.ts"],"names":[],"mappings":"AASA,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAA;AAGjE,OAAO,EAAE,gBAAgB,EAAE,MAAM,kCAAkC,CAAA;AACnE,OAAO,EAIL,qBAAqB,GACtB,MAAM,4BAA4B,CAAA;AAkBnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,cAAc,CAM5B,YAA+C,EAC/C,UAAwE;IAExE,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,QAAQ,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,GAC7D,UAAsC,CAAA;IAExC,MAAM,IAAI,GAAG,gBAAgB,CAAC;QAC5B,GAAG;QACH,IAAI;QACJ,QAAQ;QACR,cAAc;QACd,IAAI;KACL,CAAC,CAAA;IAEF,gEAAgE;IAChE,OAAO,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,EAAE,CAAA;IAC/C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACzC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAEpC,OAAO,qBAAqB,CAAC,YAAY,EAAE;QACzC,GAAG,OAAO;QACV,IAAI;QACJ,EAAE,EAAE,uBAAuB;KAK5B,CAAC,CAAA;AACJ,CAAC"}
|