@1sat/wallet-remote 0.0.17 → 0.0.18

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.
@@ -1,6 +1,23 @@
1
1
  import type { OneSatServices } from '@1sat/client';
2
- import type { PrivateKey } from '@bsv/sdk';
3
- import { Wallet, WalletStorageManager } from '@bsv/wallet-toolbox/out/src/index.client.js';
2
+ import { type IPermissionStore, PermissionLedgerAdapter, type PermissionPromptHandler } from '@1sat/wallet';
3
+ import type { PrivateKey, WalletInterface } from '@bsv/sdk';
4
+ import { type PermissionsManagerConfig, Wallet, WalletStorageManager } from '@bsv/wallet-toolbox/out/src/index.client.js';
5
+ /**
6
+ * BRC-100 permission configuration for `createRemoteWallet`.
7
+ *
8
+ * Remote wallets typically serve a trusted admin originator only; `prompt`
9
+ * is required but may be a throwing/auto-deny stub if no external
10
+ * originator reaches the wallet.
11
+ */
12
+ export interface RemoteWalletPermissionsOptions {
13
+ adminOriginator: string;
14
+ prompt: PermissionPromptHandler;
15
+ /** Defaults to `InMemoryPermissionStore`. */
16
+ permissionStore?: IPermissionStore;
17
+ permissionsConfig?: Partial<PermissionsManagerConfig>;
18
+ }
19
+ /** See `@1sat/wallet-browser` for the field-by-field documentation. */
20
+ export declare const DEFAULT_PERMISSIONS_CONFIG: PermissionsManagerConfig;
4
21
  export interface RemoteWalletConfig {
5
22
  privateKey: PrivateKey | string;
6
23
  chain: 'main' | 'test';
@@ -11,9 +28,17 @@ export interface RemoteWalletConfig {
11
28
  activeRemote: string;
12
29
  backups?: string[];
13
30
  connectionTimeout?: number;
31
+ /**
32
+ * When set, wraps the wallet with `WalletPermissionsManager` + a
33
+ * `PermissionLedgerAdapter`. Omit to get the unwrapped `Wallet` (callers
34
+ * can still wrap WPM themselves for the legacy on-chain grant flow).
35
+ */
36
+ permissions?: RemoteWalletPermissionsOptions;
14
37
  }
15
38
  export interface RemoteWalletResult {
16
- wallet: Wallet;
39
+ wallet: WalletInterface;
40
+ baseWallet?: Wallet;
41
+ adapter?: PermissionLedgerAdapter;
17
42
  services: OneSatServices;
18
43
  destroy: () => Promise<void>;
19
44
  storage: WalletStorageManager;
@@ -1 +1 @@
1
- {"version":3,"file":"createRemoteWallet.d.ts","sourceRoot":"","sources":["../src/createRemoteWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAElD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAC1C,OAAO,EAIN,MAAM,EACN,oBAAoB,EACpB,MAAM,6CAA6C,CAAA;AAEpD,MAAM,WAAW,kBAAkB;IAClC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAA;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAC1B;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,QAAQ,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7C;AAED,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,kBAAkB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAiB7B"}
1
+ {"version":3,"file":"createRemoteWallet.d.ts","sourceRoot":"","sources":["../src/createRemoteWallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,cAAc,CAAA;AAClD,OAAO,EACN,KAAK,gBAAgB,EAErB,uBAAuB,EACvB,KAAK,uBAAuB,EAE5B,MAAM,cAAc,CAAA;AACrB,OAAO,KAAK,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,UAAU,CAAA;AAC3D,OAAO,EACN,KAAK,wBAAwB,EAI7B,MAAM,EAEN,oBAAoB,EACpB,MAAM,6CAA6C,CAAA;AAEpD;;;;;;GAMG;AACH,MAAM,WAAW,8BAA8B;IAC9C,eAAe,EAAE,MAAM,CAAA;IACvB,MAAM,EAAE,uBAAuB,CAAA;IAC/B,6CAA6C;IAC7C,eAAe,CAAC,EAAE,gBAAgB,CAAA;IAClC,iBAAiB,CAAC,EAAE,OAAO,CAAC,wBAAwB,CAAC,CAAA;CACrD;AAED,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,EAAE,wBAqBxC,CAAA;AAED,MAAM,WAAW,kBAAkB;IAClC,UAAU,EAAE,UAAU,GAAG,MAAM,CAAA;IAC/B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;IACtB,QAAQ,CAAC,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC7C,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B;;;;OAIG;IACH,WAAW,CAAC,EAAE,8BAA8B,CAAA;CAC5C;AAED,MAAM,WAAW,kBAAkB;IAClC,MAAM,EAAE,eAAe,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,OAAO,CAAC,EAAE,uBAAuB,CAAA;IACjC,QAAQ,EAAE,cAAc,CAAA;IACxB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;IAC5B,OAAO,EAAE,oBAAoB,CAAA;IAC7B,QAAQ,EAAE;QAAE,KAAK,EAAE,QAAQ,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAA;IAC5C,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7C;AAED,wBAAsB,kBAAkB,CACvC,MAAM,EAAE,kBAAkB,GACxB,OAAO,CAAC,kBAAkB,CAAC,CAgD7B"}
@@ -1,5 +1,28 @@
1
- import { createWalletCore } from '@1sat/wallet';
2
- import { Services, StorageClient, StorageProvider, Wallet, WalletStorageManager, } from '@bsv/wallet-toolbox/out/src/index.client.js';
1
+ import { InMemoryPermissionStore, PermissionLedgerAdapter, createWalletCore, } from '@1sat/wallet';
2
+ import { Services, StorageClient, StorageProvider, Wallet, WalletPermissionsManager, WalletStorageManager, } from '@bsv/wallet-toolbox/out/src/index.client.js';
3
+ /** See `@1sat/wallet-browser` for the field-by-field documentation. */
4
+ export const DEFAULT_PERMISSIONS_CONFIG = {
5
+ seekProtocolPermissionsForSigning: true,
6
+ seekProtocolPermissionsForEncrypting: true,
7
+ seekProtocolPermissionsForHMAC: true,
8
+ seekPermissionsForKeyLinkageRevelation: true,
9
+ seekPermissionsForPublicKeyRevelation: false,
10
+ seekPermissionsForIdentityKeyRevelation: true,
11
+ seekPermissionsForIdentityResolution: true,
12
+ seekBasketInsertionPermissions: true,
13
+ seekBasketRemovalPermissions: true,
14
+ seekBasketListingPermissions: false,
15
+ seekPermissionWhenApplyingActionLabels: false,
16
+ seekPermissionWhenListingActionsByLabel: false,
17
+ seekCertificateDisclosurePermissions: true,
18
+ seekCertificateAcquisitionPermissions: true,
19
+ seekCertificateRelinquishmentPermissions: true,
20
+ seekCertificateListingPermissions: false,
21
+ encryptWalletMetadata: true,
22
+ seekSpendingPermissions: true,
23
+ seekGroupedPermission: true,
24
+ differentiatePrivilegedOperations: true,
25
+ };
3
26
  export async function createRemoteWallet(config) {
4
27
  const core = await createWalletCore(config, undefined, {
5
28
  Services,
@@ -8,10 +31,34 @@ export async function createRemoteWallet(config) {
8
31
  Wallet,
9
32
  WalletStorageManager,
10
33
  });
34
+ const baseWallet = core.wallet;
35
+ let wallet = baseWallet;
36
+ let adapter;
37
+ if (config.permissions) {
38
+ const permissionsConfig = {
39
+ ...DEFAULT_PERMISSIONS_CONFIG,
40
+ ...(config.permissions.permissionsConfig ?? {}),
41
+ };
42
+ const manager = new WalletPermissionsManager(baseWallet, config.permissions.adminOriginator, permissionsConfig);
43
+ const store = config.permissions.permissionStore ?? new InMemoryPermissionStore();
44
+ adapter = new PermissionLedgerAdapter({
45
+ wallet: manager,
46
+ store,
47
+ prompt: config.permissions.prompt,
48
+ });
49
+ wallet = manager;
50
+ }
51
+ const destroy = async () => {
52
+ if (adapter)
53
+ adapter.dispose();
54
+ await core.destroy();
55
+ };
11
56
  return {
12
- wallet: core.wallet,
57
+ wallet,
58
+ baseWallet: config.permissions ? baseWallet : undefined,
59
+ adapter,
13
60
  services: core.services,
14
- destroy: core.destroy,
61
+ destroy,
15
62
  storage: core.storage,
16
63
  feeModel: core.feeModel,
17
64
  migrateRemote: core.migrateRemote,
@@ -1 +1 @@
1
- {"version":3,"file":"createRemoteWallet.js","sourceRoot":"","sources":["../src/createRemoteWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAA;AAE/C,OAAO,EACN,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,oBAAoB,GACpB,MAAM,6CAA6C,CAAA;AAoBpD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,MAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE;QACtD,QAAQ;QACR,aAAa;QACb,eAAe;QACf,MAAM;QACN,oBAAoB;KACpB,CAAC,CAAA;IAEF,OAAO;QACN,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa,EAAE,IAAI,CAAC,aAAa;KACjC,CAAA;AACF,CAAC"}
1
+ {"version":3,"file":"createRemoteWallet.js","sourceRoot":"","sources":["../src/createRemoteWallet.ts"],"names":[],"mappings":"AACA,OAAO,EAEN,uBAAuB,EACvB,uBAAuB,EAEvB,gBAAgB,GAChB,MAAM,cAAc,CAAA;AAErB,OAAO,EAEN,QAAQ,EACR,aAAa,EACb,eAAe,EACf,MAAM,EACN,wBAAwB,EACxB,oBAAoB,GACpB,MAAM,6CAA6C,CAAA;AAiBpD,uEAAuE;AACvE,MAAM,CAAC,MAAM,0BAA0B,GAA6B;IACnE,iCAAiC,EAAE,IAAI;IACvC,oCAAoC,EAAE,IAAI;IAC1C,8BAA8B,EAAE,IAAI;IACpC,sCAAsC,EAAE,IAAI;IAC5C,qCAAqC,EAAE,KAAK;IAC5C,uCAAuC,EAAE,IAAI;IAC7C,oCAAoC,EAAE,IAAI;IAC1C,8BAA8B,EAAE,IAAI;IACpC,4BAA4B,EAAE,IAAI;IAClC,4BAA4B,EAAE,KAAK;IACnC,sCAAsC,EAAE,KAAK;IAC7C,uCAAuC,EAAE,KAAK;IAC9C,oCAAoC,EAAE,IAAI;IAC1C,qCAAqC,EAAE,IAAI;IAC3C,wCAAwC,EAAE,IAAI;IAC9C,iCAAiC,EAAE,KAAK;IACxC,qBAAqB,EAAE,IAAI;IAC3B,uBAAuB,EAAE,IAAI;IAC7B,qBAAqB,EAAE,IAAI;IAC3B,iCAAiC,EAAE,IAAI;CACvC,CAAA;AA4BD,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACvC,MAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,gBAAgB,CAAC,MAAM,EAAE,SAAS,EAAE;QACtD,QAAQ;QACR,aAAa;QACb,eAAe;QACf,MAAM;QACN,oBAAoB;KACpB,CAAC,CAAA;IAEF,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAA;IAC9B,IAAI,MAAM,GAAoB,UAAU,CAAA;IACxC,IAAI,OAA4C,CAAA;IAEhD,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,MAAM,iBAAiB,GAA6B;YACnD,GAAG,0BAA0B;YAC7B,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,iBAAiB,IAAI,EAAE,CAAC;SAC/C,CAAA;QACD,MAAM,OAAO,GAAG,IAAI,wBAAwB,CAC3C,UAAU,EACV,MAAM,CAAC,WAAW,CAAC,eAAe,EAClC,iBAAiB,CACjB,CAAA;QACD,MAAM,KAAK,GACV,MAAM,CAAC,WAAW,CAAC,eAAe,IAAI,IAAI,uBAAuB,EAAE,CAAA;QACpE,OAAO,GAAG,IAAI,uBAAuB,CAAC;YACrC,MAAM,EAAE,OAAO;YACf,KAAK;YACL,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM;SACjC,CAAC,CAAA;QACF,MAAM,GAAG,OAAO,CAAA;IACjB,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,IAAmB,EAAE;QACzC,IAAI,OAAO;YAAE,OAAO,CAAC,OAAO,EAAE,CAAA;QAC9B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAA;IACrB,CAAC,CAAA;IAED,OAAO;QACN,MAAM;QACN,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;QACvD,OAAO;QACP,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,OAAO;QACP,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,aAAa,EAAE,IAAI,CAAC,aAAa;KACjC,CAAA;AACF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export * from '@1sat/wallet';
2
- export { createRemoteWallet } from './createRemoteWallet';
3
- export type { RemoteWalletConfig, RemoteWalletResult, } from './createRemoteWallet';
4
- export { Services, StorageClient, Wallet, WalletStorageManager, type sdk as walletSdk, } from '@bsv/wallet-toolbox/out/src/index.client.js';
2
+ export { DEFAULT_PERMISSIONS_CONFIG, createRemoteWallet, } from './createRemoteWallet';
3
+ export type { RemoteWalletConfig, RemoteWalletPermissionsOptions, RemoteWalletResult, } from './createRemoteWallet';
4
+ export { Services, StorageClient, Wallet, WalletPermissionsManager, WalletStorageManager, type sdk as walletSdk, } from '@bsv/wallet-toolbox/out/src/index.client.js';
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AACzD,YAAY,EACX,kBAAkB,EAClB,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACN,QAAQ,EACR,aAAa,EACb,MAAM,EACN,oBAAoB,EACpB,KAAK,GAAG,IAAI,SAAS,GACrB,MAAM,6CAA6C,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EACN,0BAA0B,EAC1B,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAC7B,YAAY,EACX,kBAAkB,EAClB,8BAA8B,EAC9B,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAE7B,OAAO,EACN,QAAQ,EACR,aAAa,EACb,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,KAAK,GAAG,IAAI,SAAS,GACrB,MAAM,6CAA6C,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
1
  export * from '@1sat/wallet';
2
- export { createRemoteWallet } from './createRemoteWallet';
3
- export { Services, StorageClient, Wallet, WalletStorageManager, } from '@bsv/wallet-toolbox/out/src/index.client.js';
2
+ export { DEFAULT_PERMISSIONS_CONFIG, createRemoteWallet, } from './createRemoteWallet';
3
+ export { Services, StorageClient, Wallet, WalletPermissionsManager, WalletStorageManager, } from '@bsv/wallet-toolbox/out/src/index.client.js';
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAA;AAMzD,OAAO,EACN,QAAQ,EACR,aAAa,EACb,MAAM,EACN,oBAAoB,GAEpB,MAAM,6CAA6C,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAE5B,OAAO,EACN,0BAA0B,EAC1B,kBAAkB,GAClB,MAAM,sBAAsB,CAAA;AAO7B,OAAO,EACN,QAAQ,EACR,aAAa,EACb,MAAM,EACN,wBAAwB,EACxB,oBAAoB,GAEpB,MAAM,6CAA6C,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@1sat/wallet-remote",
3
- "version": "0.0.17",
3
+ "version": "0.0.18",
4
4
  "description": "Remote-only wallet factory for 1Sat Ordinals SDK",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -28,16 +28,16 @@
28
28
  ],
29
29
  "license": "MIT",
30
30
  "dependencies": {
31
- "@1sat/wallet": "0.0.40"
31
+ "@1sat/wallet": "0.0.41"
32
32
  },
33
33
  "peerDependencies": {
34
- "@1sat/client": "0.0.20",
35
- "@bsv/sdk": "^2.0.6",
36
- "@bsv/wallet-toolbox": "^2.1.8"
34
+ "@1sat/client": "0.0.21",
35
+ "@bsv/sdk": "^2.0.13",
36
+ "@bsv/wallet-toolbox": "^2.1.21"
37
37
  },
38
38
  "devDependencies": {
39
- "@bsv/sdk": "^2.0.6",
40
- "@bsv/wallet-toolbox": "^2.1.8",
39
+ "@bsv/sdk": "^2.0.13",
40
+ "@bsv/wallet-toolbox": "^2.1.21",
41
41
  "typescript": "^5.9.3"
42
42
  }
43
43
  }