@aztec/wallet-sdk 0.0.1-commit.fce3e4f → 3.0.0-devnet.2-patch.1

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.
Files changed (40) hide show
  1. package/README.md +240 -266
  2. package/dest/base-wallet/base_wallet.d.ts +4 -4
  3. package/dest/base-wallet/base_wallet.d.ts.map +1 -1
  4. package/dest/base-wallet/base_wallet.js +15 -6
  5. package/dest/crypto.d.ts +183 -0
  6. package/dest/crypto.d.ts.map +1 -0
  7. package/dest/crypto.js +300 -0
  8. package/dest/manager/index.d.ts +4 -3
  9. package/dest/manager/index.d.ts.map +1 -1
  10. package/dest/manager/index.js +2 -0
  11. package/dest/manager/types.d.ts +22 -1
  12. package/dest/manager/types.d.ts.map +1 -1
  13. package/dest/manager/wallet_manager.d.ts +1 -1
  14. package/dest/manager/wallet_manager.d.ts.map +1 -1
  15. package/dest/manager/wallet_manager.js +34 -15
  16. package/dest/providers/extension/extension_provider.d.ts +53 -7
  17. package/dest/providers/extension/extension_provider.d.ts.map +1 -1
  18. package/dest/providers/extension/extension_provider.js +81 -13
  19. package/dest/providers/extension/extension_wallet.d.ts +140 -8
  20. package/dest/providers/extension/extension_wallet.d.ts.map +1 -1
  21. package/dest/providers/extension/extension_wallet.js +268 -46
  22. package/dest/providers/extension/index.d.ts +6 -4
  23. package/dest/providers/extension/index.d.ts.map +1 -1
  24. package/dest/providers/extension/index.js +2 -0
  25. package/dest/types.d.ts +92 -0
  26. package/dest/types.d.ts.map +1 -0
  27. package/dest/types.js +10 -0
  28. package/package.json +12 -10
  29. package/src/base-wallet/base_wallet.ts +17 -11
  30. package/src/crypto.ts +375 -0
  31. package/src/manager/index.ts +4 -8
  32. package/src/manager/types.ts +22 -0
  33. package/src/manager/wallet_manager.ts +43 -16
  34. package/src/providers/extension/extension_provider.ts +112 -17
  35. package/src/providers/extension/extension_wallet.ts +310 -55
  36. package/src/providers/extension/index.ts +5 -3
  37. package/src/{providers/types.ts → types.ts} +33 -6
  38. package/dest/providers/types.d.ts +0 -67
  39. package/dest/providers/types.d.ts.map +0 -1
  40. package/dest/providers/types.js +0 -3
@@ -1,10 +1,10 @@
1
1
  import type { Account } from '@aztec/aztec.js/account';
2
2
  import type { CallIntent, IntentInnerHash } from '@aztec/aztec.js/authorization';
3
3
  import type { FeePaymentMethod } from '@aztec/aztec.js/fee';
4
- import type { Aliased, BatchResults, BatchableMethods, BatchedMethod, ProfileOptions, SendOptions, SimulateOptions, Wallet } from '@aztec/aztec.js/wallet';
4
+ import type { Aliased, BatchResults, BatchableMethods, BatchedMethod, PrivateEvent, PrivateEventFilter, ProfileOptions, SendOptions, SimulateOptions, Wallet } from '@aztec/aztec.js/wallet';
5
5
  import { AccountFeePaymentMethodOptions } from '@aztec/entrypoints/account';
6
6
  import type { ChainInfo } from '@aztec/entrypoints/interfaces';
7
- import { Fr } from '@aztec/foundation/fields';
7
+ import { Fr } from '@aztec/foundation/curves/bn254';
8
8
  import type { FieldsOf } from '@aztec/foundation/types';
9
9
  import type { PXE } from '@aztec/pxe/server';
10
10
  import { type ContractArtifact, type EventMetadataDefinition, type FunctionCall } from '@aztec/stdlib/abi';
