Skip to content

Commit 371be06

Browse files
authored
Fix: rm circular dependency (#4697)
* Fix: rm circular dependency * Rm GPT bot
1 parent cb19058 commit 371be06

File tree

7 files changed

+38
-56
lines changed

7 files changed

+38
-56
lines changed

.github/workflows/code-review-gpt.yml

Lines changed: 0 additions & 25 deletions
This file was deleted.

src/components/tx/SignOrExecuteForm/UnknownContractError.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import useSafeInfo from '@/hooks/useSafeInfo'
66
import { getExplorerLink } from '@/utils/gateway'
77
import ErrorMessage from '../ErrorMessage'
88
import { isValidMasterCopy } from '@/services/contracts/safeContracts'
9-
import { extractMigrationL2MasterCopyAddress } from '@/utils/safe-migrations'
9+
import { extractMigrationL2MasterCopyAddress } from '@/features/multichain/utils/extract-migration-data'
1010

1111
const UnknownContractError = ({ txData }: { txData: TransactionData | undefined }): ReactElement | null => {
1212
const { safe, safeAddress } = useSafeInfo()

src/components/tx/confirmation-views/MigrateToL2Information/index.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { Alert, AlertTitle, Box, SvgIcon, Typography } from '@mui/material'
33
import type { TransactionData } from '@safe-global/safe-gateway-typescript-sdk'
44
import InfoOutlinedIcon from '@/public/images/notifications/info.svg'
55
import NamedAddressInfo from '@/components/common/NamedAddressInfo'
6-
import { extractMigrationL2MasterCopyAddress } from '@/utils/safe-migrations'
6+
import { extractMigrationL2MasterCopyAddress } from '@/features/multichain/utils/extract-migration-data'
77

88
export const MigrateToL2Information = ({
99
variant,
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import type { TransactionData } from '@safe-global/safe-gateway-typescript-sdk'
2+
import { Safe_to_l2_migration__factory } from '@/types/contracts'
3+
import { sameAddress } from '@/utils/addresses'
4+
import { isMultiSendCalldata } from '@/utils/transaction-calldata'
5+
import { decodeMultiSendData } from '@safe-global/protocol-kit/dist/src/utils'
6+
import { getSafeToL2MigrationDeployment } from '@safe-global/safe-deployments'
7+
8+
export const extractMigrationL2MasterCopyAddress = (txData: TransactionData): string | undefined => {
9+
if (!isMultiSendCalldata(txData.hexData || '')) {
10+
return undefined
11+
}
12+
13+
const innerTxs = decodeMultiSendData(txData.hexData || '')
14+
const firstInnerTx = innerTxs[0]
15+
if (!firstInnerTx) {
16+
return undefined
17+
}
18+
19+
const safeToL2MigrationDeployment = getSafeToL2MigrationDeployment()
20+
const safeToL2MigrationAddress = safeToL2MigrationDeployment?.defaultAddress
21+
const safeToL2MigrationInterface = Safe_to_l2_migration__factory.createInterface()
22+
23+
if (
24+
firstInnerTx.data.startsWith(safeToL2MigrationInterface.getFunction('migrateToL2').selector) &&
25+
sameAddress(firstInnerTx.to, safeToL2MigrationAddress)
26+
) {
27+
const callParams = safeToL2MigrationInterface.decodeFunctionData('migrateToL2', firstInnerTx.data)
28+
return callParams[0]
29+
}
30+
31+
return undefined
32+
}

src/utils/__tests__/safe-migrations.test.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ import {
44
type TransactionData,
55
} from '@safe-global/safe-gateway-typescript-sdk'
66
import { OperationType } from '@safe-global/safe-core-sdk-types'
7-
import { extractMigrationL2MasterCopyAddress, prependSafeToL2Migration } from '../safe-migrations'
7+
import { prependSafeToL2Migration } from '../safe-migrations'
8+
import { extractMigrationL2MasterCopyAddress } from '@/features/multichain/utils/extract-migration-data'
89
import { extendedSafeInfoBuilder } from '@/tests/builders/safe'
910
import { chainBuilder } from '@/tests/builders/chains'
1011
import { safeSignatureBuilder, safeTxBuilder, safeTxDataBuilder } from '@/tests/builders/safeTx'

src/utils/safe-migrations.ts

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { getSafeContractDeployment } from '@/services/contracts/deployments'
44
import { sameAddress } from './addresses'
55
import { getSafeToL2MigrationDeployment, getSafeMigrationDeployment } from '@safe-global/safe-deployments'
66
import { type MetaTransactionData, OperationType, type SafeTransaction } from '@safe-global/safe-core-sdk-types'
7-
import type { ChainInfo, TransactionData } from '@safe-global/safe-gateway-typescript-sdk'
7+
import type { ChainInfo } from '@safe-global/safe-gateway-typescript-sdk'
88
import { isValidMasterCopy } from '@/services/contracts/safeContracts'
99
import { isMultiSendCalldata } from './transaction-calldata'
1010
import { decodeMultiSendData } from '@safe-global/protocol-kit/dist/src/utils'
@@ -95,32 +95,6 @@ export const prependSafeToL2Migration = (
9595
return __unsafe_createMultiSendTx(newTxs)
9696
}
9797

98-
export const extractMigrationL2MasterCopyAddress = (txData: TransactionData): string | undefined => {
99-
if (!isMultiSendCalldata(txData.hexData || '')) {
100-
return undefined
101-
}
102-
103-
const innerTxs = decodeMultiSendData(txData.hexData || '')
104-
const firstInnerTx = innerTxs[0]
105-
if (!firstInnerTx) {
106-
return undefined
107-
}
108-
109-
const safeToL2MigrationDeployment = getSafeToL2MigrationDeployment()
110-
const safeToL2MigrationAddress = safeToL2MigrationDeployment?.defaultAddress
111-
const safeToL2MigrationInterface = Safe_to_l2_migration__factory.createInterface()
112-
113-
if (
114-
firstInnerTx.data.startsWith(safeToL2MigrationInterface.getFunction('migrateToL2').selector) &&
115-
sameAddress(firstInnerTx.to, safeToL2MigrationAddress)
116-
) {
117-
const callParams = safeToL2MigrationInterface.decodeFunctionData('migrateToL2', firstInnerTx.data)
118-
return callParams[0]
119-
}
120-
121-
return undefined
122-
}
123-
12498
export const createUpdateMigration = (chain: ChainInfo): MetaTransactionData => {
12599
const interfce = Safe_migration__factory.createInterface()
126100

src/utils/transaction-guards.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@ import { isMultiSendCalldata } from './transaction-calldata'
6969
import { decodeMultiSendData } from '@safe-global/protocol-kit/dist/src/utils'
7070
import { OperationType } from '@safe-global/safe-core-sdk-types'
7171
import { LATEST_SAFE_VERSION } from '@/config/constants'
72-
import { extractMigrationL2MasterCopyAddress } from './safe-migrations'
72+
import { extractMigrationL2MasterCopyAddress } from '@/features/multichain/utils/extract-migration-data'
7373

7474
export const isTxQueued = (value: TransactionStatus): boolean => {
7575
return [TransactionStatus.AWAITING_CONFIRMATIONS, TransactionStatus.AWAITING_EXECUTION].includes(value)

0 commit comments

Comments
 (0)