@cardano-sdk/web-extension 0.24.8 → 0.26.0

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 (42) hide show
  1. package/README.md +24 -27
  2. package/dist/cjs/keyAgent/consumeKeyAgent.d.ts +1 -1
  3. package/dist/cjs/observableWallet/util.d.ts.map +1 -1
  4. package/dist/cjs/observableWallet/util.js +5 -0
  5. package/dist/cjs/observableWallet/util.js.map +1 -1
  6. package/dist/cjs/tsconfig.tsbuildinfo +1 -1
  7. package/dist/cjs/walletManager/WalletRepository/WalletRepository.js +1 -1
  8. package/dist/cjs/walletManager/WalletRepository/WalletRepository.js.map +1 -1
  9. package/dist/cjs/walletManager/types.d.ts +5 -1
  10. package/dist/cjs/walletManager/types.d.ts.map +1 -1
  11. package/dist/cjs/walletManager/types.js.map +1 -1
  12. package/dist/cjs/walletManager/util.d.ts +14 -1
  13. package/dist/cjs/walletManager/util.d.ts.map +1 -1
  14. package/dist/cjs/walletManager/util.js +224 -1
  15. package/dist/cjs/walletManager/util.js.map +1 -1
  16. package/dist/cjs/walletManager/walletManager.d.ts +1 -1
  17. package/dist/cjs/walletManager/walletManager.d.ts.map +1 -1
  18. package/dist/cjs/walletManager/walletManager.js +5 -26
  19. package/dist/cjs/walletManager/walletManager.js.map +1 -1
  20. package/dist/cjs/walletManager/walletManager.types.d.ts +1 -1
  21. package/dist/cjs/walletManager/walletManager.types.d.ts.map +1 -1
  22. package/dist/esm/keyAgent/consumeKeyAgent.d.ts +1 -1
  23. package/dist/esm/observableWallet/util.d.ts.map +1 -1
  24. package/dist/esm/observableWallet/util.js +5 -0
  25. package/dist/esm/observableWallet/util.js.map +1 -1
  26. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  27. package/dist/esm/walletManager/WalletRepository/WalletRepository.js +1 -1
  28. package/dist/esm/walletManager/WalletRepository/WalletRepository.js.map +1 -1
  29. package/dist/esm/walletManager/types.d.ts +5 -1
  30. package/dist/esm/walletManager/types.d.ts.map +1 -1
  31. package/dist/esm/walletManager/types.js.map +1 -1
  32. package/dist/esm/walletManager/util.d.ts +14 -1
  33. package/dist/esm/walletManager/util.d.ts.map +1 -1
  34. package/dist/esm/walletManager/util.js +222 -1
  35. package/dist/esm/walletManager/util.js.map +1 -1
  36. package/dist/esm/walletManager/walletManager.d.ts +1 -1
  37. package/dist/esm/walletManager/walletManager.d.ts.map +1 -1
  38. package/dist/esm/walletManager/walletManager.js +5 -26
  39. package/dist/esm/walletManager/walletManager.js.map +1 -1
  40. package/dist/esm/walletManager/walletManager.types.d.ts +1 -1
  41. package/dist/esm/walletManager/walletManager.types.d.ts.map +1 -1
  42. package/package.json +12 -12
package/README.md CHANGED
@@ -16,12 +16,10 @@ In this document, we will cover:
16
16
 
17
17
  - **Diagrams:** Discussing how these components interact within the context of a web browser extension with visual representations to aid in understanding the structure and flow of interactions.
18
18
 
19
-
20
19
  ## System Overview
21
20
 
22
21
  The **web-extension** package provides components for handling wallet management-related operations within the browser web extensions context. It brings together its own specialized components and further leverages additional elements from other SDK packages, notably the **ObservableWallet** interface from the 'wallet' package and the **Witnesser** interface from the 'key-management’ package.
23
22
 
24
-
25
23
  ### Components from the web-extension Package
26
24
 
27
25
  - **WalletManager:** Manages the lifecycle of ObservableWallets, including activation and deactivation, and is responsible for creating Witnesser instances.
@@ -52,7 +50,6 @@ In-memory key agents could technically live in the service worker, but keeping t
52
50
 
53
51
  This arrangement also ensures a safer, isolated environment for user prompts and transaction confirmations. As thus, the components of the wallet-extension are distributed among the service worker and the UI script as follows:
54
52
 
55
-
56
53
  ![Location of instances within the web extension](img/fig1.png)
57
54
 
58
55
  ## Component Descriptions
@@ -65,7 +62,6 @@ In essence, the **SigningCoordinator** is responsible for managing the signing o
65
62
 
