Skip to content

Commit f2bae6c

Browse files
authored
Merge branch 'main' into devin/APKT-3761-1757448363
2 parents 1cf3093 + 65e6ba1 commit f2bae6c

File tree

43 files changed

+1720
-560
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

43 files changed

+1720
-560
lines changed

.changeset/clean-states-lick.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@reown/appkit-controllers': patch
3+
'@reown/appkit-scaffold-ui': patch
4+
'@reown/appkit-pay': patch
5+
---
6+
7+
Updates error events to send message property

.changeset/early-spies-wish.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@reown/appkit-universal-connector': patch
3+
'@reown/appkit': patch
4+
---
5+
6+
Adds `modalConfig` and `providerConfig` to UniversalConnector

.changeset/fancy-llamas-brake.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@reown/appkit-utils': patch
3+
'@reown/appkit': patch
4+
---
5+
6+
Fixes SemVer util's extractVersion logic to handle special char fixes on package version

.changeset/tall-sites-exist.md

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
---
2+
'@reown/appkit-adapter-bitcoin': patch
3+
'@reown/appkit-adapter-ethers5': patch
4+
'@reown/appkit-adapter-ethers': patch
5+
'@reown/appkit-adapter-solana': patch
6+
'@reown/appkit-adapter-wagmi': patch
7+
'@reown/appkit-controllers': patch
8+
'@reown/appkit-scaffold-ui': patch
9+
'@reown/appkit': patch
10+
'@reown/appkit-common': patch
11+
'pay-test-exchange': patch
12+
'@reown/appkit-utils': patch
13+
'@reown/appkit-cdn': patch
14+
'@reown/appkit-cli': patch
15+
'@reown/appkit-codemod': patch
16+
'@reown/appkit-core': patch
17+
'@reown/appkit-experimental': patch
18+
'@reown/appkit-pay': patch
19+
'@reown/appkit-polyfills': patch
20+
'@reown/appkit-siwe': patch
21+
'@reown/appkit-siwx': patch
22+
'@reown/appkit-testing': patch
23+
'@reown/appkit-ui': patch
24+
'@reown/appkit-universal-connector': patch
25+
'@reown/appkit-wallet': patch
26+
'@reown/appkit-wallet-button': patch
27+
---
28+
29+
Fixed an issue where upon user connection rejection a `CONNECT_ERROR` event was logged. It now logs a new event error called `USER_REJECTED`

.github/workflows/cta.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
name: 'CTA Assistant'
2+
on:
3+
issue_comment:
4+
types: [created]
5+
pull_request_target:
6+
types: [opened, closed, synchronize]
7+
8+
# Required permissions
9+
permissions:
10+
actions: write
11+
contents: write # can be 'read' if signatures are in remote repository
12+
pull-requests: write
13+
statuses: write
14+
15+
jobs:
16+
CTA:
17+
runs-on: ubuntu-latest
18+
steps:
19+
- uses: walletconnect/actions/github/cta-assistant@9fd44c01c5f8c169349f8822efc93dd08821a628
20+
env:
21+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

apps/demo/package.json

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,14 +35,14 @@
3535
"@radix-ui/react-switch": "1.2.4",
3636
"@radix-ui/react-tabs": "1.1.11",
3737
"@radix-ui/react-tooltip": "1.2.6",
38-
"@reown/appkit": "1.8.1",
39-
"@reown/appkit-adapter-bitcoin": "1.8.1",
40-
"@reown/appkit-adapter-ethers": "1.8.1",
41-
"@reown/appkit-adapter-solana": "1.8.1",
42-
"@reown/appkit-common": "1.8.1",
43-
"@reown/appkit-controllers": "1.8.1",
44-
"@reown/appkit-scaffold-ui": "1.8.1",
45-
"@reown/appkit-ui": "1.8.1",
38+
"@reown/appkit": "1.8.4",
39+
"@reown/appkit-adapter-bitcoin": "1.8.4",
40+
"@reown/appkit-adapter-ethers": "1.8.4",
41+
"@reown/appkit-adapter-solana": "1.8.4",
42+
"@reown/appkit-common": "1.8.4",
43+
"@reown/appkit-controllers": "1.8.4",
44+
"@reown/appkit-scaffold-ui": "1.8.4",
45+
"@reown/appkit-ui": "1.8.4",
4646
"@sentry/core": "8.55.0",
4747
"@sentry/nextjs": "8.55.0",
4848
"@solana/web3.js": "1.98.2",
@@ -69,7 +69,7 @@
6969
"@types/react": "19.1.3",
7070
"@types/react-dom": "19.1.3",
7171
"@mailsac/api": "1.0.8",
72-
"@reown/appkit-testing": "1.8.1",
72+
"@reown/appkit-testing": "1.8.4",
7373
"@playwright/test": "1.48.2",
7474
"eslint": "8.56.0",
7575
"eslint-config-next": "14.1.0",

