Skip to content

Commit ca1db3f

Browse files
committed
feat: wallet capabilities
Initial implementation of the capabilities manifest for app<->wallet communication. Allows a dapp to request permissions/access upfront to the wallet, which makes UX so much better. It also doubles as a way for wallets to convey they support extensions to their interface. This is not intended to make communication stateful, and it is always optional for an app to request. They can just use the interface as they please and allow the wallet to prompt the user for permissions as they see fit.
1 parent 8edaba5 commit ca1db3f

File tree

6 files changed

+706
-0
lines changed

6 files changed

+706
-0
lines changed

yarn-project/aztec.js/src/api/wallet.ts

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ export {
1313
type PrivateEventFilter,
1414
type ContractMetadata,
1515
type ContractClassMetadata,
16+
AppCapabilitiesSchema,
17+
WalletCapabilitiesSchema,
1618
FunctionCallSchema,
1719
ExecutionPayloadSchema,
1820
GasSettingsOptionSchema,
@@ -29,8 +31,44 @@ export {
2931
ContractClassMetadataSchema,
3032
ContractMetadataSchema,
3133
WalletSchema,
34+
ContractFunctionPatternSchema,
35+
AccountsCapabilitySchema,
36+
GrantedAccountsCapabilitySchema,
37+
ContractsCapabilitySchema,
38+
GrantedContractsCapabilitySchema,
39+
ContractClassesCapabilitySchema,
40+
GrantedContractClassesCapabilitySchema,
41+
SimulationCapabilitySchema,
42+
GrantedSimulationCapabilitySchema,
43+
TransactionCapabilitySchema,
44+
GrantedTransactionCapabilitySchema,
45+
DataCapabilitySchema,
46+
GrantedDataCapabilitySchema,
47+
CapabilitySchema,
48+
GrantedCapabilitySchema,
3249
} from '../wallet/wallet.js';
3350

51+
export {
52+
type AppCapabilities,
53+
type WalletCapabilities,
54+
CAPABILITY_VERSION,
55+
type Capability,
56+
type GrantedCapability,
57+
type ContractFunctionPattern,
58+
type AccountsCapability,
59+
type GrantedAccountsCapability,
60+
type ContractsCapability,
61+
type GrantedContractsCapability,
62+
type ContractClassesCapability,
63+
type GrantedContractClassesCapability,
64+
type SimulationCapability,
65+
type GrantedSimulationCapability,
66+
type TransactionCapability,
67+
type GrantedTransactionCapability,
68+
type DataCapability,
69+
type GrantedDataCapability,
70+
} from '../wallet/capabilities.js';
71+
3472
export { AccountManager } from '../wallet/account_manager.js';
3573

3674
export { type DeployAccountOptions, DeployAccountMethod } from '../wallet/deploy_account_method.js';

0 commit comments

Comments
 (0)