66
63
  The **SigningCoordinator** also offers flexibility in handling different wallet types, such as InMemory, Ledger, and Trezor wallets. This flexibility is crucial for a web extension that aims to support a wide range of user preferences and hardware capabilities.
67
64
 
68
-
69
65
  ### WalletManager
70
66
 
71
67
  The **WalletManager** is responsible for orchestrating various wallet-related operations. It handles the lifecycle of wallets, including their creation, initialization, activation, deactivation, and switching of networks. These wallets are **ObservableWallet** instances, these instances provide real-time updates and states of the wallets, which include balance tracking, transaction histories, and more. The **WalletManager** effectively maintains a record of these instances, ensuring that the wallets are readily accessible.
@@ -92,7 +88,7 @@ The **ObservableWallet** is designed as a comprehensive interface that offers re
92
88
 
93
89
  ## Integration and Communication Flow
94
90
 
95
- The web-extension package components interact across the UI script and the background script (service worker) of the web extension environment. The scripts communicate using message passing, which allows both service worker and UI scripts to listen for each other's messages and respond on the same channel.
91
+ The web-extension package components interact across the UI script and the background script (service worker) of the web extension environment. The scripts communicate using message passing, which allows both service worker and UI scripts to listen for each other's messages and respond on the same channel.
96
92
 
97
93
  ## Bootstrapping
98
94
 
@@ -104,20 +100,19 @@ In the UI script the application creates the **SigningCoordinator** instance and
104
100
 
105
101
  ```javascript
106
102
  exposeApi(
107
- {
108
- api$: of(signingCoordinator),
109
- baseChannel: signingCoordinatorApiChannel,
110
- properties: signingCoordinatorApiProperties
111
- },
112
- dependencies
113
- );
114
-
103
+ {
104
+ api$: of(signingCoordinator),
105
+ baseChannel: signingCoordinatorApiChannel,
106
+ properties: signingCoordinatorApiProperties
107
+ },
108
+ dependencies
109
+ );
115
110
  ```
116
111
 
117
112
  This function exposes the **SigningCoordinator** to the code running in the service worker. Additionally, the UI script must subscribe to the **transactionWitnessRequest$** and **signDataRequest$** observables of the **SigningCoordinator** so it can handle signing requests that are initiated by the **ObservableWallet** that lives in the service worker. This is an example on how the web extension application could start the **SigningCoordinator**:
118
113
 
119
114
  ```javascript
120
- ui.ts
115
+ ui.ts;
121
116
 
122
117
  // Instantiate the SigningCoordinator
123
118
  const signingCoordinator = new SigningCoordinator(
@@ -161,7 +156,7 @@ exposeSigningCoordinatorApi(
161
156
  The UI script also creates proxy objects for the exposed instances from the service worker of the **WalletRepository**, **WalletManager** and **ObservableWallet**:
162
157
 
163
158
  ```javascript
164
- ui.ts
159
+ ui.ts;
165
160
 
166
161
  // Consume remote objects.
