Skip to content

Commit f6750be

Browse files
authored
Refactor: message origin instead of safeAppId (#4680)
* Refactor: message origin instead of safeAppId * Beta 1 * Yarn lock
1 parent 538dd43 commit f6750be

File tree

11 files changed

+40
-47
lines changed

11 files changed

+40
-47
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@
6161
"@safe-global/protocol-kit": "^4.1.3",
6262
"@safe-global/safe-apps-sdk": "^9.1.0",
6363
"@safe-global/safe-client-gateway-sdk": "v1.60.1",
64-
"@safe-global/safe-gateway-typescript-sdk": "3.22.5-beta.0",
64+
"@safe-global/safe-gateway-typescript-sdk": "3.22.6-beta.0",
6565
"@safe-global/safe-modules-deployments": "^2.2.1",
6666
"@sentry/react": "^7.91.0",
6767
"@spindl-xyz/attribution-lite": "^1.4.0",

src/components/tx-flow/flows/SignMessage/SignMessage.test.tsx

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -221,7 +221,7 @@ describe('SignMessage', () => {
221221
name="Test App"
222222
message="Hello world!"
223223
requestId="123"
224-
safeAppId={25}
224+
origin="http://localhost:3000"
225225
/>,
226226
)
227227

@@ -253,7 +253,7 @@ describe('SignMessage', () => {
253253
expect.objectContaining({
254254
safe: extendedSafeInfo,
255255
message: 'Hello world!',
256-
safeAppId: 25,
256+
origin: 'http://localhost:3000',
257257
//onboard: expect.anything(),
258258
}),
259259
)
@@ -362,7 +362,7 @@ describe('SignMessage', () => {
362362
name="Test App"
363363
message="Hello world!"
364364
requestId="123"
365-
safeAppId={25}
365+
origin="http://localhost:3000"
366366
/>,
367367
)
368368

@@ -384,7 +384,7 @@ describe('SignMessage', () => {
384384
name="Test App"
385385
message="Hello world!"
386386
requestId="123"
387-
safeAppId={25}
387+
origin="http://localhost:3000"
388388
/>,
389389
)
390390

@@ -409,7 +409,7 @@ describe('SignMessage', () => {
409409
name="Test App"
410410
message="Hello world!"
411411
requestId="123"
412-
safeAppId={25}
412+
origin="http://localhost:3000"
413413
/>,
414414
)
415415

@@ -491,7 +491,7 @@ describe('SignMessage', () => {
491491
name="Test App"
492492
message="Hello world!"
493493
requestId="123"
494-
safeAppId={25}
494+
origin="http://localhost:3000"
495495
/>,
496496
)
497497

src/components/tx-flow/flows/SignMessage/SignMessage.tsx

Lines changed: 4 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -242,19 +242,12 @@ const SuccessCard = ({ safeMessage, onContinue }: { safeMessage: SafeMessage; on
242242

243243
type BaseProps = Pick<SafeMessage, 'logoUri' | 'name' | 'message'>
244244

245-
// Custom Safe Apps do not have a `safeAppId`
246-
export type ProposeProps = BaseProps & {
247-
safeAppId?: number
248-
requestId: RequestId
249-
}
250-
251-
// A proposed message does not return the `safeAppId` but the `logoUri` and `name` of the Safe App that proposed it
252-
export type ConfirmProps = BaseProps & {
253-
safeAppId?: never
245+
export type SignMessageProps = BaseProps & {
246+
origin?: string
254247
requestId?: RequestId
255248
}
256249

257-
const SignMessage = ({ message, safeAppId, requestId }: ProposeProps | ConfirmProps): ReactElement => {
250+
const SignMessage = ({ message, origin, requestId }: SignMessageProps): ReactElement => {
258251
// Hooks & variables
259252
const { setTxFlow } = useContext(TxModalContext)
260253
const { setSafeMessage: setContextSafeMessage } = useContext(SafeTxContext)
@@ -283,7 +276,7 @@ const SignMessage = ({ message, safeAppId, requestId }: ProposeProps | ConfirmPr
283276
decodedMessage,
284277
safeMessageHash,
285278
requestId,
286-
safeAppId,
279+
origin,
287280
() => setTxFlow(undefined),
288281
)
289282

src/components/tx-flow/flows/SignMessage/index.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import TxLayout from '@/components/tx-flow/common/TxLayout'
2-
import SignMessage, { type ConfirmProps, type ProposeProps } from '@/components/tx-flow/flows/SignMessage/SignMessage'
2+
import SignMessage, { type SignMessageProps } from '@/components/tx-flow/flows/SignMessage/SignMessage'
33
import { getSwapTitle } from '@/features/swap'
44
import { selectSwapParams } from '@/features/swap/store/swapParamsSlice'
55
import { useAppSelector } from '@/store'
@@ -47,7 +47,7 @@ export const AppTitle = ({
4747
)
4848
}
4949

50-
const SignMessageFlow = ({ ...props }: ProposeProps | ConfirmProps) => {
50+
const SignMessageFlow = ({ ...props }: SignMessageProps) => {
5151
return (
5252
<TxLayout
5353
title="Confirm message"

src/hooks/messages/useSyncSafeMessageSigner.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ const useSyncSafeMessageSigner = (
3333
decodedMessage: string | EIP712TypedData,
3434
safeMessageHash: string,
3535
requestId: string | undefined,
36-
safeAppId: number | undefined,
36+
origin: string | undefined,
3737
onClose: () => void,
3838
) => {
3939
const [submitError, setSubmitError] = useState<Error | undefined>()
@@ -60,7 +60,7 @@ const useSyncSafeMessageSigner = (
6060
try {
6161
// When collecting the first signature
6262
if (!message) {
63-
await dispatchSafeMsgProposal({ provider: wallet.provider, safe, message: decodedMessage, safeAppId })
63+
await dispatchSafeMsgProposal({ provider: wallet.provider, safe, message: decodedMessage, origin })
6464

6565
// Fetch updated message
6666
const updatedMsg = await fetchSafeMessage(safeMessageHash, safe.chainId)
@@ -86,7 +86,7 @@ const useSyncSafeMessageSigner = (
8686
} catch (e) {
8787
setSubmitError(asError(e))
8888
}
89-
}, [wallet, safe, message, decodedMessage, safeAppId, safeMessageHash, onClose, requestId])
89+
}, [wallet, safe, message, decodedMessage, origin, safeMessageHash, onClose, requestId])
9090

9191
return { submitError, onSign }
9292
}

src/hooks/safe-apps/useCustomAppCommunicator.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ export const useCustomAppCommunicator = (
9292
logoUri={appData?.iconUrl || ''}
9393
name={appData?.name || ''}
9494
message={message}
95-
safeAppId={appData?.id}
95+
origin={appData?.url}
9696
requestId={requestId}
9797
/>,
9898
onTxFlowClose,

src/services/safe-messages/__tests__/safeMsgSender.test.ts

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -43,14 +43,14 @@ describe('safeMsgSender', () => {
4343
},
4444
} as unknown as gateway.SafeInfo
4545
const message = 'Hello world'
46-
const safeAppId = 1
46+
const origin = 'http://example.com'
4747

48-
await dispatchSafeMsgProposal({ provider: MockEip1193Provider, safe, message, safeAppId })
48+
await dispatchSafeMsgProposal({ provider: MockEip1193Provider, safe, message, origin })
4949

5050
expect(proposeSafeMessageSpy).toHaveBeenCalledWith('5', zeroPadValue('0x0789', 20), {
5151
message,
5252
signature: mockValidSignature,
53-
safeAppId,
53+
origin,
5454
})
5555

5656
expect(safeMsgDispatchSpy).toHaveBeenCalledWith(events.SafeMsgEvent.PROPOSE, {
@@ -88,9 +88,9 @@ describe('safeMsgSender', () => {
8888
test: 'Hello World!',
8989
},
9090
}
91-
const safeAppId = 1
91+
const origin = 'http://example.com'
9292

93-
await dispatchSafeMsgProposal({ provider: MockEip1193Provider, safe, message, safeAppId })
93+
await dispatchSafeMsgProposal({ provider: MockEip1193Provider, safe, message, origin })
9494

9595
// Normalize message manually
9696
message.types['EIP712Domain'] = [
@@ -103,7 +103,7 @@ describe('safeMsgSender', () => {
103103
expect(proposeSafeMessageSpy).toHaveBeenCalledWith('5', zeroPadValue('0x0789', 20), {
104104
message,
105105
signature: mockValidSignature,
106-
safeAppId,
106+
origin,
107107
})
108108
})
109109

@@ -125,15 +125,15 @@ describe('safeMsgSender', () => {
125125
},
126126
} as unknown as gateway.SafeInfo
127127
const message = 'Hello world'
128-
const safeAppId = 1
128+
const origin = 'http://example.com'
129129

130-
await dispatchSafeMsgProposal({ provider: MockEip1193Provider, safe, message, safeAppId })
130+
await dispatchSafeMsgProposal({ provider: MockEip1193Provider, safe, message, origin })
131131

132132
expect(proposeSafeMessageSpy).toHaveBeenCalledWith('5', zeroPadValue('0x0789', 20), {
133133
message,
134134
// Even though the mock returns the signature with invalid V, the valid signature should get dispatched as we adjust invalid Vs
135135
signature: mockValidSignature,
136-
safeAppId,
136+
origin,
137137
})
138138

139139
expect(safeMsgDispatchSpy).toHaveBeenCalledWith(events.SafeMsgEvent.PROPOSE, {
@@ -155,17 +155,17 @@ describe('safeMsgSender', () => {
155155
},
156156
} as unknown as gateway.SafeInfo
157157
const message = 'Hello world'
158-
const safeAppId = 1
158+
const origin = 'http://example.com'
159159

160160
try {
161-
await dispatchSafeMsgProposal({ provider: MockEip1193Provider, safe, message, safeAppId })
161+
await dispatchSafeMsgProposal({ provider: MockEip1193Provider, safe, message, origin })
162162
} catch (e) {
163163
expect((e as Error).message).toBe('Example error')
164164

165165
expect(proposeSafeMessageSpy).toHaveBeenCalledWith('5', zeroPadValue('0x0789', 20), {
166166
message,
167167
signature: mockValidSignature,
168-
safeAppId,
168+
origin,
169169
})
170170

171171
expect(safeMsgDispatchSpy).toHaveBeenCalledWith(events.SafeMsgEvent.PROPOSE_FAILED, {

src/services/safe-messages/safeMsgSender.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,12 @@ export const dispatchSafeMsgProposal = async ({
1212
provider,
1313
safe,
1414
message,
15-
safeAppId,
15+
origin = '',
1616
}: {
1717
provider: Eip1193Provider
1818
safe: SafeInfo
1919
message: SafeMessage['message']
20-
safeAppId?: number
20+
origin: string | undefined
2121
}): Promise<void> => {
2222
const messageHash = generateSafeMessageHash(safe, message)
2323

@@ -33,7 +33,7 @@ export const dispatchSafeMsgProposal = async ({
3333
await proposeSafeMessage(safe.chainId, safe.address.value, {
3434
message: normalizedMessage,
3535
signature,
36-
safeAppId,
36+
origin,
3737
})
3838
} catch (error) {
3939
safeMsgDispatch(SafeMsgEvent.PROPOSE_FAILED, {

src/services/safe-wallet-provider/useSafeWalletProvider.test.tsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ describe('useSafeWalletProvider', () => {
113113
name: appInfo.name,
114114
message: 'message',
115115
requestId: expect.any(String),
116-
safeAppId: 1,
116+
origin: appInfo.url,
117117
})
118118

119119
expect(resp).toBeInstanceOf(Promise)
@@ -233,7 +233,7 @@ describe('useSafeWalletProvider', () => {
233233
name: appInfo.name,
234234
message: typedMessage,
235235
requestId: expect.any(String),
236-
safeAppId: 1,
236+
origin: appInfo.url,
237237
})
238238

239239
expect(resp).toBeInstanceOf(Promise)

src/services/safe-wallet-provider/useSafeWalletProvider.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,9 @@ export const useTxFlowApi = (chainId: string, safeAddress: string): WalletSDK |
9090
<SignMessageFlow
9191
logoUri={appInfo.iconUrl}
9292
name={appInfo.name}
93+
origin={appInfo.url}
9394
message={message}
9495
requestId={id}
95-
safeAppId={appInfo.id}
9696
/>,
9797
onClose,
9898
)

yarn.lock

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5820,10 +5820,10 @@ __metadata:
58205820
languageName: node
58215821
linkType: hard
58225822

5823-
"@safe-global/safe-gateway-typescript-sdk@npm:3.22.5-beta.0":
5824-
version: 3.22.5-beta.0
5825-
resolution: "@safe-global/safe-gateway-typescript-sdk@npm:3.22.5-beta.0"
5826-
checksum: 10/503bfeb717a23bcd6fffd087c3365b24497f8712b772a006134dd032bc6f36e9681be3cfb8e52ee915fe1d5c1945e746bbcdd8f456a8ad25194695d4bdfc13d4
5823+
"@safe-global/safe-gateway-typescript-sdk@npm:3.22.6-beta.0":
5824+
version: 3.22.6-beta.0
5825+
resolution: "@safe-global/safe-gateway-typescript-sdk@npm:3.22.6-beta.0"
5826+
checksum: 10/9a4d0a1ac5d4e82a7e53904f7a8b7d955624e910f3eb041e1c99d09673c71dd9f8252bd33d1708470b1ecf1c80feeeb3d6f33e72e68ee2f4ba248e7ebbd4e80d
58275827
languageName: node
58285828
linkType: hard
58295829

@@ -21983,7 +21983,7 @@ __metadata:
2198321983
"@safe-global/safe-apps-sdk": "npm:^9.1.0"
2198421984
"@safe-global/safe-client-gateway-sdk": "npm:v1.60.1"
2198521985
"@safe-global/safe-core-sdk-types": "npm:^5.0.1"
21986-
"@safe-global/safe-gateway-typescript-sdk": "npm:3.22.5-beta.0"
21986+
"@safe-global/safe-gateway-typescript-sdk": "npm:3.22.6-beta.0"
2198721987
"@safe-global/safe-modules-deployments": "npm:^2.2.1"
2198821988
"@sentry/react": "npm:^7.91.0"
2198921989
"@sentry/types": "npm:^7.74.0"

0 commit comments

Comments
 (0)