packages/adapters/bitcoin/src/adapter.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import {
77
type Provider,
88
WcHelpersUtil
99
} from '@reown/appkit'
10-
import { ConstantsUtil } from '@reown/appkit-common'
10+
import { ConstantsUtil, UserRejectedRequestError } from '@reown/appkit-common'
1111
import { ConstantsUtil as CommonConstantsUtil } from '@reown/appkit-common'
1212
import { ChainController, StorageUtil } from '@reown/appkit-controllers'
1313
import { HelpersUtil } from '@reown/appkit-utils'
@@ -80,7 +80,9 @@ export class BitcoinAdapter extends AdapterBlueprint<BitcoinConnector> {
8080
}
8181
}
8282

83-
const address = await connector.connect()
83+
const address = await connector.connect().catch(err => {
84+
throw new UserRejectedRequestError(err)
85+
})
8486
const accounts = await this.getAccounts({ id: connector.id })
8587

8688
this.emit('accountChanged', {

packages/adapters/ethers/src/client.ts

Lines changed: 117 additions & 100 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,12 @@ import UniversalProvider from '@walletconnect/universal-provider'
22
import { JsonRpcProvider, formatEther, getAddress } from 'ethers'
33

44
import { type AppKitOptions, WcConstantsUtil, WcHelpersUtil } from '@reown/appkit'
5-
import { ConstantsUtil as CommonConstantsUtil, ParseUtil } from '@reown/appkit-common'
5+
import {
6+
ConstantsUtil as CommonConstantsUtil,
7+
ErrorUtil,
8+
ParseUtil,
9+
UserRejectedRequestError
10+
} from '@reown/appkit-common'
611
import {
712
AccountController,
813
type CombinedProvider,
@@ -401,134 +406,146 @@ export class EthersAdapter extends AdapterBlueprint {
401406
chainId,
402407
socialUri
403408
}: AdapterBlueprint.ConnectParams): Promise<AdapterBlueprint.ConnectResult> {
404-
const connector = this.connectors.find(c => HelpersUtil.isLowerCaseMatch(c.id, id))
409+
try {
410+
const connector = this.connectors.find(c => HelpersUtil.isLowerCaseMatch(c.id, id))
405411

406-
if (!connector) {
407-
throw new Error('Connector not found')
408-
}
412+
if (!connector) {
413+
throw new Error('Connector not found')
414+
}
409415

410-
const connection = this.connectionManager?.getConnection({
411-
address,
412-
connectorId: id,
413-
connections: this.connections,
414-
connectors: this.connectors
415-
})
416+
const connection = this.connectionManager?.getConnection({
417+
address,
418+
connectorId: id,
419+
connections: this.connections,
420+
connectors: this.connectors
421+
})
416422

417-
if (connection) {
418-
const caipNetwork = connection.caipNetwork
423+
if (connection) {
424+
const caipNetwork = connection.caipNetwork
419425

420-
if (!caipNetwork) {
421-
throw new Error('EthersAdapter:connect - could not find the caipNetwork to connect')
422-
}
426+
if (!caipNetwork) {
427+
throw new Error('EthersAdapter:connect - could not find the caipNetwork to connect')
428+
}
423429

424-
if (connection.account) {
425-
this.emit('accountChanged', {
426-
address: this.toChecksummedAddress(connection.account.address),
427-
chainId: caipNetwork.id,
428-
connector
429-
})
430+
if (connection.account) {
431+
this.emit('accountChanged', {
432+
address: this.toChecksummedAddress(connection.account.address),
433+
chainId: caipNetwork.id,
434+
connector
435+
})
430436

431-
return {
432-
address: this.toChecksummedAddress(connection.account.address),
433-
chainId: caipNetwork.id,
434-
provider: connector.provider,
435-
type: connector.type,
436-
id
437+
return {
438+
address: this.toChecksummedAddress(connection.account.address),
439+
chainId: caipNetwork.id,
440+
provider: connector.provider,
441+
type: connector.type,
442+
id
443+
}
437444
}
438445
}
439-
}
440446

441-
const selectedProvider = connector?.provider as Provider
447+
const selectedProvider = connector?.provider as Provider
442448

443-
if (!selectedProvider) {
444-
throw new Error('Provider not found')
445-
}
449+
if (!selectedProvider) {
450+
throw new Error('Provider not found')
451+
}
446452

447-
let accounts: string[] = []
453+
let accounts: string[] = []
448454

449-
let requestChainId: string | undefined = undefined
455+
let requestChainId: string | undefined = undefined
450456

451-
if (type === ConstantsUtil.CONNECTOR_TYPE_AUTH) {
452-
const { address: _address, accounts: authAccounts } =
453-
await SIWXUtil.authConnectorAuthenticate({
454-
authConnector: selectedProvider as unknown as W3mFrameProvider,
455-
chainNamespace: CommonConstantsUtil.CHAIN.EVM,
456-
chainId,
457-
socialUri,
458-
preferredAccountType: getPreferredAccountType('eip155')
459-
})
457+
if (type === ConstantsUtil.CONNECTOR_TYPE_AUTH) {
458+
const { address: _address, accounts: authAccounts } =
459+
await SIWXUtil.authConnectorAuthenticate({
460+
authConnector: selectedProvider as unknown as W3mFrameProvider,
461+
chainNamespace: CommonConstantsUtil.CHAIN.EVM,
462+
chainId,
463+
socialUri,
464+
preferredAccountType: getPreferredAccountType('eip155')
465+
})
460466

461-
const caipNetwork = this.getCaipNetworks().find(n => n.id.toString() === chainId?.toString())
467+
const caipNetwork = this.getCaipNetworks().find(
468+
n => n.id.toString() === chainId?.toString()
469+
)
462470

463-
accounts = [_address]
471+
accounts = [_address]
472+
473+
this.addConnection({
474+
connectorId: id,
475+
accounts: authAccounts
476+
? authAccounts.map(account => ({ address: account.address }))
477+
: accounts.map(account => ({ address: account })),
478+
caipNetwork,
479+
auth: {
480+
name: StorageUtil.getConnectedSocialProvider(),
481+
username: StorageUtil.getConnectedSocialUsername()
482+
}
483+
})
464484

465-
this.addConnection({
466-
connectorId: id,
467-
accounts: authAccounts
468-
? authAccounts.map(account => ({ address: account.address }))
469-
: accounts.map(account => ({ address: account })),
470-
caipNetwork,
471-
auth: {
472-
name: StorageUtil.getConnectedSocialProvider(),
473-
username: StorageUtil.getConnectedSocialUsername()
474-
}
475-
})
485+
this.emit('accountChanged', {
486+
address: this.toChecksummedAddress(accounts[0] as Address),
487+
chainId: Number(chainId),
488+
connector
489+
})
490+
} else {
491+
accounts = await selectedProvider.request({
492+
method: 'eth_requestAccounts'
493+
})
476494

477-
this.emit('accountChanged', {
478-
address: this.toChecksummedAddress(accounts[0] as Address),
479-
chainId: Number(chainId),
480-
connector
481-
})
482-
} else {
483-
accounts = await selectedProvider.request({
484-
method: 'eth_requestAccounts'
485-
})
495+
requestChainId = await selectedProvider.request({
496+
method: 'eth_chainId'
497+
})
486498

487-
requestChainId = await selectedProvider.request({
488-
method: 'eth_chainId'
489-
})
499+
const caipNetwork = this.getCaipNetworks().find(
500+
n => n.id.toString() === chainId?.toString()
501+
)
490502

491-
const caipNetwork = this.getCaipNetworks().find(n => n.id.toString() === chainId?.toString())
503+
if (requestChainId !== chainId) {
504+
if (!caipNetwork) {
505+
throw new Error('EthersAdapter:connect - could not find the caipNetwork to switch')
506+
}
492507

493-
if (requestChainId !== chainId) {
494-
if (!caipNetwork) {
495-
throw new Error('EthersAdapter:connect - could not find the caipNetwork to switch')
508+
try {
509+
await this.switchNetwork({
510+
caipNetwork,
511+
provider: selectedProvider,
512+
providerType: type as ConnectorType
513+
})
514+
} catch (error) {
515+
throw new Error('EthersAdapter:connect - Switch network failed')
516+
}
496517
}
497518

498-
try {
499-
await this.switchNetwork({
500-
caipNetwork,
501-
provider: selectedProvider,
502-
providerType: type as ConnectorType
503-
})
504-
} catch (error) {
505-
throw new Error('EthersAdapter:connect - Switch network failed')
519+
this.emit('accountChanged', {
520+
address: this.toChecksummedAddress(accounts[0] as Address),
521+
chainId: Number(chainId),
522+
connector
523+
})
524+
525+
this.addConnection({
526+
connectorId: id,
527+
accounts: accounts.map(account => ({ address: account })),
528+
caipNetwork
529+
})
530+
531+
if (connector.id !== CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT) {
532+
this.listenProviderEvents(id, selectedProvider)
506533
}
507534
}
508535

509-
this.emit('accountChanged', {
536+
return {
510537
address: this.toChecksummedAddress(accounts[0] as Address),
511538
chainId: Number(chainId),
512-
connector
513-
})
514-
515-
this.addConnection({
516-
connectorId: id,
517-
accounts: accounts.map(account => ({ address: account })),
518-
caipNetwork
519-
})
520-
521-
if (connector.id !== CommonConstantsUtil.CONNECTOR_ID.WALLET_CONNECT) {
522-
this.listenProviderEvents(id, selectedProvider)
539+
provider: selectedProvider,
540+
type: type as ConnectorType,
541+
id
542+
}
543+
} catch (err) {
544+
if (ErrorUtil.isUserRejectedRequestError(err)) {
545+
throw new UserRejectedRequestError(err)
523546
}
524-
}
525547

526-
return {
527-
address: this.toChecksummedAddress(accounts[0] as Address),
528-
chainId: Number(chainId),
529-
provider: selectedProvider,
530-
type: type as ConnectorType,
531-
id
548+
throw err
532549
}
533550
}
534551

0 commit comments

Comments
 (0)