167
162
  const walletManager = consumeRemoteApi(
@@ -179,7 +174,6 @@ const wallet = consumeRemoteApi(
179
174
  { baseChannel: walletChannel(walletName), properties: observableWalletProperties },
180
175
  { logger, runtime }
181
176
  );
182
-
183
177
  ```
184
178
 
185
179
  The **consumeRemoteApi**, **walletManagerChannel**, **repositoryChannel** and **walletChannel** are all utility functions exported from the web-extension package.
@@ -189,12 +183,15 @@ The **consumeRemoteApi**, **walletManagerChannel**, **repositoryChannel** and **
189
183
  In the service worker the application instantiates the **WalletRepository** and **WalletManager** and exposes them via the web-extension messaging system:
190
184
 
191
185
  ```javascript
192
- serviceWorker.ts
186
+ serviceWorker.ts;
193
187
 
194
- const walletRepository = new WalletRepository<Metadata>({
195
- logger,
196
- store: new storage.InMemoryCollectionStore()
197
- });
188
+ const walletRepository =
189
+ new WalletRepository() <
190
+ Metadata >
191
+ {
192
+ logger,
193
+ store: new storage.InMemoryCollectionStore()
194
+ };
198
195
 
199
196
  const signingCoordinatorApi = consumeRemoteApi(
200
197
  {
@@ -204,9 +201,10 @@ const signingCoordinatorApi = consumeRemoteApi(
204
201
  dependencies
205
202
  );
206
203
 
207
-
208
- const walletManager = new WalletManager<Metadata>(
209
- { name: walletName },
204
+ const walletManager =
205
+ new WalletManager() <
206
+ Metadata >
207
+ ({ name: walletName },
210
208
  {
211
209
  logger,
212
210
  managerStorage: WebExtensionStorage.local,
@@ -215,8 +213,7 @@ const walletManager = new WalletManager<Metadata>(
215
213
  storesFactory,
216
214
  walletFactory,
217
215
  walletRepository
218
- }
219
- );
216
+ });
220
217
 
221
218
  exposeApi(
222
219
  {
@@ -258,7 +255,7 @@ This way the UI script can use this proxy object and subscribe to its observable
258
255
 
259
256
  ### WalletManager
260
257
 
261
- The **WalletManager**, residing in the service worker, is responsible for instantiating **ObservableWallets** configured to track the given credentials, network and account (if applicable).
258
+ The **WalletManager**, residing in the service worker, is responsible for instantiating **ObservableWallets** configured to track the given credentials, network and account (if applicable).
262
259
 
263
260
  When the UI scripts triggers a wallet switch, either by switching networks, accounts or even wallet credentials entirely, the **WalletManager** retrieves the requested wallet data from the **WalletRepository**, builds a new **Witnesser** using the **SigningCoordinator** (which is a proxy object from the UI script) and creates the new **ObservableWallet** instance, this new active wallet is emitted via the **activeWallet$** observable:
264
261
 
@@ -2,7 +2,7 @@ import { MessengerDependencies } from '../messaging';
2
2
  export interface ConsumeKeyAgentProps {
3
3
  walletName: string;
4
4
  }
5
- export declare const consumeKeyAgent: ({ walletName }: ConsumeKeyAgentProps, dependencies: MessengerDependencies) => Pick<import("@cardano-sdk/key-management").KeyAgent, "deriveAddress" | "derivePublicKey" | "signBlob" | "signTransaction"> & {
5
+ export declare const consumeKeyAgent: ({ walletName }: ConsumeKeyAgentProps, dependencies: MessengerDependencies) => Pick<import("@cardano-sdk/key-management").KeyAgent, "signTransaction" | "deriveAddress" | "derivePublicKey" | "signBlob"> & {
6
6
  getChainId(): Promise<import("@cardano-sdk/core/dist/cjs/Cardano").ChainId>;
7
7
  getBip32Ed25519(): Promise<import("@cardano-sdk/crypto").Bip32Ed25519>;
8
8
  getExtendedAccountPublicKey(): Promise<import("@cardano-sdk/crypto").Bip32PublicKeyHex>;
@@ -1 +1 @@
1
- {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/observableWallet/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAyB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,eAAO,MAAM,uBAAuB,eAAgB,MAAM,WAAqB,CAAC;AAEhF,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,CAAC,aAAa,CA+BtE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAqCjF,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,CAAC,gBAAgB,CA6D5E,CAAC;AAGF,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAQtF,CAAC"}
1
+ {"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/observableWallet/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,mBAAmB,EAAyB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,eAAO,MAAM,uBAAuB,eAAgB,MAAM,WAAqB,CAAC;AAEhF,eAAO,MAAM,uBAAuB,EAAE,mBAAmB,CAAC,aAAa,CA+BtE,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,mBAAmB,CAAC,IAAI,CAAC,SAAS,EAAE,WAAW,CAAC,CAyCjF,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,CAAC,gBAAgB,CA8D5E,CAAC;AAGF,eAAO,MAAM,0BAA0B,EAAE,mBAAmB,CAAC,gBAAgB,CAAC,GAAG,EAAE,GAAG,CAAC,CAQtF,CAAC"}
@@ -52,6 +52,10 @@ exports.txBuilderProperties = {
52
52
  getApiProperties: () => exports.outputBuilderProperties,
53
53
  propType: messaging_1.RemoteApiPropertyType.ApiFactory
54
54
  },
55
+ delegateFirstStakeCredential: {
56
+ getApiProperties: () => exports.txBuilderProperties,
57
+ propType: messaging_1.RemoteApiPropertyType.ApiFactory
58
+ },
55
59
  delegatePortfolio: {
56
60
  getApiProperties: () => exports.txBuilderProperties,
57
61
  propType: messaging_1.RemoteApiPropertyType.ApiFactory
@@ -125,6 +129,7 @@ exports.observableWalletProperties = {
125
129
  inFlight$: messaging_1.RemoteApiPropertyType.HotObservable,
126
130
  onChain$: messaging_1.RemoteApiPropertyType.HotObservable,
127
131
  pending$: messaging_1.RemoteApiPropertyType.HotObservable,
132
+ signed$: messaging_1.RemoteApiPropertyType.HotObservable,
128
133
  submitting$: messaging_1.RemoteApiPropertyType.HotObservable
129
134
  },
130
135
  rollback$: messaging_1.RemoteApiPropertyType.HotObservable
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/observableWallet/util.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sourceRoot":"","sources":["../../../src/observableWallet/util.ts"],"names":[],"mappings":"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"}