@ultraos/wallet-sdk 0.1.0 → 0.2.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.
package/README.md CHANGED
@@ -55,6 +55,7 @@ You can pass options during initialization:
55
55
  ```ts
56
56
  new UltraWalletSDK({
57
57
  environment: 'testnet', // or 'mainnet', or provide custom URL
58
+ provider: 'web', // or 'extension', use a specific provider independetly of auto-detection
58
59
  });
59
60
  ```
60
61
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ultraos/wallet-sdk",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "homepage": "https://developers.ultra.io",
5
5
  "dependencies": {
6
6
  "json-rpc-2.0": "^1.7.0",
@@ -9,7 +9,7 @@ export var SdkErrorCode;
9
9
  export const SDK_ERROR_MESSAGE = {
10
10
  [SdkErrorCode.USER_REJECTED_REQUEST]: 'The user rejected the request.',
11
11
  [SdkErrorCode.WALLET_HANDSHAKE_TIMEOUT]: 'Timeout to connect with the web wallet.',
12
- [SdkErrorCode.WALLET_WINDOW_UNAVAILABLE]: 'The Web Wallet is not available.',
12
+ [SdkErrorCode.WALLET_WINDOW_UNAVAILABLE]: 'Wallet window blocked by browser or failed to open.',
13
13
  [SdkErrorCode.REQUESTED_RESOURCE_NOT_AVAILABLE]: 'Requested resource not available.',
14
14
  [SdkErrorCode.UNKNOWN_ERROR]: 'Unknown error occurred.',
15
15
  };
@@ -1 +1 @@
1
- {"version":3,"file":"error-enum.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/error-enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,oFAA4B,CAAA;IAC5B,0FAA+B,CAAA;IAC/B,4FAAgC,CAAA;IAChC,2GAAwC,CAAA;IACxC,sEAAsB,CAAA;AACxB,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,gCAAgC;IACtE,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE,yCAAyC;IAClF,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,kCAAkC;IAC5E,CAAC,YAAY,CAAC,gCAAgC,CAAC,EAAE,mCAAmC;IACpF,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,yBAAyB;CACxD,CAAC","sourcesContent":["export enum SdkErrorCode {\n USER_REJECTED_REQUEST = 4001,\n WALLET_HANDSHAKE_TIMEOUT = 4300,\n WALLET_WINDOW_UNAVAILABLE = 4301,\n REQUESTED_RESOURCE_NOT_AVAILABLE = 32002,\n UNKNOWN_ERROR = -32604,\n}\n\nexport const SDK_ERROR_MESSAGE: { [key in SdkErrorCode]: string } = {\n [SdkErrorCode.USER_REJECTED_REQUEST]: 'The user rejected the request.',\n [SdkErrorCode.WALLET_HANDSHAKE_TIMEOUT]: 'Timeout to connect with the web wallet.',\n [SdkErrorCode.WALLET_WINDOW_UNAVAILABLE]: 'The Web Wallet is not available.',\n [SdkErrorCode.REQUESTED_RESOURCE_NOT_AVAILABLE]: 'Requested resource not available.',\n [SdkErrorCode.UNKNOWN_ERROR]: 'Unknown error occurred.',\n};\n"]}
1
+ {"version":3,"file":"error-enum.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/error-enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,YAMX;AAND,WAAY,YAAY;IACtB,oFAA4B,CAAA;IAC5B,0FAA+B,CAAA;IAC/B,4FAAgC,CAAA;IAChC,2GAAwC,CAAA;IACxC,sEAAsB,CAAA;AACxB,CAAC,EANW,YAAY,KAAZ,YAAY,QAMvB;AAED,MAAM,CAAC,MAAM,iBAAiB,GAAsC;IAClE,CAAC,YAAY,CAAC,qBAAqB,CAAC,EAAE,gCAAgC;IACtE,CAAC,YAAY,CAAC,wBAAwB,CAAC,EAAE,yCAAyC;IAClF,CAAC,YAAY,CAAC,yBAAyB,CAAC,EAAE,qDAAqD;IAC/F,CAAC,YAAY,CAAC,gCAAgC,CAAC,EAAE,mCAAmC;IACpF,CAAC,YAAY,CAAC,aAAa,CAAC,EAAE,yBAAyB;CACxD,CAAC","sourcesContent":["export enum SdkErrorCode {\n USER_REJECTED_REQUEST = 4001,\n WALLET_HANDSHAKE_TIMEOUT = 4300,\n WALLET_WINDOW_UNAVAILABLE = 4301,\n REQUESTED_RESOURCE_NOT_AVAILABLE = 32002,\n UNKNOWN_ERROR = -32604,\n}\n\nexport const SDK_ERROR_MESSAGE: { [key in SdkErrorCode]: string } = {\n [SdkErrorCode.USER_REJECTED_REQUEST]: 'The user rejected the request.',\n [SdkErrorCode.WALLET_HANDSHAKE_TIMEOUT]: 'Timeout to connect with the web wallet.',\n [SdkErrorCode.WALLET_WINDOW_UNAVAILABLE]: 'Wallet window blocked by browser or failed to open.',\n [SdkErrorCode.REQUESTED_RESOURCE_NOT_AVAILABLE]: 'Requested resource not available.',\n [SdkErrorCode.UNKNOWN_ERROR]: 'Unknown error occurred.',\n};\n"]}
@@ -3,8 +3,11 @@
3
3
  * Used primarily when falling back to the Web Wallet if no Ultra extension is available.
4
4
  *
5
5
  * @property {('mainnet' | 'testnet' | string)} [environment] - Target environment; defaults to 'mainnet' if unspecified.
6
+ * @property {'web' | 'extension'} [provider] - Specifies the type of provider being used.
6
7
  */
7
8
  export interface UltraWalletSdkOptions {
8
9
  environment?: 'mainnet' | 'testnet' | string;
10
+ provider?: UltraWalletSdkProvider;
9
11
  }
12
+ export type UltraWalletSdkProvider = 'web' | 'extension';
10
13
  //# sourceMappingURL=wallet-sdk-options.interface.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-sdk-options.interface.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/wallet-sdk-options.interface.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;CAC9C"}
1
+ {"version":3,"file":"wallet-sdk-options.interface.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/wallet-sdk-options.interface.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB;IACpC,WAAW,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IAC7C,QAAQ,CAAC,EAAE,sBAAsB,CAAC;CACnC;AAED,MAAM,MAAM,sBAAsB,GAAG,KAAK,GAAG,WAAW,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"wallet-sdk-options.interface.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/wallet-sdk-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Options to configure the UltraWalletClient behavior.\n * Used primarily when falling back to the Web Wallet if no Ultra extension is available.\n *\n * @property {('mainnet' | 'testnet' | string)} [environment] - Target environment; defaults to 'mainnet' if unspecified.\n */\nexport interface UltraWalletSdkOptions {\n environment?: 'mainnet' | 'testnet' | string;\n}\n"]}
1
+ {"version":3,"file":"wallet-sdk-options.interface.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/wallet-sdk-options.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Options to configure the UltraWalletClient behavior.\n * Used primarily when falling back to the Web Wallet if no Ultra extension is available.\n *\n * @property {('mainnet' | 'testnet' | string)} [environment] - Target environment; defaults to 'mainnet' if unspecified.\n * @property {'web' | 'extension'} [provider] - Specifies the type of provider being used.\n */\nexport interface UltraWalletSdkOptions {\n environment?: 'mainnet' | 'testnet' | string;\n provider?: UltraWalletSdkProvider;\n}\n\nexport type UltraWalletSdkProvider = 'web' | 'extension';\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ultra-wallet-sdk.d.ts","sourceRoot":"","sources":["../../../../../libs/wallet-sdk/src/lib/ultra-wallet-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EAEb,qBAAqB,EACtB,MAAM,cAAc,CAAC;AAItB;;;GAGG;AACH,qBAAa,cAAc;IAUb,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IATrC,OAAO,CAAC,QAAQ,CAAsB;IAEtC;;;;;;OAMG;gBAC0B,OAAO,CAAC,EAAE,qBAAqB;IAI5D,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAItE,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAI7C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAIvE,eAAe,CACb,WAAW,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,EAC5D,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAIhD,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAI5C,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAIpG,OAAO,CAAC,qBAAqB;CAO9B"}
1
+ {"version":3,"file":"ultra-wallet-sdk.d.ts","sourceRoot":"","sources":["../../../../../libs/wallet-sdk/src/lib/ultra-wallet-sdk.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,qBAAqB,EACrB,aAAa,EAEb,qBAAqB,EAEtB,MAAM,cAAc,CAAC;AAItB;;;GAGG;AACH,qBAAa,cAAc;IAUb,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IATrC,OAAO,CAAC,QAAQ,CAAsB;IAEtC;;;;;;OAMG;gBAC0B,OAAO,CAAC,EAAE,qBAAqB;IAI5D,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAItE,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAI7C,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC;IAIvE,eAAe,CACb,WAAW,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,EAC5D,OAAO,CAAC,EAAE,sBAAsB,GAC/B,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IAIhD,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IAI5C,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAIpG,OAAO,CAAC,qBAAqB;CAY9B"}
@@ -35,12 +35,15 @@ export class UltraWalletSDK {
35
35
  return this.provider.purchaseItem(itemType, itemId);
36
36
  }
37
37
  resolveWalletProvider() {
38
- if (isExtensionAvailable()) {
39
- return new ExtensionProvider();
38
+ const requestedProvider = this.options?.provider;
39
+ if (requestedProvider === 'extension') {
40
+ return new ExtensionProvider(this.options);
40
41
  }
41
- else {
42
+ if (requestedProvider === 'web') {
42
43
  return new WebProvider(this.options);
43
44
  }
45
+ const extensionAvailable = isExtensionAvailable();
46
+ return extensionAvailable ? new ExtensionProvider(this.options) : new WebProvider(this.options);
44
47
  }
45
48
  }
46
49
  //# sourceMappingURL=ultra-wallet-sdk.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ultra-wallet-sdk.js","sourceRoot":"","sources":["../../../../../libs/wallet-sdk/src/lib/ultra-wallet-sdk.ts"],"names":[],"mappings":"AAaA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;GAGG;AACH,MAAM,OAAO,cAAc;IAGzB;;;;;;OAMG;IACH,YAA6B,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;QAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,MAAsB;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe,CACb,WAA4D,EAC5D,OAAgC;QAEhC,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,QAA0B,EAAE,MAAc;QACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAEO,qBAAqB;QAC3B,IAAI,oBAAoB,EAAE,EAAE,CAAC;YAC3B,OAAO,IAAI,iBAAiB,EAAE,CAAC;QACjC,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;CACF","sourcesContent":["import {\n BlockchainTransaction,\n ConnectParams,\n ConnectResult,\n PurchaseItemResult,\n PurchaseItemType,\n SignMessageResult,\n SignTransactionOptions,\n SignTransactionResult,\n UltraResponse,\n UltraWalletProvider,\n UltraWalletSdkOptions,\n} from './interfaces';\nimport { ExtensionProvider, WebProvider } from './providers';\nimport { isExtensionAvailable } from './utils/detection';\n\n/**\n * UltraWalletClient acts as a Facade for interacting with the Ultra Wallet.\n * It provides a unified API regardless of the underlying provider implementation (Extension or Web).\n */\nexport class UltraWalletSDK {\n private provider: UltraWalletProvider;\n\n /**\n * Constructs an UltraWalletClient instance.\n * If the Ultra Wallet Extension is available (window.ultra), it will be used automatically.\n * If the Extension is not available, the Web Wallet provider will be initialized using the given network options.\n *\n * @param {UltraWalletSdkOptions} [options] - Configuration options for the Web Wallet fallback (environment or custom URL).\n */\n constructor(private readonly options?: UltraWalletSdkOptions) {\n this.provider = this.resolveWalletProvider();\n }\n\n connect(params?: ConnectParams): Promise<UltraResponse<ConnectResult>> {\n return this.provider.connect(params);\n }\n\n disconnect(): Promise<UltraResponse<boolean>> {\n return this.provider.disconnect();\n }\n\n signMessage(message: string): Promise<UltraResponse<SignMessageResult>> {\n return this.provider.signMessage(message);\n }\n\n signTransaction(\n transaction: BlockchainTransaction | BlockchainTransaction[],\n options?: SignTransactionOptions,\n ): Promise<UltraResponse<SignTransactionResult>> {\n return this.provider.signTransaction(transaction, options);\n }\n\n getChainId(): Promise<UltraResponse<string>> {\n return this.provider.getChainId();\n }\n\n purchaseItem(itemType: PurchaseItemType, itemId: string): Promise<UltraResponse<PurchaseItemResult>> {\n return this.provider.purchaseItem(itemType, itemId);\n }\n\n private resolveWalletProvider(): UltraWalletProvider {\n if (isExtensionAvailable()) {\n return new ExtensionProvider();\n } else {\n return new WebProvider(this.options);\n }\n }\n}\n"]}
1
+ {"version":3,"file":"ultra-wallet-sdk.js","sourceRoot":"","sources":["../../../../../libs/wallet-sdk/src/lib/ultra-wallet-sdk.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAEzD;;;GAGG;AACH,MAAM,OAAO,cAAc;IAGzB;;;;;;OAMG;IACH,YAA6B,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;QAC1D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;IAC/C,CAAC;IAED,OAAO,CAAC,MAAsB;QAC5B,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAED,eAAe,CACb,WAA4D,EAC5D,OAAgC;QAEhC,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAC7D,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;IACpC,CAAC;IAED,YAAY,CAAC,QAA0B,EAAE,MAAc;QACrD,OAAO,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAEO,qBAAqB;QAC3B,MAAM,iBAAiB,GAAuC,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC;QACrF,IAAI,iBAAiB,KAAK,WAAW,EAAE,CAAC;YACtC,OAAO,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,iBAAiB,KAAK,KAAK,EAAE,CAAC;YAChC,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACvC,CAAC;QAED,MAAM,kBAAkB,GAAG,oBAAoB,EAAE,CAAC;QAClD,OAAO,kBAAkB,CAAC,CAAC,CAAC,IAAI,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAClG,CAAC;CACF","sourcesContent":["import {\n BlockchainTransaction,\n ConnectParams,\n ConnectResult,\n PurchaseItemResult,\n PurchaseItemType,\n SignMessageResult,\n SignTransactionOptions,\n SignTransactionResult,\n UltraResponse,\n UltraWalletProvider,\n UltraWalletSdkOptions,\n UltraWalletSdkProvider,\n} from './interfaces';\nimport { ExtensionProvider, WebProvider } from './providers';\nimport { isExtensionAvailable } from './utils/detection';\n\n/**\n * UltraWalletClient acts as a Facade for interacting with the Ultra Wallet.\n * It provides a unified API regardless of the underlying provider implementation (Extension or Web).\n */\nexport class UltraWalletSDK {\n private provider: UltraWalletProvider;\n\n /**\n * Constructs an UltraWalletClient instance.\n * If the Ultra Wallet Extension is available (window.ultra), it will be used automatically.\n * If the Extension is not available, the Web Wallet provider will be initialized using the given network options.\n *\n * @param {UltraWalletSdkOptions} [options] - Configuration options for the Web Wallet fallback (environment or custom URL).\n */\n constructor(private readonly options?: UltraWalletSdkOptions) {\n this.provider = this.resolveWalletProvider();\n }\n\n connect(params?: ConnectParams): Promise<UltraResponse<ConnectResult>> {\n return this.provider.connect(params);\n }\n\n disconnect(): Promise<UltraResponse<boolean>> {\n return this.provider.disconnect();\n }\n\n signMessage(message: string): Promise<UltraResponse<SignMessageResult>> {\n return this.provider.signMessage(message);\n }\n\n signTransaction(\n transaction: BlockchainTransaction | BlockchainTransaction[],\n options?: SignTransactionOptions,\n ): Promise<UltraResponse<SignTransactionResult>> {\n return this.provider.signTransaction(transaction, options);\n }\n\n getChainId(): Promise<UltraResponse<string>> {\n return this.provider.getChainId();\n }\n\n purchaseItem(itemType: PurchaseItemType, itemId: string): Promise<UltraResponse<PurchaseItemResult>> {\n return this.provider.purchaseItem(itemType, itemId);\n }\n\n private resolveWalletProvider(): UltraWalletProvider {\n const requestedProvider: UltraWalletSdkProvider | undefined = this.options?.provider;\n if (requestedProvider === 'extension') {\n return new ExtensionProvider(this.options);\n }\n if (requestedProvider === 'web') {\n return new WebProvider(this.options);\n }\n\n const extensionAvailable = isExtensionAvailable();\n return extensionAvailable ? new ExtensionProvider(this.options) : new WebProvider(this.options);\n }\n}\n"]}
@@ -1,74 +0,0 @@
1
- # Ultra Wallet SDK
2
-
3
- Ultra Wallet SDK provides an easy-to-use client for interacting with the Ultra blockchain wallet, either through the
4
- browser extension or via a web fallback.
5
-
6
- ## ✨ Features
7
-
8
- - Automatically detects and uses the Ultra Wallet Extension if available.
9
- - Falls back to a Web Wallet if the extension is not installed.
10
- - Connect, sign messages, sign transactions, and initiate purchases with a simple API.
11
- - Environment support: `mainnet`, `testnet`, or custom wallet URLs.
12
-
13
- ## 📦 Installation
14
-
15
- ```bash
16
- npm install @ultraos/wallet-sdk
17
- ```
18
-
19
- or
20
-
21
- ```bash
22
- yarn add @ultraos/wallet-sdk
23
- ```
24
-
25
- ## 🚀 Usage
26
-
27
- ```ts
28
- import { UltraWalletSDK } from '@ultraos/wallet-sdk';
29
-
30
- // Basic initialization (auto-detect extension or fallback to mainnet Web Wallet)
31
- const ultra = new UltraWalletSDK();
32
-
33
- // Optionally initialize with environment configuration
34
- const ultraTestnet = new UltraWalletSDK({ environment: 'testnet' });
35
-
36
- // Connect
37
- await ultra.connect();
38
-
39
- // Sign a message
40
- const signature = await ultra.signMessage('message: Hello, Ultra!');
41
-
42
- // Sign a transaction
43
- await ultra.signTransaction({
44
- contract: 'eosio.token',
45
- action: 'transfer',
46
- data: { from: 'user', to: 'receiver', quantity: '1.00000000 UOS', memo: '' },
47
- authorizations: ['user@active'],
48
- });
49
- ```
50
-
51
- ## ⚙️ Configuration
52
-
53
- You can pass options during initialization:
54
-
55
- ```ts
56
- new UltraWalletSDK({
57
- environment: 'testnet', // or 'mainnet', or provide custom URL
58
- });
59
- ```
60
-
61
- ## 📚 API
62
-
63
- ### Methods
64
-
65
- - `connect(): Promise<ConnectResult>`
66
- - `disconnect(): Promise<void>`
67
- - `signMessage(message: string): Promise<string>`
68
- - `signTransaction(transaction: BlockchainTransaction | BlockchainTransaction[]): Promise<SignTransactionResult>`
69
- - `getChainId(): Promise<string>`
70
- - `purchaseItem(itemType: PurchaseItemType, itemId: string): Promise<PurchaseItemResult>`
71
-
72
- ---
73
-
74
- Tests are run with [Jest](https://jestjs.io).