@@ -89,6 +89,6 @@ export declare abstract class BaseWallet implements Wallet {
89
89
  getContractClassMetadata(id: Fr, includeArtifact?: boolean): Promise<ContractClassMetadata>;
90
90
  getContractMetadata(address: AztecAddress): Promise<ContractMetadata>;
91
91
  getTxReceipt(txHash: TxHash): Promise<TxReceipt>;
92
- getPrivateEvents<T>(contractAddress: AztecAddress, eventDef: EventMetadataDefinition, from: number, limit: number, recipients?: AztecAddress[]): Promise<T[]>;
92
+ getPrivateEvents<T>(eventDef: EventMetadataDefinition, eventFilter: PrivateEventFilter): Promise<PrivateEvent<T>[]>;
93
93
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9iYXNlX3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFDVixPQUFPLEVBQ1AsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsY0FBYyxFQUNkLFdBQVcsRUFDWCxlQUFlLEVBQ2YsTUFBTSxFQUNQLE1BQU0sd0JBQXdCLENBQUM7QUFPaEMsT0FBTyxFQUFFLDhCQUE4QixFQUF3QyxNQUFNLDRCQUE0QixDQUFDO0FBQ2xILE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU5QyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN4RCxPQUFPLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyx1QkFBdUIsRUFDNUIsS0FBSyxZQUFZLEVBRWxCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUNMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssMkJBQTJCLEVBQ2hDLEtBQUssZ0JBQWdCLEVBR3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFPLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUNWLGtCQUFrQixFQUNsQixNQUFNLEVBQ04sZUFBZSxFQUNmLFNBQVMsRUFDVCxrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLGtCQUFrQixDQUFDO0FBSTVFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLFVBQVUsR0FBRztJQUN2Qjs7O09BR0c7SUFDSCxzQkFBc0IsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0lBQzFDLCtGQUErRjtJQUMvRiw4QkFBOEIsRUFBRSw4QkFBOEIsQ0FBQztJQUMvRCxrREFBa0Q7SUFDbEQsV0FBVyxFQUFFLFdBQVcsQ0FBQztDQUMxQixDQUFDO0FBRUY7O0dBRUc7QUFDSCw4QkFBc0IsVUFBVyxZQUFXLE1BQU07SUFROUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRztJQUMzQixTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxTQUFTO0lBUnpDLFNBQVMsQ0FBQyxHQUFHLHlDQUEwQztJQUV2RCxTQUFTLENBQUMsY0FBYyxTQUFPO0lBQy9CLFNBQVMsQ0FBQyx1QkFBdUIsVUFBUztJQUcxQyxTQUFTLGFBQ1ksR0FBRyxFQUFFLEdBQUcsRUFDUixTQUFTLEVBQUUsU0FBUyxFQUNyQztJQUVKLFNBQVMsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbEYsUUFBUSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV6RDs7Ozs7O09BTUc7SUFDRyxjQUFjLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBR3ZEO0lBRUssWUFBWSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FHdkM7SUFFRCxVQUFnQix5Q0FBeUMsQ0FDdkQsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLElBQUksRUFBRSxZQUFZLEVBQ2xCLFVBQVUsRUFBRSxVQUFVLEdBQ3JCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQVk3QjtJQUVZLGFBQWEsQ0FDeEIsSUFBSSxFQUFFLFlBQVksRUFDbEIsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLGVBQWUsR0FBRyxVQUFVLEdBQ3JELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FHdEI7SUFFWSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxTQUFTLGFBQWEsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLEVBQUUsRUFDakYsT0FBTyxFQUFFLENBQUMsR0FDVCxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBZ0IxQjtJQUVEOzs7Ozs7T0FNRztJQUNILFVBQWdCLGtCQUFrQixDQUNoQyxJQUFJLEVBQUUsWUFBWSxFQUNsQixRQUFRLENBQUMsRUFBRSxZQUFZLEVBQ3ZCLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsR0FDM0MsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQXNCckI7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsVUFBZ0IsK0JBQStCLENBQzdDLElBQUksRUFBRSxZQUFZLEVBQ2xCLFFBQVEsQ0FBQyxFQUFFLFlBQVksRUFDdkIsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQTNJOUM7OztXQUdHOztRQUVILCtGQUErRjs7O09Bd0o5RjtJQUVELGNBQWMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sR0FBRSxNQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUVoRjtJQUVLLGdCQUFnQixDQUNwQixRQUFRLEVBQUUsMkJBQTJCLEVBQ3JDLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQixFQUMzQixTQUFTLENBQUMsRUFBRSxFQUFFLEdBQ2IsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBaUN0QztJQUVLLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQVd2RztJQUVLLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FJbEc7SUFFSyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBZW5GO0lBRUQsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQVlwRTtJQUVELGVBQWUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUU5RjtJQUVELHdCQUF3QixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxHQUFFLE9BQWUsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FFakc7SUFDRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUVwRTtJQUVELFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FFL0M7SUFFSyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQ3RCLGVBQWUsRUFBRSxZQUFZLEVBQzdCLFFBQVEsRUFBRSx1QkFBdUIsRUFDakMsSUFBSSxFQUFFLE1BQU0sRUFDWixLQUFLLEVBQUUsTUFBTSxFQUNiLFVBQVUsR0FBRSxZQUFZLEVBQU8sR0FDOUIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBUWQ7Q0FDRiJ9
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZV93YWxsZXQuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9iYXNlLXdhbGxldC9iYXNlX3dhbGxldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN2RCxPQUFPLEtBQUssRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakYsT0FBTyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEtBQUssRUFDVixPQUFPLEVBQ1AsWUFBWSxFQUNaLGdCQUFnQixFQUNoQixhQUFhLEVBQ2IsWUFBWSxFQUNaLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsV0FBVyxFQUNYLGVBQWUsRUFDZixNQUFNLEVBQ1AsTUFBTSx3QkFBd0IsQ0FBQztBQU9oQyxPQUFPLEVBQUUsOEJBQThCLEVBQXdDLE1BQU0sNEJBQTRCLENBQUM7QUFDbEgsT0FBTyxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBRXBELE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3hELE9BQU8sS0FBSyxFQUFFLEdBQUcsRUFBc0IsTUFBTSxtQkFBbUIsQ0FBQztBQUNqRSxPQUFPLEVBQ0wsS0FBSyxnQkFBZ0IsRUFDckIsS0FBSyx1QkFBdUIsRUFDNUIsS0FBSyxZQUFZLEVBRWxCLE1BQU0sbUJBQW1CLENBQUM7QUFDM0IsT0FBTyxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxLQUFLLEVBQUUsWUFBWSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUNMLEtBQUsscUJBQXFCLEVBQzFCLEtBQUssMkJBQTJCLEVBQ2hDLEtBQUssZ0JBQWdCLEVBR3RCLE1BQU0sd0JBQXdCLENBQUM7QUFFaEMsT0FBTyxFQUFPLFdBQVcsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3JELE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2pFLE9BQU8sS0FBSyxFQUNWLGtCQUFrQixFQUNsQixNQUFNLEVBQ04sZUFBZSxFQUNmLFNBQVMsRUFDVCxrQkFBa0IsRUFDbEIsdUJBQXVCLEVBQ3hCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLGdCQUFnQixFQUEwQixNQUFNLGtCQUFrQixDQUFDO0FBSTVFOztHQUVHO0FBQ0gsTUFBTSxNQUFNLFVBQVUsR0FBRztJQUN2Qjs7O09BR0c7SUFDSCxzQkFBc0IsQ0FBQyxFQUFFLGdCQUFnQixDQUFDO0lBQzFDLCtGQUErRjtJQUMvRiw4QkFBOEIsRUFBRSw4QkFBOEIsQ0FBQztJQUMvRCxrREFBa0Q7SUFDbEQsV0FBVyxFQUFFLFdBQVcsQ0FBQztDQUMxQixDQUFDO0FBRUY7O0dBRUc7QUFDSCw4QkFBc0IsVUFBVyxZQUFXLE1BQU07SUFROUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsR0FBRztJQUMzQixTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxTQUFTO0lBUnpDLFNBQVMsQ0FBQyxHQUFHLHlDQUEwQztJQUV2RCxTQUFTLENBQUMsY0FBYyxTQUFPO0lBQy9CLFNBQVMsQ0FBQyx1QkFBdUIsVUFBUztJQUcxQyxTQUFTLGFBQ1ksR0FBRyxFQUFFLEdBQUcsRUFDUixTQUFTLEVBQUUsU0FBUyxFQUNyQztJQUVKLFNBQVMsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7SUFFbEYsUUFBUSxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUV6RDs7Ozs7O09BTUc7SUFDRyxjQUFjLElBQUksT0FBTyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLENBR3ZEO0lBRUssWUFBWSxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FHdkM7SUFFRCxVQUFnQix5Q0FBeUMsQ0FDdkQsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQ2xDLElBQUksRUFBRSxZQUFZLEVBQ2xCLFVBQVUsRUFBRSxVQUFVLEdBQ3JCLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQVk3QjtJQUVZLGFBQWEsQ0FDeEIsSUFBSSxFQUFFLFlBQVksRUFDbEIsbUJBQW1CLEVBQUUsRUFBRSxHQUFHLGVBQWUsR0FBRyxVQUFVLEdBQ3JELE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FHdEI7SUFFWSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsU0FBUyxTQUFTLGFBQWEsQ0FBQyxNQUFNLGdCQUFnQixDQUFDLEVBQUUsRUFDakYsT0FBTyxFQUFFLENBQUMsR0FDVCxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBZ0IxQjtJQUVEOzs7Ozs7T0FNRztJQUNILFVBQWdCLGtCQUFrQixDQUNoQyxJQUFJLEVBQUUsWUFBWSxFQUNsQixRQUFRLENBQUMsRUFBRSxZQUFZLEVBQ3ZCLFdBQVcsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsR0FDM0MsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQXNCckI7SUFFRDs7Ozs7OztPQU9HO0lBQ0gsVUFBZ0IsK0JBQStCLENBQzdDLElBQUksRUFBRSxZQUFZLEVBQ2xCLFFBQVEsQ0FBQyxFQUFFLFlBQVksRUFDdkIsV0FBVyxDQUFDLEVBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQTNJOUM7OztXQUdHOztRQUVILCtGQUErRjs7O09Bd0o5RjtJQUVELGNBQWMsQ0FBQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sR0FBRSxNQUFXLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUVoRjtJQUVLLGdCQUFnQixDQUNwQixRQUFRLEVBQUUsMkJBQTJCLEVBQ3JDLFFBQVEsQ0FBQyxFQUFFLGdCQUFnQixFQUMzQixTQUFTLENBQUMsRUFBRSxFQUFFLEdBQ2IsT0FBTyxDQUFDLDJCQUEyQixDQUFDLENBaUN0QztJQUVLLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsZUFBZSxHQUFHLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQVd2RztJQUVLLFNBQVMsQ0FBQyxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsY0FBYyxHQUFHLE9BQU8sQ0FBQyxlQUFlLENBQUMsQ0FJbEc7SUFFSyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsSUFBSSxFQUFFLFdBQVcsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDLENBZW5GO0lBRUQsU0FBUyxDQUFDLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQVlwRTtJQUVELGVBQWUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFLFdBQVcsRUFBRSxHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUU5RjtJQUVELHdCQUF3QixDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsZUFBZSxHQUFFLE9BQWUsR0FBRyxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FFakc7SUFDRCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsWUFBWSxHQUFHLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUVwRTtJQUVELFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FFL0M7SUFFSyxnQkFBZ0IsQ0FBQyxDQUFDLEVBQ3RCLFFBQVEsRUFBRSx1QkFBdUIsRUFDakMsV0FBVyxFQUFFLGtCQUFrQixHQUM5QixPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FlNUI7Q0FDRiJ9
@@ -1 +1 @@
1
- {"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/base-wallet/base_wallet.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"base_wallet.d.ts","sourceRoot":"","sources":["../../src/base-wallet/base_wallet.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { GAS_ESTIMATION_DA_GAS_LIMIT, GAS_ESTIMATION_L2_GAS_LIMIT, GAS_ESTIMATION_TEARDOWN_DA_GAS_LIMIT, GAS_ESTIMATION_TEARDOWN_L2_GAS_LIMIT } from '@aztec/constants';
2
2
  import { AccountFeePaymentMethodOptions } from '@aztec/entrypoints/account';
3
- import { Fr } from '@aztec/foundation/fields';
3
+ import { Fr } from '@aztec/foundation/curves/bn254';
4
4
  import { createLogger } from '@aztec/foundation/log';
5
5
  import { decodeFromAbi } from '@aztec/stdlib/abi';
6
6
  import { computePartialAddress, getContractClassFromArtifact } from '@aztec/stdlib/contract';
@@ -215,11 +215,20 @@ import { inspect } from 'util';
215
215
  getTxReceipt(txHash) {
216
216
  return this.aztecNode.getTxReceipt(txHash);
217
217
  }
218
- async getPrivateEvents(contractAddress, eventDef, from, limit, recipients = []) {
219
- const events = await this.pxe.getPrivateEvents(contractAddress, eventDef.eventSelector, from, limit, recipients);
220
- const decodedEvents = events.map((event /** PrivateEvent */ )=>decodeFromAbi([
221
- eventDef.abiType
222
- ], event.packedEvent));
218
+ async getPrivateEvents(eventDef, eventFilter) {
219
+ const pxeEvents = await this.pxe.getPrivateEvents(eventDef.eventSelector, eventFilter);
220
+ const decodedEvents = pxeEvents.map((pxeEvent)=>{
221
+ return {
222
+ event: decodeFromAbi([
223
+ eventDef.abiType
224
+ ], pxeEvent.packedEvent),
225
+ metadata: {
226
+ l2BlockNumber: pxeEvent.l2BlockNumber,
227
+ l2BlockHash: pxeEvent.l2BlockHash,
228
+ txHash: pxeEvent.txHash
229
+ }
230
+ };
231
+ });
223
232
  return decodedEvents;
224
233
  }
225
234
  }
@@ -0,0 +1,183 @@
1
+ /**
2
+ * Exported public key in JWK format for transmission over untrusted channels.
3
+ *
4
+ * Contains only the public components of an ECDH P-256 key, safe to share.
5
+ */
6
+ export interface ExportedPublicKey {
7
+ /** Key type - always "EC" for elliptic curve */
8
+ kty: string;
9
+ /** Curve name - always "P-256" */
10
+ crv: string;
11
+ /** X coordinate (base64url encoded) */
12
+ x: string;
13
+ /** Y coordinate (base64url encoded) */
14
+ y: string;
15
+ }
16
+ /**
17
+ * Encrypted message payload containing ciphertext and initialization vector.
18
+ *
19
+ * Both fields are base64-encoded for safe transmission as JSON.
20
+ */
21
+ export interface EncryptedPayload {
22
+ /** Initialization vector (base64 encoded, 12 bytes) */
23
+ iv: string;
24
+ /** Ciphertext (base64 encoded) */
25
+ ciphertext: string;
26
+ }
27
+ /**
28
+ * ECDH key pair for secure communication.
29
+ *
30
+ * The private key should never be exported or transmitted.
31
+ * The public key can be exported via {@link exportPublicKey} for exchange.
32
+ */
33
+ export interface SecureKeyPair {
34
+ /** Public key - safe to share */
35
+ publicKey: CryptoKey;
36
+ /** Private key - keep secret, used for key derivation */
37
+ privateKey: CryptoKey;
38
+ }
39
+ /**
40
+ * Generates an ECDH P-256 key pair for key exchange.
41
+ *
42
+ * The generated key pair can be used to derive a shared secret with another
43
+ * party's public key using {@link deriveSharedKey}.
44
+ *
45
+ * @returns A new ECDH key pair
46
+ *
47
+ * @example
48
+ * ```typescript
49
+ * const keyPair = await generateKeyPair();
50
+ * const publicKey = await exportPublicKey(keyPair.publicKey);
51
+ * // Send publicKey to the other party
52
+ * ```
53
+ */
54
+ export declare function generateKeyPair(): Promise<SecureKeyPair>;
55
+ /**
56
+ * Exports a public key to JWK format for transmission.
57
+ *
58
+ * The exported key contains only public components and is safe to transmit
59
+ * over untrusted channels.
60
+ *
61
+ * @param publicKey - The CryptoKey public key to export
62
+ * @returns The public key in JWK format
63
+ *
64
+ * @example
65
+ * ```typescript
66
+ * const keyPair = await generateKeyPair();
67
+ * const exported = await exportPublicKey(keyPair.publicKey);
68
+ * // exported can be JSON serialized and sent to another party
69
+ * ```
70
+ */
71
+ export declare function exportPublicKey(publicKey: CryptoKey): Promise<ExportedPublicKey>;
72
+ /**
73
+ * Imports a public key from JWK format.
74
+ *
75
+ * Used to import the other party's public key for deriving a shared secret.
76
+ *
77
+ * @param exported - The public key in JWK format
78
+ * @returns A CryptoKey that can be used with {@link deriveSharedKey}
79
+ *
80
+ * @example
81
+ * ```typescript
82
+ * // Receive exported public key from other party
83
+ * const theirPublicKey = await importPublicKey(receivedPublicKey);
84
+ * const sharedKey = await deriveSharedKey(myPrivateKey, theirPublicKey);
85
+ * ```
86
+ */
87
+ export declare function importPublicKey(exported: ExportedPublicKey): Promise<CryptoKey>;
88
+ /**
89
+ * Derives a shared AES-256-GCM key from ECDH key exchange.
90
+ *
91
+ * Both parties will derive the same shared key when using their own private key
92
+ * and the other party's public key. This is the core of ECDH key agreement.
93
+ *
94
+ * @param privateKey - Your ECDH private key
95
+ * @param publicKey - The other party's ECDH public key
96
+ * @returns An AES-256-GCM key for encryption/decryption
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * // Both parties derive the same key
101
+ * const sharedKeyA = await deriveSharedKey(privateKeyA, publicKeyB);
102
+ * const sharedKeyB = await deriveSharedKey(privateKeyB, publicKeyA);
103
+ * // sharedKeyA and sharedKeyB are equivalent
104
+ * ```
105
+ */
106
+ export declare function deriveSharedKey(privateKey: CryptoKey, publicKey: CryptoKey): Promise<CryptoKey>;
107
+ /**
108
+ * Encrypts data using AES-256-GCM.
109
+ *
110
+ * The data is JSON serialized before encryption. A random 12-byte IV is
111
+ * generated for each encryption operation.
112
+ *
113
+ * AES-GCM provides both confidentiality and authenticity - any tampering
114
+ * with the ciphertext will cause decryption to fail.
115
+ *
116
+ * @param key - The AES-GCM key (from {@link deriveSharedKey})
117
+ * @param data - The data to encrypt (will be JSON serialized)
118
+ * @returns The encrypted payload with IV and ciphertext
119
+ *
120
+ * @example
121
+ * ```typescript
122
+ * const encrypted = await encrypt(sharedKey, { action: 'transfer', amount: 100 });
123
+ * // encrypted.iv and encrypted.ciphertext are base64 strings
124
+ * ```
125
+ */
126
+ export declare function encrypt(key: CryptoKey, data: unknown): Promise<EncryptedPayload>;
127
+ /**
128
+ * Decrypts data using AES-256-GCM.
129
+ *
130
+ * The decrypted data is JSON parsed before returning.
131
+ *
132
+ * @typeParam T - The expected type of the decrypted data
133
+ * @param key - The AES-GCM key (from {@link deriveSharedKey})
134
+ * @param payload - The encrypted payload from {@link encrypt}
135
+ * @returns The decrypted and parsed data
136
+ *
137
+ * @throws Error if decryption fails (wrong key or tampered ciphertext)
138
+ *
139
+ * @example
140
+ * ```typescript
141
+ * const decrypted = await decrypt<{ action: string; amount: number }>(sharedKey, encrypted);
142
+ * console.log(decrypted.action); // 'transfer'
143
+ * ```
144
+ */
145
+ export declare function decrypt<T = unknown>(key: CryptoKey, payload: EncryptedPayload): Promise<T>;
146
+ /**
147
+ * Hashes a shared AES key to a hex string for verification.
148
+ *
149
+ * This extracts the raw key material and hashes it with SHA-256,
150
+ * returning the first 16 bytes as a hex string.
151
+ *
152
+ * @param sharedKey - The AES-GCM shared key (must be extractable)
153
+ * @returns A hex string representation of the hash
154
+ *
155
+ * @example
156
+ * ```typescript
157
+ * const hash = await hashSharedSecret(sharedKey);
158
+ * const emoji = hashToEmoji(hash);
159
+ * ```
160
+ */
161
+ export declare function hashSharedSecret(sharedKey: CryptoKey): Promise<string>;
162
+ /**
163
+ * Converts a hex hash to an emoji sequence for visual verification.
164
+ *
165
+ * This is used for anti-MITM verification - both the dApp and wallet
166
+ * independently compute the same emoji sequence from the shared secret.
167
+ * Users can visually compare the sequences to detect interception.
168
+ *
169
+ * Similar to SAS (Short Authentication String) in ZRTP/Signal.
170
+ *
171
+ * @param hash - Hex string from {@link hashSharedSecret}
172
+ * @param length - Number of emojis to generate (default: 4)
173
+ * @returns A string of emojis representing the hash
174
+ *
175
+ * @example
176
+ * ```typescript
177
+ * const hash = await hashSharedSecret(sharedKey);
178
+ * const emoji = hashToEmoji(hash); // e.g., "🔵🦋🎯🐼"
179
+ * // Display to user for verification
180
+ * ```
181
+ */
182
+ export declare function hashToEmoji(hash: string, length?: number): string;
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J5cHRvLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvY3J5cHRvLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1DQTs7OztHQUlHO0FBQ0gsTUFBTSxXQUFXLGlCQUFpQjtJQUNoQyxnREFBZ0Q7SUFDaEQsR0FBRyxFQUFFLE1BQU0sQ0FBQztJQUNaLGtDQUFrQztJQUNsQyxHQUFHLEVBQUUsTUFBTSxDQUFDO0lBQ1osdUNBQXVDO0lBQ3ZDLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDVix1Q0FBdUM7SUFDdkMsQ0FBQyxFQUFFLE1BQU0sQ0FBQztDQUNYO0FBRUQ7Ozs7R0FJRztBQUNILE1BQU0sV0FBVyxnQkFBZ0I7SUFDL0IsdURBQXVEO0lBQ3ZELEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCxrQ0FBa0M7SUFDbEMsVUFBVSxFQUFFLE1BQU0sQ0FBQztDQUNwQjtBQUVEOzs7OztHQUtHO0FBQ0gsTUFBTSxXQUFXLGFBQWE7SUFDNUIsaUNBQWlDO0lBQ2pDLFNBQVMsRUFBRSxTQUFTLENBQUM7SUFDckIseURBQXlEO0lBQ3pELFVBQVUsRUFBRSxTQUFTLENBQUM7Q0FDdkI7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHdCQUFzQixlQUFlLElBQUksT0FBTyxDQUFDLGFBQWEsQ0FBQyxDQWE5RDtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7R0FlRztBQUNILHdCQUFzQixlQUFlLENBQUMsU0FBUyxFQUFFLFNBQVMsR0FBRyxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0FRdEY7QUFFRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHdCQUFnQixlQUFlLENBQUMsUUFBUSxFQUFFLGlCQUFpQixHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FnQi9FO0FBRUQ7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsd0JBQWdCLGVBQWUsQ0FBQyxVQUFVLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQWMvRjtBQUVEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCx3QkFBc0IsT0FBTyxDQUFDLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE9BQU8sR0FBRyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FVdEY7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCx3QkFBc0IsT0FBTyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQVFoRztBQW9FRDs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILHdCQUFzQixnQkFBZ0IsQ0FBQyxTQUFTLEVBQUUsU0FBUyxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FPNUU7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQUNILHdCQUFnQixXQUFXLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxNQUFNLEdBQUUsTUFBVSxHQUFHLE1BQU0sQ0FNcEUifQ==
@@ -0,0 +1 @@
1
+ {"version":3,"file":"crypto.d.ts","sourceRoot":"","sources":["../src/crypto.ts"],"names":[],"mappings":"AAmCA;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,gDAAgD;IAChD,GAAG,EAAE,MAAM,CAAC;IACZ,kCAAkC;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAC;IACV,uCAAuC;IACvC,CAAC,EAAE,MAAM,CAAC;CACX;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,EAAE,EAAE,MAAM,CAAC;IACX,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;;GAKG;AACH,MAAM,WAAW,aAAa;IAC5B,iCAAiC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,yDAAyD;IACzD,UAAU,EAAE,SAAS,CAAC;CACvB;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,aAAa,CAAC,CAa9D;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAQtF;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC,CAgB/E;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,SAAS,CAAC,CAc/F;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAUtF;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAsB,OAAO,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,CAAC,CAAC,CAQhG;AAoED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAO5E;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,GAAG,MAAM,CAMpE"}
package/dest/crypto.js ADDED
@@ -0,0 +1,300 @@
1
+ /**
2
+ * Cryptographic utilities for secure wallet communication.
3
+ *
4
+ * This module provides ECDH key exchange and AES-GCM encryption primitives
5
+ * for establishing secure communication channels between dApps and wallet extensions.
6
+ *
7
+ * The crypto flow:
8
+ * 1. Both parties generate ECDH key pairs using {@link generateKeyPair}
9
+ * 2. Public keys are exchanged (exported via {@link exportPublicKey}, imported via {@link importPublicKey})
10
+ * 3. Both parties derive the same shared secret using {@link deriveSharedKey}
11
+ * 4. Messages are encrypted/decrypted using {@link encrypt} and {@link decrypt}
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Party A
16
+ * const keyPairA = await generateKeyPair();
17
+ * const publicKeyA = await exportPublicKey(keyPairA.publicKey);
18
+ *
19
+ * // Party B
20
+ * const keyPairB = await generateKeyPair();
21
+ * const publicKeyB = await exportPublicKey(keyPairB.publicKey);
22
+ *
23
+ * // Exchange public keys, then derive shared secret
24
+ * const importedB = await importPublicKey(publicKeyB);
25
+ * const sharedKeyA = await deriveSharedKey(keyPairA.privateKey, importedB);
26
+ *
27
+ * // Encrypt and decrypt
28
+ * const encrypted = await encrypt(sharedKeyA, { message: 'hello' });
29
+ * const decrypted = await decrypt(sharedKeyB, encrypted);
30
+ * ```
31
+ *
32
+ * @packageDocumentation
33
+ */ import { jsonStringify } from '@aztec/foundation/json-rpc';
34
+ /**
35
+ * Generates an ECDH P-256 key pair for key exchange.
36
+ *
37
+ * The generated key pair can be used to derive a shared secret with another
38
+ * party's public key using {@link deriveSharedKey}.
39
+ *
40
+ * @returns A new ECDH key pair
41
+ *
42
+ * @example
43
+ * ```typescript
44
+ * const keyPair = await generateKeyPair();
45
+ * const publicKey = await exportPublicKey(keyPair.publicKey);
46
+ * // Send publicKey to the other party
47
+ * ```
48
+ */ export async function generateKeyPair() {
49
+ const keyPair = await crypto.subtle.generateKey({
50
+ name: 'ECDH',
51
+ namedCurve: 'P-256'
52
+ }, true, [
53
+ 'deriveKey'
54
+ ]);
55
+ return {
56
+ publicKey: keyPair.publicKey,
57
+ privateKey: keyPair.privateKey
58
+ };
59
+ }
60
+ /**
61
+ * Exports a public key to JWK format for transmission.
62
+ *
63
+ * The exported key contains only public components and is safe to transmit
64
+ * over untrusted channels.
65
+ *
66
+ * @param publicKey - The CryptoKey public key to export
67
+ * @returns The public key in JWK format
68
+ *
69
+ * @example
70
+ * ```typescript
71
+ * const keyPair = await generateKeyPair();
72
+ * const exported = await exportPublicKey(keyPair.publicKey);
73
+ * // exported can be JSON serialized and sent to another party
74
+ * ```
75
+ */ export async function exportPublicKey(publicKey) {
76
+ const jwk = await crypto.subtle.exportKey('jwk', publicKey);
77
+ return {
78
+ kty: jwk.kty,
79
+ crv: jwk.crv,
80
+ x: jwk.x,
81
+ y: jwk.y
82
+ };
83
+ }
84
+ /**
85
+ * Imports a public key from JWK format.
86
+ *
87
+ * Used to import the other party's public key for deriving a shared secret.
88
+ *
89
+ * @param exported - The public key in JWK format
90
+ * @returns A CryptoKey that can be used with {@link deriveSharedKey}
91
+ *
92
+ * @example
93
+ * ```typescript
94
+ * // Receive exported public key from other party
95
+ * const theirPublicKey = await importPublicKey(receivedPublicKey);
96
+ * const sharedKey = await deriveSharedKey(myPrivateKey, theirPublicKey);
97
+ * ```
98
+ */ export function importPublicKey(exported) {
99
+ return crypto.subtle.importKey('jwk', {
100
+ kty: exported.kty,
101
+ crv: exported.crv,
102
+ x: exported.x,
103
+ y: exported.y
104
+ }, {
105
+ name: 'ECDH',
106
+ namedCurve: 'P-256'
107
+ }, false, []);
108
+ }
109
+ /**
110
+ * Derives a shared AES-256-GCM key from ECDH key exchange.
111
+ *
112
+ * Both parties will derive the same shared key when using their own private key
113
+ * and the other party's public key. This is the core of ECDH key agreement.
114
+ *
115
+ * @param privateKey - Your ECDH private key
116
+ * @param publicKey - The other party's ECDH public key
117
+ * @returns An AES-256-GCM key for encryption/decryption
118
+ *
119
+ * @example
120
+ * ```typescript
121
+ * // Both parties derive the same key
122
+ * const sharedKeyA = await deriveSharedKey(privateKeyA, publicKeyB);
123
+ * const sharedKeyB = await deriveSharedKey(privateKeyB, publicKeyA);
124
+ * // sharedKeyA and sharedKeyB are equivalent
125
+ * ```
126
+ */ export function deriveSharedKey(privateKey, publicKey) {
127
+ return crypto.subtle.deriveKey({
128
+ name: 'ECDH',
129
+ public: publicKey
130
+ }, privateKey, {
131
+ name: 'AES-GCM',
132
+ length: 256
133
+ }, true, [
134
+ 'encrypt',
135
+ 'decrypt'
136
+ ]);
137
+ }
138
+ /**
139
+ * Encrypts data using AES-256-GCM.
140
+ *
141
+ * The data is JSON serialized before encryption. A random 12-byte IV is
142
+ * generated for each encryption operation.
143
+ *
144
+ * AES-GCM provides both confidentiality and authenticity - any tampering
145
+ * with the ciphertext will cause decryption to fail.
146
+ *
147
+ * @param key - The AES-GCM key (from {@link deriveSharedKey})
148
+ * @param data - The data to encrypt (will be JSON serialized)
149
+ * @returns The encrypted payload with IV and ciphertext
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * const encrypted = await encrypt(sharedKey, { action: 'transfer', amount: 100 });
154
+ * // encrypted.iv and encrypted.ciphertext are base64 strings
155
+ * ```
156
+ */ export async function encrypt(key, data) {
157
+ const iv = crypto.getRandomValues(new Uint8Array(12));
158
+ const encoded = new TextEncoder().encode(jsonStringify(data));
159
+ const ciphertext = await crypto.subtle.encrypt({
160
+ name: 'AES-GCM',
161
+ iv
162
+ }, key, encoded);
163
+ return {
164
+ iv: arrayBufferToBase64(iv),
165
+ ciphertext: arrayBufferToBase64(ciphertext)
166
+ };
167
+ }
168
+ /**
169
+ * Decrypts data using AES-256-GCM.
170
+ *
171
+ * The decrypted data is JSON parsed before returning.
172
+ *
173
+ * @typeParam T - The expected type of the decrypted data
174
+ * @param key - The AES-GCM key (from {@link deriveSharedKey})
175
+ * @param payload - The encrypted payload from {@link encrypt}
176
+ * @returns The decrypted and parsed data
177
+ *
178
+ * @throws Error if decryption fails (wrong key or tampered ciphertext)
179
+ *
180
+ * @example
181
+ * ```typescript
182
+ * const decrypted = await decrypt<{ action: string; amount: number }>(sharedKey, encrypted);
183
+ * console.log(decrypted.action); // 'transfer'
184
+ * ```
185
+ */ export async function decrypt(key, payload) {
186
+ const iv = base64ToArrayBuffer(payload.iv);
187
+ const ciphertext = base64ToArrayBuffer(payload.ciphertext);
188
+ const decrypted = await crypto.subtle.decrypt({
189
+ name: 'AES-GCM',
190
+ iv
191
+ }, key, ciphertext);
192
+ const decoded = new TextDecoder().decode(decrypted);
193
+ return JSON.parse(decoded);
194
+ }
195
+ /**
196
+ * Converts ArrayBuffer to base64 string.
197
+ * @internal
198
+ */ function arrayBufferToBase64(buffer) {
199
+ const bytes = buffer instanceof Uint8Array ? buffer : new Uint8Array(buffer);
200
+ let binary = '';
201
+ for(let i = 0; i < bytes.byteLength; i++){
202
+ binary += String.fromCharCode(bytes[i]);
203
+ }
204
+ return btoa(binary);
205
+ }
206
+ /**
207
+ * Converts base64 string to ArrayBuffer.
208
+ * @internal
209
+ */ function base64ToArrayBuffer(base64) {
210
+ const binary = atob(base64);
211
+ const bytes = new Uint8Array(binary.length);
212
+ for(let i = 0; i < binary.length; i++){
213
+ bytes[i] = binary.charCodeAt(i);
214
+ }
215
+ return bytes.buffer;
216
+ }
217
+ /**
218
+ * Emoji alphabet for visual verification of shared secrets.
219
+ * 32 distinct, easily recognizable emojis for anti-spoofing verification.
220
+ * @internal
221
+ */ const EMOJI_ALPHABET = [
222
+ '🔵',
223
+ '🟢',
224
+ '🔴',
225
+ '🟡',
226
+ '🟣',
227
+ '🟠',
228
+ '⚫',
229
+ '⚪',
230
+ '🌟',
231
+ '🌙',
232
+ '☀️',
233
+ '🌈',
234
+ '🔥',
235
+ '💧',
236
+ '🌸',
237
+ '🍀',
238
+ '🦋',
239
+ '🐬',
240
+ '🦊',
241
+ '🐼',
242
+ '🦁',
243
+ '🐯',
244
+ '🐸',
245
+ '🦉',
246
+ '🎵',
247
+ '🎨',
248
+ '🎯',
249
+ '🎲',
250
+ '🔔',
251
+ '💎',
252
+ '🔑',
253
+ '🏆'
254
+ ];
255
+ /**
256
+ * Hashes a shared AES key to a hex string for verification.
257
+ *
258
+ * This extracts the raw key material and hashes it with SHA-256,
259
+ * returning the first 16 bytes as a hex string.
260
+ *
261
+ * @param sharedKey - The AES-GCM shared key (must be extractable)
262
+ * @returns A hex string representation of the hash
263
+ *
264
+ * @example
265
+ * ```typescript
266
+ * const hash = await hashSharedSecret(sharedKey);
267
+ * const emoji = hashToEmoji(hash);
268
+ * ```
269
+ */ export async function hashSharedSecret(sharedKey) {
270
+ const rawKey = await crypto.subtle.exportKey('raw', sharedKey);
271
+ const hash = await crypto.subtle.digest('SHA-256', rawKey);
272
+ const bytes = new Uint8Array(hash.slice(0, 16));
273
+ return Array.from(bytes).map((b)=>b.toString(16).padStart(2, '0')).join('');
274
+ }
275
+ /**
276
+ * Converts a hex hash to an emoji sequence for visual verification.
277
+ *
278
+ * This is used for anti-MITM verification - both the dApp and wallet
279
+ * independently compute the same emoji sequence from the shared secret.
280
+ * Users can visually compare the sequences to detect interception.
281
+ *
282
+ * Similar to SAS (Short Authentication String) in ZRTP/Signal.
283
+ *
284
+ * @param hash - Hex string from {@link hashSharedSecret}
285
+ * @param length - Number of emojis to generate (default: 4)
286
+ * @returns A string of emojis representing the hash
287
+ *
288
+ * @example
289
+ * ```typescript
290
+ * const hash = await hashSharedSecret(sharedKey);
291
+ * const emoji = hashToEmoji(hash); // e.g., "🔵🦋🎯🐼"
292
+ * // Display to user for verification
293
+ * ```
294
+ */ export function hashToEmoji(hash, length = 4) {
295
+ const bytes = [];
296
+ for(let i = 0; i < hash.length && bytes.length < length; i += 2){
297
+ bytes.push(parseInt(hash.slice(i, i + 2), 16));
298
+ }
299
+ return bytes.map((b)=>EMOJI_ALPHABET[b % EMOJI_ALPHABET.length]).join('');
300
+ }
@@ -1,8 +1,9 @@
1
1
  export { WalletManager } from './wallet_manager.js';
2
- export type { WalletManagerConfig, ExtensionWalletConfig, WebWalletConfig, WalletProviderType, WalletProvider, DiscoverWalletsOptions, } from './types.js';
3
- export type { WalletInfo, WalletMessage, WalletResponse, DiscoveryRequest, DiscoveryResponse, } from '../providers/types.js';
2
+ export type { WalletManagerConfig, ExtensionWalletConfig, WebWalletConfig, WalletProviderType, WalletProvider, ProviderDisconnectionCallback, DiscoverWalletsOptions, } from './types.js';
3
+ export { WalletMessageType } from '../types.js';
4
+ export type { WalletInfo, WalletMessage, WalletResponse, DiscoveryRequest, DiscoveryResponse } from '../types.js';
4
5
  export { ChainInfoSchema } from '@aztec/aztec.js/account';
5
6
  export type { ChainInfo } from '@aztec/aztec.js/account';
6
7
  export { WalletSchema } from '@aztec/aztec.js/wallet';
7
8
  export { jsonStringify } from '@aztec/foundation/json-rpc';
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxZQUFZLEVBQ1YsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCxzQkFBc0IsR0FDdkIsTUFBTSxZQUFZLENBQUM7QUFHcEIsWUFBWSxFQUNWLFVBQVUsRUFDVixhQUFhLEVBQ2IsY0FBYyxFQUNkLGdCQUFnQixFQUNoQixpQkFBaUIsR0FDbEIsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDMUQsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUMifQ==
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxZQUFZLEVBQ1YsbUJBQW1CLEVBQ25CLHFCQUFxQixFQUNyQixlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGNBQWMsRUFDZCw2QkFBNkIsRUFDN0Isc0JBQXNCLEdBQ3ZCLE1BQU0sWUFBWSxDQUFDO0FBR3BCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNoRCxZQUFZLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFHbEgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzFELFlBQVksRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDIn0=
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,YAAY,EACV,UAAU,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/manager/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EACV,mBAAmB,EACnB,qBAAqB,EACrB,eAAe,EACf,kBAAkB,EAClB,cAAc,EACd,6BAA6B,EAC7B,sBAAsB,GACvB,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAChD,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGlH,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,YAAY,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC"}
@@ -1,4 +1,6 @@
1
1
  export { WalletManager } from './wallet_manager.js';
2
+ // Re-export types and enums from providers for convenience
3
+ export { WalletMessageType } from '../types.js';
2
4
  // Re-export commonly needed utilities for wallet integration
3
5
  export { ChainInfoSchema } from '@aztec/aztec.js/account';
4
6
  export { WalletSchema } from '@aztec/aztec.js/wallet';
@@ -31,6 +31,10 @@ export interface WalletManagerConfig {
31
31
  * Type of wallet provider
32
32
  */
33
33
  export type WalletProviderType = 'extension' | 'web' | 'embedded';
34
+ /**
35
+ * Callback type for wallet disconnect events at the provider level.
36
+ */
37
+ export type ProviderDisconnectionCallback = () => void;
34
38
  /**
35
39
  * A wallet provider that can connect to create a wallet instance.
36
40
  * Chain information is already baked in from the discovery process.
@@ -51,6 +55,23 @@ export interface WalletProvider {
51
55
  * @param appId - Application identifier for the requesting dapp
52
56
  */
53
57
  connect(appId: string): Promise<Wallet>;
58
+ /**
59
+ * Disconnects the current wallet and cleans up resources.
60
+ * After calling this, the wallet returned from connect() should no longer be used.
61
+ * @returns A promise that resolves when disconnection is complete
62
+ */
63
+ disconnect?(): Promise<void>;
64
+ /**
65
+ * Registers a callback to be invoked when the wallet disconnects unexpectedly.
66
+ * @param callback - Function to call when wallet disconnects
67
+ * @returns A function to unregister the callback
68
+ */
69
+ onDisconnect?(callback: ProviderDisconnectionCallback): () => void;
70
+ /**
71
+ * Returns whether the provider's wallet connection has been disconnected.
72
+ * @returns true if the wallet is no longer connected
73
+ */
74
+ isDisconnected?(): boolean;
54
75
  }
55
76
  /**
56
77
  * Options for discovering wallets
@@ -61,4 +82,4 @@ export interface DiscoverWalletsOptions {
61
82
  /** Discovery timeout in milliseconds */
62
83
  timeout?: number;
63
84
  }
64
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLHFCQUFxQjtJQUNwQyw0Q0FBNEM7SUFDNUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztJQUNqQix5REFBeUQ7SUFDekQsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDckIseURBQXlEO0lBQ3pELFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ3RCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsZUFBZTtJQUM5QixrQ0FBa0M7SUFDbEMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ2hCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLHFDQUFxQztJQUNyQyxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQztJQUNuQywrQkFBK0I7SUFDL0IsVUFBVSxDQUFDLEVBQUUsZUFBZSxDQUFDO0NBQzlCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxHQUFHLEtBQUssR0FBRyxVQUFVLENBQUM7QUFFbEU7OztHQUdHO0FBQ0gsTUFBTSxXQUFXLGNBQWM7SUFDN0IseUNBQXlDO0lBQ3pDLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCw4QkFBOEI7SUFDOUIsSUFBSSxFQUFFLGtCQUFrQixDQUFDO0lBQ3pCLG1CQUFtQjtJQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsZUFBZTtJQUNmLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNkLDBCQUEwQjtJQUMxQixRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25DOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztDQUN6QztBQUVEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLHNCQUFzQjtJQUNyQyxxQ0FBcUM7SUFDckMsU0FBUyxFQUFFLFNBQVMsQ0FBQztJQUNyQix3Q0FBd0M7SUFDeEMsT0FBTyxDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQ2xCIn0=
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHlwZXMuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYW5hZ2VyL3R5cGVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXJEOztHQUVHO0FBQ0gsTUFBTSxXQUFXLHFCQUFxQjtJQUNwQyw0Q0FBNEM7SUFDNUMsT0FBTyxFQUFFLE9BQU8sQ0FBQztJQUNqQix5REFBeUQ7SUFDekQsU0FBUyxDQUFDLEVBQUUsTUFBTSxFQUFFLENBQUM7SUFDckIseURBQXlEO0lBQ3pELFNBQVMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ3RCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsZUFBZTtJQUM5QixrQ0FBa0M7SUFDbEMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO0NBQ2hCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsbUJBQW1CO0lBQ2xDLHFDQUFxQztJQUNyQyxVQUFVLENBQUMsRUFBRSxxQkFBcUIsQ0FBQztJQUNuQywrQkFBK0I7SUFDL0IsVUFBVSxDQUFDLEVBQUUsZUFBZSxDQUFDO0NBQzlCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE1BQU0sa0JBQWtCLEdBQUcsV0FBVyxHQUFHLEtBQUssR0FBRyxVQUFVLENBQUM7QUFFbEU7O0dBRUc7QUFDSCxNQUFNLE1BQU0sNkJBQTZCLEdBQUcsTUFBTSxJQUFJLENBQUM7QUFFdkQ7OztHQUdHO0FBQ0gsTUFBTSxXQUFXLGNBQWM7SUFDN0IseUNBQXlDO0lBQ3pDLEVBQUUsRUFBRSxNQUFNLENBQUM7SUFDWCw4QkFBOEI7SUFDOUIsSUFBSSxFQUFFLGtCQUFrQixDQUFDO0lBQ3pCLG1CQUFtQjtJQUNuQixJQUFJLEVBQUUsTUFBTSxDQUFDO0lBQ2IsZUFBZTtJQUNmLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNkLDBCQUEwQjtJQUMxQixRQUFRLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ25DOzs7T0FHRztJQUNILE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4Qzs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLElBQUksT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCOzs7O09BSUc7SUFDSCxZQUFZLENBQUMsQ0FBQyxRQUFRLEVBQUUsNkJBQTZCLEdBQUcsTUFBTSxJQUFJLENBQUM7SUFDbkU7OztPQUdHO0lBQ0gsY0FBYyxDQUFDLElBQUksT0FBTyxDQUFDO0NBQzVCO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLFdBQVcsc0JBQXNCO0lBQ3JDLHFDQUFxQztJQUNyQyxTQUFTLEVBQUUsU0FBUyxDQUFDO0lBQ3JCLHdDQUF3QztJQUN4QyxPQUFPLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDbEIifQ==