@ultraos/wallet-sdk 0.0.3 → 0.0.4
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/dist/libs/wallet-sdk/libs/wallet-sdk/README.md +74 -0
- package/package.json +1 -1
- package/src/index.d.ts +3 -0
- package/src/index.d.ts.map +1 -0
- package/src/index.js +3 -0
- package/src/index.js.map +1 -0
- package/src/lib/common/client-error.d.ts +8 -0
- package/src/lib/common/client-error.d.ts.map +1 -0
- package/src/lib/common/client-error.js +11 -0
- package/src/lib/common/client-error.js.map +1 -0
- package/src/lib/common/client-messenger.d.ts +10 -0
- package/src/lib/common/client-messenger.d.ts.map +1 -0
- package/src/lib/common/client-messenger.js +93 -0
- package/src/lib/common/client-messenger.js.map +1 -0
- package/src/lib/common/window-manager.d.ts +9 -0
- package/src/lib/common/window-manager.d.ts.map +1 -0
- package/src/lib/common/window-manager.js +25 -0
- package/src/lib/common/window-manager.js.map +1 -0
- package/src/lib/config/ultra-wallet-sdk.config.d.ts +16 -0
- package/src/lib/config/ultra-wallet-sdk.config.d.ts.map +1 -0
- package/src/lib/config/ultra-wallet-sdk.config.js +20 -0
- package/src/lib/config/ultra-wallet-sdk.config.js.map +1 -0
- package/src/lib/interfaces/blockchain-transaction.interface.d.ts +22 -0
- package/src/lib/interfaces/blockchain-transaction.interface.d.ts.map +1 -0
- package/src/lib/interfaces/blockchain-transaction.interface.js +2 -0
- package/src/lib/interfaces/blockchain-transaction.interface.js.map +1 -0
- package/src/lib/interfaces/connect-params.interface.d.ts +14 -0
- package/src/lib/interfaces/connect-params.interface.d.ts.map +1 -0
- package/src/lib/interfaces/connect-params.interface.js +2 -0
- package/src/lib/interfaces/connect-params.interface.js.map +1 -0
- package/src/lib/interfaces/error-enum.d.ts +11 -0
- package/src/lib/interfaces/error-enum.d.ts.map +1 -0
- package/src/lib/interfaces/error-enum.js +16 -0
- package/src/lib/interfaces/error-enum.js.map +1 -0
- package/src/lib/interfaces/index.d.ts +9 -0
- package/src/lib/interfaces/index.d.ts.map +1 -0
- package/src/lib/interfaces/index.js +9 -0
- package/src/lib/interfaces/index.js.map +1 -0
- package/src/lib/interfaces/json-rpc-message.interface.d.ts +8 -0
- package/src/lib/interfaces/json-rpc-message.interface.d.ts.map +1 -0
- package/src/lib/interfaces/json-rpc-message.interface.js +2 -0
- package/src/lib/interfaces/json-rpc-message.interface.js.map +1 -0
- package/src/lib/interfaces/purchase-item.interface.d.ts +8 -0
- package/src/lib/interfaces/purchase-item.interface.d.ts.map +1 -0
- package/src/lib/interfaces/purchase-item.interface.js +9 -0
- package/src/lib/interfaces/purchase-item.interface.js.map +1 -0
- package/src/lib/interfaces/wallet-provider-response.interface.d.ts +150 -0
- package/src/lib/interfaces/wallet-provider-response.interface.d.ts.map +1 -0
- package/src/lib/interfaces/wallet-provider-response.interface.js +10 -0
- package/src/lib/interfaces/wallet-provider-response.interface.js.map +1 -0
- package/src/lib/interfaces/wallet-provider.interface.d.ts +41 -0
- package/src/lib/interfaces/wallet-provider.interface.d.ts.map +1 -0
- package/src/lib/interfaces/wallet-provider.interface.js +2 -0
- package/src/lib/interfaces/wallet-provider.interface.js.map +1 -0
- package/src/lib/interfaces/wallet-sdk-options.interface.d.ts +10 -0
- package/src/lib/interfaces/wallet-sdk-options.interface.d.ts.map +1 -0
- package/src/lib/interfaces/wallet-sdk-options.interface.js +2 -0
- package/src/lib/interfaces/wallet-sdk-options.interface.js.map +1 -0
- package/src/lib/providers/extension-provider/extension.provider.d.ts +17 -0
- package/src/lib/providers/extension-provider/extension.provider.d.ts.map +1 -0
- package/src/lib/providers/extension-provider/extension.provider.js +29 -0
- package/src/lib/providers/extension-provider/extension.provider.js.map +1 -0
- package/src/lib/providers/index.d.ts +3 -0
- package/src/lib/providers/index.d.ts.map +1 -0
- package/src/lib/providers/index.js +3 -0
- package/src/lib/providers/index.js.map +1 -0
- package/src/lib/providers/web-provider/web.provider.d.ts +15 -0
- package/src/lib/providers/web-provider/web.provider.d.ts.map +1 -0
- package/src/lib/providers/web-provider/web.provider.js +36 -0
- package/src/lib/providers/web-provider/web.provider.js.map +1 -0
- package/src/lib/ultra-wallet-sdk.d.ts +25 -0
- package/src/lib/ultra-wallet-sdk.d.ts.map +1 -0
- package/src/lib/ultra-wallet-sdk.js +46 -0
- package/src/lib/ultra-wallet-sdk.js.map +1 -0
- package/src/lib/utils/chain-validator.d.ts +2 -0
- package/src/lib/utils/chain-validator.d.ts.map +1 -0
- package/src/lib/utils/chain-validator.js +6 -0
- package/src/lib/utils/chain-validator.js.map +1 -0
- package/src/lib/utils/detection.d.ts +2 -0
- package/src/lib/utils/detection.d.ts.map +1 -0
- package/src/lib/utils/detection.js +4 -0
- package/src/lib/utils/detection.js.map +1 -0
|
@@ -0,0 +1,74 @@
|
|
|
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).
|
package/package.json
CHANGED
package/src/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../libs/wallet-sdk/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC"}
|
package/src/index.js
ADDED
package/src/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/wallet-sdk/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC","sourcesContent":["export * from './lib/interfaces';\nexport * from './lib/ultra-wallet-sdk';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-error.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/common/client-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,YAAY,EAAE,MAAM,eAAe,CAAC;AAEhE,qBAAa,WAAY,SAAQ,KAAK;IAI3B,IAAI,EAAE,YAAY;IAClB,IAAI,CAAC;IAJL,OAAO,EAAE,MAAM,CAAC;gBAGhB,IAAI,EAAE,YAAY,EAClB,IAAI,CAAC,KAAA;CAMf"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { SDK_ERROR_MESSAGE } from '../interfaces';
|
|
2
|
+
export class ClientError extends Error {
|
|
3
|
+
constructor(code, data) {
|
|
4
|
+
super();
|
|
5
|
+
this.code = code;
|
|
6
|
+
this.data = data;
|
|
7
|
+
this.message = SDK_ERROR_MESSAGE[code];
|
|
8
|
+
this.name = this.constructor.name;
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=client-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-error.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/common/client-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAgB,MAAM,eAAe,CAAC;AAEhE,MAAM,OAAO,WAAY,SAAQ,KAAK;IAGpC,YACS,IAAkB,EAClB,IAAK;QAEZ,KAAK,EAAE,CAAC;QAHD,SAAI,GAAJ,IAAI,CAAc;QAClB,SAAI,GAAJ,IAAI,CAAC;QAGZ,IAAI,CAAC,OAAO,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF","sourcesContent":["import { SDK_ERROR_MESSAGE, SdkErrorCode } from '../interfaces';\n\nexport class ClientError extends Error {\n override message: string;\n\n constructor(\n public code: SdkErrorCode,\n public data?,\n ) {\n super();\n this.message = SDK_ERROR_MESSAGE[code];\n this.name = this.constructor.name;\n }\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { UltraResponse } from '../interfaces';
|
|
2
|
+
import { WindowManager } from './window-manager';
|
|
3
|
+
export declare class ClientMessenger {
|
|
4
|
+
private windowManager;
|
|
5
|
+
private rpcClient;
|
|
6
|
+
private pendingRequest;
|
|
7
|
+
constructor(windowManager: WindowManager);
|
|
8
|
+
sendRequest<T>(requestMethod: string, requestParams: object): Promise<UltraResponse<T>>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=client-messenger.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-messenger.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/common/client-messenger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAgD,aAAa,EAAE,MAAM,eAAe,CAAC;AAG5F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AAEjD,qBAAa,eAAe;IAC1B,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,cAAc,CAAS;gBAEnB,aAAa,EAAE,aAAa;IAmBlC,WAAW,CAAC,CAAC,EAAE,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;CA4E9F"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { JSONRPCClient } from 'json-rpc-2.0';
|
|
2
|
+
import UltraWalletSdkConfig from '../config/ultra-wallet-sdk.config';
|
|
3
|
+
import { ResponseStatus, SdkErrorCode } from '../interfaces';
|
|
4
|
+
import { ClientError } from './client-error';
|
|
5
|
+
export class ClientMessenger {
|
|
6
|
+
constructor(windowManager) {
|
|
7
|
+
this.pendingRequest = false;
|
|
8
|
+
this.windowManager = windowManager;
|
|
9
|
+
this.rpcClient = new JSONRPCClient((request) => {
|
|
10
|
+
const walletWindow = this.windowManager.getWalletWindow();
|
|
11
|
+
if (!walletWindow) {
|
|
12
|
+
return Promise.reject(new ClientError(SdkErrorCode.WALLET_WINDOW_UNAVAILABLE));
|
|
13
|
+
}
|
|
14
|
+
walletWindow.postMessage(request, this.windowManager.walletUrl);
|
|
15
|
+
return Promise.resolve();
|
|
16
|
+
});
|
|
17
|
+
window.addEventListener('message', (event) => {
|
|
18
|
+
if (event.origin === this.windowManager.walletUrl && event.data?.jsonrpc === '2.0') {
|
|
19
|
+
this.rpcClient.receive(event.data);
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
async sendRequest(requestMethod, requestParams) {
|
|
24
|
+
if (this.pendingRequest && this.windowManager.getWalletWindow()?.closed === false) {
|
|
25
|
+
const { code, message } = new ClientError(SdkErrorCode.REQUESTED_RESOURCE_NOT_AVAILABLE);
|
|
26
|
+
return Promise.reject({ status: ResponseStatus.ERROR, code, message });
|
|
27
|
+
}
|
|
28
|
+
this.pendingRequest = true;
|
|
29
|
+
this.windowManager.openOrReuseWallet();
|
|
30
|
+
const walletWindow = this.windowManager.getWalletWindow();
|
|
31
|
+
if (!walletWindow) {
|
|
32
|
+
const { code, message } = new ClientError(SdkErrorCode.WALLET_WINDOW_UNAVAILABLE);
|
|
33
|
+
return Promise.reject({ status: ResponseStatus.ERROR, code, message });
|
|
34
|
+
}
|
|
35
|
+
let ready = false;
|
|
36
|
+
let cleanupCalled = false;
|
|
37
|
+
return new Promise((resolve, reject) => {
|
|
38
|
+
const cleanup = () => {
|
|
39
|
+
if (cleanupCalled)
|
|
40
|
+
return;
|
|
41
|
+
cleanupCalled = true;
|
|
42
|
+
this.pendingRequest = false;
|
|
43
|
+
clearTimeout(timeout);
|
|
44
|
+
clearInterval(checkWindowClose);
|
|
45
|
+
window.removeEventListener('message', handleReady);
|
|
46
|
+
walletWindow.close();
|
|
47
|
+
};
|
|
48
|
+
const handleReady = (event) => {
|
|
49
|
+
if (event.origin !== this.windowManager.walletUrl)
|
|
50
|
+
return;
|
|
51
|
+
const msg = event.data;
|
|
52
|
+
if (msg?.jsonrpc === '2.0' && msg.method === 'ready') {
|
|
53
|
+
ready = true;
|
|
54
|
+
window.removeEventListener('message', handleReady);
|
|
55
|
+
Promise.resolve(this.rpcClient.request(requestMethod, requestParams))
|
|
56
|
+
.then((result) => {
|
|
57
|
+
cleanup();
|
|
58
|
+
if (result.status === ResponseStatus.SUCCESS) {
|
|
59
|
+
resolve(result);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
reject(result);
|
|
63
|
+
}
|
|
64
|
+
})
|
|
65
|
+
.catch((error) => {
|
|
66
|
+
cleanup();
|
|
67
|
+
const clientError = new ClientError(SdkErrorCode.UNKNOWN_ERROR, error);
|
|
68
|
+
reject({
|
|
69
|
+
status: ResponseStatus.ERROR,
|
|
70
|
+
...clientError,
|
|
71
|
+
});
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
};
|
|
75
|
+
const timeout = setTimeout(() => {
|
|
76
|
+
if (!ready) {
|
|
77
|
+
cleanup();
|
|
78
|
+
const { code, message } = new ClientError(SdkErrorCode.WALLET_HANDSHAKE_TIMEOUT);
|
|
79
|
+
reject({ status: ResponseStatus.ERROR, code, message });
|
|
80
|
+
}
|
|
81
|
+
}, UltraWalletSdkConfig.handshakeTimeout);
|
|
82
|
+
const checkWindowClose = setInterval(() => {
|
|
83
|
+
if (walletWindow.closed) {
|
|
84
|
+
cleanup();
|
|
85
|
+
const { code, message } = new ClientError(SdkErrorCode.USER_REJECTED_REQUEST);
|
|
86
|
+
reject({ status: ResponseStatus.ERROR, code, message });
|
|
87
|
+
}
|
|
88
|
+
}, UltraWalletSdkConfig.checkWindowInterval);
|
|
89
|
+
window.addEventListener('message', handleReady);
|
|
90
|
+
});
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=client-messenger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client-messenger.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/common/client-messenger.ts"],"names":[],"mappings":"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","sourcesContent":["import { JSONRPCClient } from 'json-rpc-2.0';\n\nimport UltraWalletSdkConfig from '../config/ultra-wallet-sdk.config';\nimport { JsonRpcMessage, ResponseStatus, SdkErrorCode, UltraResponse } from '../interfaces';\n\nimport { ClientError } from './client-error';\nimport { WindowManager } from './window-manager';\n\nexport class ClientMessenger {\n private windowManager: WindowManager;\n private rpcClient: JSONRPCClient;\n private pendingRequest = false;\n\n constructor(windowManager: WindowManager) {\n this.windowManager = windowManager;\n\n this.rpcClient = new JSONRPCClient((request) => {\n const walletWindow = this.windowManager.getWalletWindow();\n if (!walletWindow) {\n return Promise.reject(new ClientError(SdkErrorCode.WALLET_WINDOW_UNAVAILABLE));\n }\n walletWindow.postMessage(request, this.windowManager.walletUrl);\n return Promise.resolve();\n });\n\n window.addEventListener('message', (event) => {\n if (event.origin === this.windowManager.walletUrl && event.data?.jsonrpc === '2.0') {\n this.rpcClient.receive(event.data);\n }\n });\n }\n\n async sendRequest<T>(requestMethod: string, requestParams: object): Promise<UltraResponse<T>> {\n if (this.pendingRequest && this.windowManager.getWalletWindow()?.closed === false) {\n const { code, message } = new ClientError(SdkErrorCode.REQUESTED_RESOURCE_NOT_AVAILABLE);\n return Promise.reject({ status: ResponseStatus.ERROR, code, message });\n }\n\n this.pendingRequest = true;\n\n this.windowManager.openOrReuseWallet();\n\n const walletWindow = this.windowManager.getWalletWindow();\n if (!walletWindow) {\n const { code, message } = new ClientError(SdkErrorCode.WALLET_WINDOW_UNAVAILABLE);\n return Promise.reject({ status: ResponseStatus.ERROR, code, message });\n }\n\n let ready = false;\n let cleanupCalled = false;\n\n return new Promise<UltraResponse<T>>((resolve, reject) => {\n const cleanup = () => {\n if (cleanupCalled) return;\n cleanupCalled = true;\n this.pendingRequest = false;\n clearTimeout(timeout);\n clearInterval(checkWindowClose);\n window.removeEventListener('message', handleReady);\n walletWindow.close();\n };\n\n const handleReady = (event: MessageEvent) => {\n if (event.origin !== this.windowManager.walletUrl) return;\n const msg: JsonRpcMessage = event.data;\n if (msg?.jsonrpc === '2.0' && msg.method === 'ready') {\n ready = true;\n window.removeEventListener('message', handleReady);\n\n Promise.resolve(this.rpcClient.request(requestMethod, requestParams))\n .then((result) => {\n cleanup();\n if (result.status === ResponseStatus.SUCCESS) {\n resolve(result);\n } else {\n reject(result);\n }\n })\n .catch((error) => {\n cleanup();\n const clientError = new ClientError(SdkErrorCode.UNKNOWN_ERROR, error);\n reject({\n status: ResponseStatus.ERROR,\n ...clientError,\n });\n });\n }\n };\n\n const timeout = setTimeout(() => {\n if (!ready) {\n cleanup();\n const { code, message } = new ClientError(SdkErrorCode.WALLET_HANDSHAKE_TIMEOUT);\n reject({ status: ResponseStatus.ERROR, code, message });\n }\n }, UltraWalletSdkConfig.handshakeTimeout);\n\n const checkWindowClose = setInterval(() => {\n if (walletWindow.closed) {\n cleanup();\n const { code, message } = new ClientError(SdkErrorCode.USER_REJECTED_REQUEST);\n reject({ status: ResponseStatus.ERROR, code, message });\n }\n }, UltraWalletSdkConfig.checkWindowInterval);\n\n window.addEventListener('message', handleReady);\n });\n }\n}\n"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export declare class WindowManager {
|
|
2
|
+
private currentWindow;
|
|
3
|
+
private walletWindow;
|
|
4
|
+
readonly walletUrl: string;
|
|
5
|
+
constructor(walletUrl: string);
|
|
6
|
+
openOrReuseWallet(): void;
|
|
7
|
+
getWalletWindow(): Window | null;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=window-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window-manager.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/common/window-manager.ts"],"names":[],"mappings":"AAEA,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAuB;IAC3C,SAAgB,SAAS,EAAE,MAAM,CAAC;gBAEtB,SAAS,EAAE,MAAM;IAK7B,iBAAiB;IAkBjB,eAAe,IAAI,MAAM,GAAG,IAAI;CAGjC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import UltraWalletSdkConfig from '../config/ultra-wallet-sdk.config';
|
|
2
|
+
export class WindowManager {
|
|
3
|
+
constructor(walletUrl) {
|
|
4
|
+
this.walletWindow = null;
|
|
5
|
+
this.currentWindow = window;
|
|
6
|
+
this.walletUrl = walletUrl;
|
|
7
|
+
}
|
|
8
|
+
openOrReuseWallet() {
|
|
9
|
+
if (this.walletWindow == null || this.walletWindow.closed) {
|
|
10
|
+
const height = UltraWalletSdkConfig.height;
|
|
11
|
+
const width = UltraWalletSdkConfig.width;
|
|
12
|
+
const top = this.currentWindow.top;
|
|
13
|
+
const left = this.currentWindow.screenLeft + this.currentWindow.innerWidth - width;
|
|
14
|
+
this.walletWindow = window.open(this.walletUrl, '_blank', `width=${width},height=${height},top=${top},left=${left}`);
|
|
15
|
+
}
|
|
16
|
+
else {
|
|
17
|
+
this.walletWindow.focus();
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
// Provides a reference to the wallet window
|
|
21
|
+
getWalletWindow() {
|
|
22
|
+
return this.walletWindow;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=window-manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"window-manager.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/common/window-manager.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,mCAAmC,CAAC;AAErE,MAAM,OAAO,aAAa;IAKxB,YAAY,SAAiB;QAHrB,iBAAY,GAAkB,IAAI,CAAC;QAIzC,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;QAC5B,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;IAC7B,CAAC;IAED,iBAAiB;QACf,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,CAAC;YAC1D,MAAM,MAAM,GAAG,oBAAoB,CAAC,MAAM,CAAC;YAC3C,MAAM,KAAK,GAAG,oBAAoB,CAAC,KAAK,CAAC;YACzC,MAAM,GAAG,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;YACnC,MAAM,IAAI,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,GAAG,KAAK,CAAC;YAEnF,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAC7B,IAAI,CAAC,SAAS,EACd,QAAQ,EACR,SAAS,KAAK,WAAW,MAAM,QAAQ,GAAG,SAAS,IAAI,EAAE,CAC1D,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,4CAA4C;IAC5C,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;CACF","sourcesContent":["import UltraWalletSdkConfig from '../config/ultra-wallet-sdk.config';\n\nexport class WindowManager {\n private currentWindow: Window;\n private walletWindow: Window | null = null;\n public readonly walletUrl: string;\n\n constructor(walletUrl: string) {\n this.currentWindow = window;\n this.walletUrl = walletUrl;\n }\n\n openOrReuseWallet() {\n if (this.walletWindow == null || this.walletWindow.closed) {\n const height = UltraWalletSdkConfig.height;\n const width = UltraWalletSdkConfig.width;\n const top = this.currentWindow.top;\n const left = this.currentWindow.screenLeft + this.currentWindow.innerWidth - width;\n\n this.walletWindow = window.open(\n this.walletUrl,\n '_blank',\n `width=${width},height=${height},top=${top},left=${left}`,\n );\n } else {\n this.walletWindow.focus();\n }\n }\n\n // Provides a reference to the wallet window\n getWalletWindow(): Window | null {\n return this.walletWindow;\n }\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
interface UltraWalletSdkConfig {
|
|
2
|
+
width: number;
|
|
3
|
+
height: number;
|
|
4
|
+
walletUrls: {
|
|
5
|
+
mainnet: string;
|
|
6
|
+
testnet: string;
|
|
7
|
+
};
|
|
8
|
+
checkWindowInterval: number;
|
|
9
|
+
handshakeTimeout: number;
|
|
10
|
+
networkInfo: Record<'mainnet' | 'testnet', {
|
|
11
|
+
chainId: string;
|
|
12
|
+
}>;
|
|
13
|
+
}
|
|
14
|
+
declare const UltraWalletSdkConfig: UltraWalletSdkConfig;
|
|
15
|
+
export default UltraWalletSdkConfig;
|
|
16
|
+
//# sourceMappingURL=ultra-wallet-sdk.config.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ultra-wallet-sdk.config.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/config/ultra-wallet-sdk.config.ts"],"names":[],"mappings":"AAAA,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE;QACV,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,mBAAmB,EAAE,MAAM,CAAC;IAC5B,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CACjB,SAAS,GAAG,SAAS,EACrB;QACE,OAAO,EAAE,MAAM,CAAC;KACjB,CACF,CAAC;CACH;AAED,QAAA,MAAM,oBAAoB,EAAE,oBAiB1B,CAAC;AAEH,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
const UltraWalletSdkConfig = Object.freeze({
|
|
2
|
+
width: 345,
|
|
3
|
+
height: 610,
|
|
4
|
+
walletUrls: {
|
|
5
|
+
mainnet: 'https://web-wallet.ultra.io',
|
|
6
|
+
testnet: 'https://web-wallet.staging.ultra.io',
|
|
7
|
+
},
|
|
8
|
+
networkInfo: {
|
|
9
|
+
mainnet: {
|
|
10
|
+
chainId: 'a9c481dfbc7d9506dc7e87e9a137c931b0a9303f64fd7a1d08b8230133920097',
|
|
11
|
+
},
|
|
12
|
+
testnet: {
|
|
13
|
+
chainId: '7fc56be645bb76ab9d747b53089f132dcb7681db06f0852cfa03eaf6f7ac80e9',
|
|
14
|
+
},
|
|
15
|
+
},
|
|
16
|
+
checkWindowInterval: 500,
|
|
17
|
+
handshakeTimeout: 10000,
|
|
18
|
+
});
|
|
19
|
+
export default UltraWalletSdkConfig;
|
|
20
|
+
//# sourceMappingURL=ultra-wallet-sdk.config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ultra-wallet-sdk.config.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/config/ultra-wallet-sdk.config.ts"],"names":[],"mappings":"AAiBA,MAAM,oBAAoB,GAAyB,MAAM,CAAC,MAAM,CAAC;IAC/D,KAAK,EAAE,GAAG;IACV,MAAM,EAAE,GAAG;IACX,UAAU,EAAE;QACV,OAAO,EAAE,6BAA6B;QACtC,OAAO,EAAE,qCAAqC;KAC/C;IACD,WAAW,EAAE;QACX,OAAO,EAAE;YACP,OAAO,EAAE,kEAAkE;SAC5E;QACD,OAAO,EAAE;YACP,OAAO,EAAE,kEAAkE;SAC5E;KACF;IACD,mBAAmB,EAAE,GAAG;IACxB,gBAAgB,EAAE,KAAM;CACzB,CAAC,CAAC;AAEH,eAAe,oBAAoB,CAAC","sourcesContent":["interface UltraWalletSdkConfig {\n width: number;\n height: number;\n walletUrls: {\n mainnet: string;\n testnet: string;\n };\n checkWindowInterval: number;\n handshakeTimeout: number;\n networkInfo: Record<\n 'mainnet' | 'testnet',\n {\n chainId: string;\n }\n >;\n}\n\nconst UltraWalletSdkConfig: UltraWalletSdkConfig = Object.freeze({\n width: 345,\n height: 610,\n walletUrls: {\n mainnet: 'https://web-wallet.ultra.io',\n testnet: 'https://web-wallet.staging.ultra.io',\n },\n networkInfo: {\n mainnet: {\n chainId: 'a9c481dfbc7d9506dc7e87e9a137c931b0a9303f64fd7a1d08b8230133920097',\n },\n testnet: {\n chainId: '7fc56be645bb76ab9d747b53089f132dcb7681db06f0852cfa03eaf6f7ac80e9',\n },\n },\n checkWindowInterval: 500,\n handshakeTimeout: 10_000,\n});\n\nexport default UltraWalletSdkConfig;\n"]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Defines the structure of a blockchain transaction request to be signed by the Ultra Wallet.
|
|
3
|
+
*/
|
|
4
|
+
export interface BlockchainTransaction {
|
|
5
|
+
/**
|
|
6
|
+
* The smart contract address or name to interact with.
|
|
7
|
+
*/
|
|
8
|
+
contract: string;
|
|
9
|
+
/**
|
|
10
|
+
* The action or method to call on the contract.
|
|
11
|
+
*/
|
|
12
|
+
action: string;
|
|
13
|
+
/**
|
|
14
|
+
* The data payload for the contract action.
|
|
15
|
+
*/
|
|
16
|
+
data: any;
|
|
17
|
+
/**
|
|
18
|
+
* List of authorizations (account@permission) required for the transaction.
|
|
19
|
+
*/
|
|
20
|
+
authorizations?: string[];
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=blockchain-transaction.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockchain-transaction.interface.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/blockchain-transaction.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IACjB;;OAEG;IACH,MAAM,EAAE,MAAM,CAAC;IACf;;OAEG;IACH,IAAI,EAAE,GAAG,CAAC;IACV;;OAEG;IACH,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blockchain-transaction.interface.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/blockchain-transaction.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Defines the structure of a blockchain transaction request to be signed by the Ultra Wallet.\n */\nexport interface BlockchainTransaction {\n /**\n * The smart contract address or name to interact with.\n */\n contract: string;\n /**\n * The action or method to call on the contract.\n */\n action: string;\n /**\n * The data payload for the contract action.\n */\n data: any;\n /**\n * List of authorizations (account@permission) required for the transaction.\n */\n authorizations?: string[];\n}\n"]}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Optional parameters for establishing a connection with the Ultra Wallet.
|
|
3
|
+
*/
|
|
4
|
+
export interface ConnectParams {
|
|
5
|
+
/**
|
|
6
|
+
* If true, do not prompt the user for permissions; share account info only if Dapp is already trusted.
|
|
7
|
+
*/
|
|
8
|
+
onlyIfTrusted?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Optional referral code to associate with the connection request.
|
|
11
|
+
*/
|
|
12
|
+
referralCode?: string;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=connect-params.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-params.interface.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/connect-params.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connect-params.interface.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/connect-params.interface.ts"],"names":[],"mappings":"","sourcesContent":["/**\n * Optional parameters for establishing a connection with the Ultra Wallet.\n */\nexport interface ConnectParams {\n /**\n * If true, do not prompt the user for permissions; share account info only if Dapp is already trusted.\n */\n onlyIfTrusted?: boolean;\n /**\n * Optional referral code to associate with the connection request.\n */\n referralCode?: string;\n}\n"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare enum SdkErrorCode {
|
|
2
|
+
USER_REJECTED_REQUEST = 4001,
|
|
3
|
+
WALLET_HANDSHAKE_TIMEOUT = 4300,
|
|
4
|
+
WALLET_WINDOW_UNAVAILABLE = 4301,
|
|
5
|
+
REQUESTED_RESOURCE_NOT_AVAILABLE = 32002,
|
|
6
|
+
UNKNOWN_ERROR = -32604
|
|
7
|
+
}
|
|
8
|
+
export declare const SDK_ERROR_MESSAGE: {
|
|
9
|
+
[key in SdkErrorCode]: string;
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=error-enum.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-enum.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/error-enum.ts"],"names":[],"mappings":"AAAA,oBAAY,YAAY;IACtB,qBAAqB,OAAO;IAC5B,wBAAwB,OAAO;IAC/B,yBAAyB,OAAO;IAChC,gCAAgC,QAAQ;IACxC,aAAa,SAAS;CACvB;AAED,eAAO,MAAM,iBAAiB,EAAE;KAAG,GAAG,IAAI,YAAY,GAAG,MAAM;CAM9D,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export var SdkErrorCode;
|
|
2
|
+
(function (SdkErrorCode) {
|
|
3
|
+
SdkErrorCode[SdkErrorCode["USER_REJECTED_REQUEST"] = 4001] = "USER_REJECTED_REQUEST";
|
|
4
|
+
SdkErrorCode[SdkErrorCode["WALLET_HANDSHAKE_TIMEOUT"] = 4300] = "WALLET_HANDSHAKE_TIMEOUT";
|
|
5
|
+
SdkErrorCode[SdkErrorCode["WALLET_WINDOW_UNAVAILABLE"] = 4301] = "WALLET_WINDOW_UNAVAILABLE";
|
|
6
|
+
SdkErrorCode[SdkErrorCode["REQUESTED_RESOURCE_NOT_AVAILABLE"] = 32002] = "REQUESTED_RESOURCE_NOT_AVAILABLE";
|
|
7
|
+
SdkErrorCode[SdkErrorCode["UNKNOWN_ERROR"] = -32604] = "UNKNOWN_ERROR";
|
|
8
|
+
})(SdkErrorCode || (SdkErrorCode = {}));
|
|
9
|
+
export const SDK_ERROR_MESSAGE = {
|
|
10
|
+
[SdkErrorCode.USER_REJECTED_REQUEST]: 'The user rejected the request.',
|
|
11
|
+
[SdkErrorCode.WALLET_HANDSHAKE_TIMEOUT]: 'Timeout to connect with the web wallet.',
|
|
12
|
+
[SdkErrorCode.WALLET_WINDOW_UNAVAILABLE]: 'The Web Wallet is not available.',
|
|
13
|
+
[SdkErrorCode.REQUESTED_RESOURCE_NOT_AVAILABLE]: 'Requested resource not available.',
|
|
14
|
+
[SdkErrorCode.UNKNOWN_ERROR]: 'Unknown error occurred.',
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=error-enum.js.map
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './blockchain-transaction.interface';
|
|
2
|
+
export * from './connect-params.interface';
|
|
3
|
+
export * from './error-enum';
|
|
4
|
+
export * from './json-rpc-message.interface';
|
|
5
|
+
export * from './purchase-item.interface';
|
|
6
|
+
export * from './wallet-provider.interface';
|
|
7
|
+
export * from './wallet-provider-response.interface';
|
|
8
|
+
export * from './wallet-sdk-options.interface';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './blockchain-transaction.interface';
|
|
2
|
+
export * from './connect-params.interface';
|
|
3
|
+
export * from './error-enum';
|
|
4
|
+
export * from './json-rpc-message.interface';
|
|
5
|
+
export * from './purchase-item.interface';
|
|
6
|
+
export * from './wallet-provider.interface';
|
|
7
|
+
export * from './wallet-provider-response.interface';
|
|
8
|
+
export * from './wallet-sdk-options.interface';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,oCAAoC,CAAC;AACnD,cAAc,4BAA4B,CAAC;AAC3C,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AACrD,cAAc,gCAAgC,CAAC","sourcesContent":["export * from './blockchain-transaction.interface';\nexport * from './connect-params.interface';\nexport * from './error-enum';\nexport * from './json-rpc-message.interface';\nexport * from './purchase-item.interface';\nexport * from './wallet-provider.interface';\nexport * from './wallet-provider-response.interface';\nexport * from './wallet-sdk-options.interface';\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-rpc-message.interface.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/json-rpc-message.interface.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,GAAG,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,GAAG,CAAC;CACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"json-rpc-message.interface.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/json-rpc-message.interface.ts"],"names":[],"mappings":"","sourcesContent":["export interface JsonRpcMessage {\n jsonrpc: '2.0';\n method: string;\n params?: any;\n id?: string;\n result?: any;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purchase-item.interface.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/purchase-item.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,oBAAY,gBAAgB;IAC1B,YAAY,gBAAgB;IAC5B,YAAY,gBAAgB;CAC7B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enumeration of supported item types that can be purchased via the Ultra Wallet.
|
|
3
|
+
*/
|
|
4
|
+
export var PurchaseItemType;
|
|
5
|
+
(function (PurchaseItemType) {
|
|
6
|
+
PurchaseItemType["UNIQ_FACTORY"] = "UniqFactory";
|
|
7
|
+
PurchaseItemType["GAME_FACTORY"] = "GameFactory";
|
|
8
|
+
})(PurchaseItemType || (PurchaseItemType = {}));
|
|
9
|
+
//# sourceMappingURL=purchase-item.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"purchase-item.interface.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/purchase-item.interface.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,gDAA4B,CAAA;IAC5B,gDAA4B,CAAA;AAC9B,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B","sourcesContent":["/**\n * Enumeration of supported item types that can be purchased via the Ultra Wallet.\n */\nexport enum PurchaseItemType {\n UNIQ_FACTORY = 'UniqFactory',\n GAME_FACTORY = 'GameFactory',\n}\n"]}
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A generic wrapper for all Ultra Wallet SDK responses.
|
|
3
|
+
* Encapsulates the status, data payload, and optional error messaging or codes.
|
|
4
|
+
*
|
|
5
|
+
* @template T The type of the data payload contained in the response.
|
|
6
|
+
*/
|
|
7
|
+
export interface UltraResponse<T = any> {
|
|
8
|
+
/**
|
|
9
|
+
* The status of the response, e.g., success, fail, or error.
|
|
10
|
+
*/
|
|
11
|
+
status: ResponseStatus;
|
|
12
|
+
/**
|
|
13
|
+
* The actual response data payload.
|
|
14
|
+
*/
|
|
15
|
+
data: T;
|
|
16
|
+
/**
|
|
17
|
+
* Optional end-user-readable message, explaining what went wrong (if applicable).
|
|
18
|
+
*/
|
|
19
|
+
message?: string;
|
|
20
|
+
/**
|
|
21
|
+
* Optional error or status code.
|
|
22
|
+
*/
|
|
23
|
+
code?: number;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Enumeration of possible response statuses returned by the Ultra Wallet SDK.
|
|
27
|
+
*/
|
|
28
|
+
export declare enum ResponseStatus {
|
|
29
|
+
SUCCESS = "success",
|
|
30
|
+
FAIL = "fail",
|
|
31
|
+
ERROR = "error"
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Represents the result of a disconnect request.
|
|
35
|
+
* A boolean indicating whether the disconnection was successful.
|
|
36
|
+
*/
|
|
37
|
+
export type DisconnectResponse = boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Represents the result of a successful connection request, containing the user's account details.
|
|
40
|
+
*/
|
|
41
|
+
export type ConnectResult = Array<{
|
|
42
|
+
/**
|
|
43
|
+
* The blockchain network identifier.
|
|
44
|
+
*/
|
|
45
|
+
blockchainid: string;
|
|
46
|
+
/**
|
|
47
|
+
* The public key associated with the user's account.
|
|
48
|
+
*/
|
|
49
|
+
publicKey: string;
|
|
50
|
+
}>;
|
|
51
|
+
/**
|
|
52
|
+
* The result structure returned after a successful item purchase using the Ultra Wallet.
|
|
53
|
+
* Contains metadata about the purchased items and the associated blockchain transaction.
|
|
54
|
+
*/
|
|
55
|
+
export interface PurchaseItemResult {
|
|
56
|
+
/**
|
|
57
|
+
* An ID associated with the purchase order, used for support requests if required.
|
|
58
|
+
*/
|
|
59
|
+
orderHash: string;
|
|
60
|
+
items: {
|
|
61
|
+
/**
|
|
62
|
+
* The ID of the minted Uniq.
|
|
63
|
+
*/
|
|
64
|
+
artifactId: string;
|
|
65
|
+
/**
|
|
66
|
+
* The purchased item ID.
|
|
67
|
+
*/
|
|
68
|
+
productId: string;
|
|
69
|
+
/**
|
|
70
|
+
* The ID of the transaction in the blockchain, useful for tracking the status and details of the transaction.
|
|
71
|
+
*/
|
|
72
|
+
blockchainTransactionId: string;
|
|
73
|
+
}[];
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Represents the result returned after signing a message with the Ultra Wallet.
|
|
77
|
+
*/
|
|
78
|
+
export interface SignMessageResult {
|
|
79
|
+
signature: string;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Represents the result returned after signing a blockchain transaction with the Ultra Wallet.
|
|
83
|
+
*/
|
|
84
|
+
export interface SignTransactionResult {
|
|
85
|
+
/**
|
|
86
|
+
* The hash of the signed blockchain transaction.
|
|
87
|
+
*/
|
|
88
|
+
transactionHash?: string;
|
|
89
|
+
processed?: {
|
|
90
|
+
id: string;
|
|
91
|
+
block_num: number;
|
|
92
|
+
block_time: string;
|
|
93
|
+
producer_block_id: string | null;
|
|
94
|
+
receipt: {
|
|
95
|
+
status: string;
|
|
96
|
+
cpu_usage_us: number;
|
|
97
|
+
net_usage_words: number;
|
|
98
|
+
};
|
|
99
|
+
elapsed: number;
|
|
100
|
+
net_usage: number;
|
|
101
|
+
scheduled: boolean;
|
|
102
|
+
action_traces: ActionTrace[];
|
|
103
|
+
account_ram_delta: any | null;
|
|
104
|
+
except: any | null;
|
|
105
|
+
error_code: number | null;
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export interface ActionTrace {
|
|
109
|
+
action_ordinal: number;
|
|
110
|
+
creator_action_ordinal: number;
|
|
111
|
+
closest_unnotified_ancestor_action_ordinal: number;
|
|
112
|
+
receipt: {
|
|
113
|
+
receiver: string;
|
|
114
|
+
act_digest: string;
|
|
115
|
+
global_sequence: number;
|
|
116
|
+
recv_sequence: number;
|
|
117
|
+
auth_sequence: [string, number][];
|
|
118
|
+
code_sequence: number;
|
|
119
|
+
abi_sequence: number;
|
|
120
|
+
};
|
|
121
|
+
receiver: string;
|
|
122
|
+
act: {
|
|
123
|
+
account: string;
|
|
124
|
+
name: string;
|
|
125
|
+
authorization: {
|
|
126
|
+
actor: string;
|
|
127
|
+
permission: string;
|
|
128
|
+
}[];
|
|
129
|
+
data: {
|
|
130
|
+
from: string;
|
|
131
|
+
to: string;
|
|
132
|
+
quantity: string;
|
|
133
|
+
memo: string;
|
|
134
|
+
};
|
|
135
|
+
hex_data: string;
|
|
136
|
+
};
|
|
137
|
+
context_free: boolean;
|
|
138
|
+
elapsed: number;
|
|
139
|
+
console: string;
|
|
140
|
+
trx_id: string;
|
|
141
|
+
block_num: number;
|
|
142
|
+
block_time: string;
|
|
143
|
+
producer_block_id: string | null;
|
|
144
|
+
account_ram_deltas: any[];
|
|
145
|
+
except: any | null;
|
|
146
|
+
error_code: number | null;
|
|
147
|
+
return_value_hex_data: string;
|
|
148
|
+
inline_traces: ActionTrace[];
|
|
149
|
+
}
|
|
150
|
+
//# sourceMappingURL=wallet-provider-response.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-provider-response.interface.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/wallet-provider-response.interface.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Enumeration of possible response statuses returned by the Ultra Wallet SDK.
|
|
3
|
+
*/
|
|
4
|
+
export var ResponseStatus;
|
|
5
|
+
(function (ResponseStatus) {
|
|
6
|
+
ResponseStatus["SUCCESS"] = "success";
|
|
7
|
+
ResponseStatus["FAIL"] = "fail";
|
|
8
|
+
ResponseStatus["ERROR"] = "error";
|
|
9
|
+
})(ResponseStatus || (ResponseStatus = {}));
|
|
10
|
+
//# sourceMappingURL=wallet-provider-response.interface.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-provider-response.interface.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/wallet-provider-response.interface.ts"],"names":[],"mappings":"AAyBA;;GAEG;AACH,MAAM,CAAN,IAAY,cAIX;AAJD,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,+BAAa,CAAA;IACb,iCAAe,CAAA;AACjB,CAAC,EAJW,cAAc,KAAd,cAAc,QAIzB","sourcesContent":["/**\n * A generic wrapper for all Ultra Wallet SDK responses.\n * Encapsulates the status, data payload, and optional error messaging or codes.\n *\n * @template T The type of the data payload contained in the response.\n */\nexport interface UltraResponse<T = any> {\n /**\n * The status of the response, e.g., success, fail, or error.\n */\n status: ResponseStatus;\n /**\n * The actual response data payload.\n */\n data: T;\n /**\n * Optional end-user-readable message, explaining what went wrong (if applicable).\n */\n message?: string;\n /**\n * Optional error or status code.\n */\n code?: number;\n}\n\n/**\n * Enumeration of possible response statuses returned by the Ultra Wallet SDK.\n */\nexport enum ResponseStatus {\n SUCCESS = 'success',\n FAIL = 'fail',\n ERROR = 'error',\n}\n\n/**\n * Represents the result of a disconnect request.\n * A boolean indicating whether the disconnection was successful.\n */\nexport type DisconnectResponse = boolean;\n\n/**\n * Represents the result of a successful connection request, containing the user's account details.\n */\nexport type ConnectResult = Array<{\n /**\n * The blockchain network identifier.\n */\n blockchainid: string;\n /**\n * The public key associated with the user's account.\n */\n publicKey: string;\n}>;\n\n/**\n * The result structure returned after a successful item purchase using the Ultra Wallet.\n * Contains metadata about the purchased items and the associated blockchain transaction.\n */\nexport interface PurchaseItemResult {\n /**\n * An ID associated with the purchase order, used for support requests if required.\n */\n orderHash: string;\n\n items: {\n /**\n * The ID of the minted Uniq.\n */\n artifactId: string;\n /**\n * The purchased item ID.\n */\n productId: string;\n /**\n * The ID of the transaction in the blockchain, useful for tracking the status and details of the transaction.\n */\n blockchainTransactionId: string;\n }[];\n}\n\n/**\n * Represents the result returned after signing a message with the Ultra Wallet.\n */\nexport interface SignMessageResult {\n signature: string;\n}\n\n/**\n * Represents the result returned after signing a blockchain transaction with the Ultra Wallet.\n */\nexport interface SignTransactionResult {\n /**\n * The hash of the signed blockchain transaction.\n */\n transactionHash?: string;\n processed?: {\n id: string;\n block_num: number;\n block_time: string; // ISO timestamp\n producer_block_id: string | null;\n receipt: {\n status: string;\n cpu_usage_us: number;\n net_usage_words: number;\n };\n elapsed: number;\n net_usage: number;\n scheduled: boolean;\n action_traces: ActionTrace[];\n account_ram_delta: any | null;\n except: any | null;\n error_code: number | null;\n };\n}\n\nexport interface ActionTrace {\n action_ordinal: number;\n creator_action_ordinal: number;\n closest_unnotified_ancestor_action_ordinal: number;\n receipt: {\n receiver: string;\n act_digest: string;\n global_sequence: number;\n recv_sequence: number;\n auth_sequence: [string, number][];\n code_sequence: number;\n abi_sequence: number;\n };\n receiver: string;\n act: {\n account: string;\n name: string;\n authorization: {\n actor: string;\n permission: string;\n }[];\n data: {\n from: string;\n to: string;\n quantity: string;\n memo: string;\n };\n hex_data: string;\n };\n context_free: boolean;\n elapsed: number;\n console: string;\n trx_id: string;\n block_num: number;\n block_time: string;\n producer_block_id: string | null;\n account_ram_deltas: any[];\n except: any | null;\n error_code: number | null;\n return_value_hex_data: string;\n inline_traces: ActionTrace[];\n}\n"]}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { BlockchainTransaction } from './blockchain-transaction.interface';
|
|
2
|
+
import { ConnectParams } from './connect-params.interface';
|
|
3
|
+
import { PurchaseItemType } from './purchase-item.interface';
|
|
4
|
+
import { ConnectResult, DisconnectResponse, PurchaseItemResult, SignMessageResult, SignTransactionResult, UltraResponse } from './wallet-provider-response.interface';
|
|
5
|
+
/**
|
|
6
|
+
* Defines the minimal interface that a wallet provider must implement for the Ultra Wallet SDK.
|
|
7
|
+
*/
|
|
8
|
+
export interface UltraWalletProvider {
|
|
9
|
+
/**
|
|
10
|
+
* Prompt the user for permission to share his wallet info with the 3rd party application.
|
|
11
|
+
* Once permission is established the first time, the 3rd party application will be whitelisted for future requests.
|
|
12
|
+
* @param params.onlyIfTrusted - Do not prompt the user for permissions. Share current account info if Dapp is already trusted,
|
|
13
|
+
* otherwise rejects the request.
|
|
14
|
+
*/
|
|
15
|
+
connect(params?: ConnectParams): Promise<UltraResponse<ConnectResult>>;
|
|
16
|
+
/**
|
|
17
|
+
* Remove permission to interact with the 3rd party application
|
|
18
|
+
*/
|
|
19
|
+
disconnect(): Promise<UltraResponse<DisconnectResponse>>;
|
|
20
|
+
/**
|
|
21
|
+
* Open a popup to sign a message
|
|
22
|
+
* @param message - The message to sign. The message should be prefixed with "0x:, UOSx:, or message:"
|
|
23
|
+
*/
|
|
24
|
+
signMessage(message: string): Promise<UltraResponse<SignMessageResult>>;
|
|
25
|
+
/**
|
|
26
|
+
* Open a popup to sign a transaction
|
|
27
|
+
* @param transaction - The transaction to sign
|
|
28
|
+
*/
|
|
29
|
+
signTransaction(transaction: BlockchainTransaction | BlockchainTransaction[]): Promise<UltraResponse<SignTransactionResult>>;
|
|
30
|
+
/**
|
|
31
|
+
* Get current chain id
|
|
32
|
+
*/
|
|
33
|
+
getChainId(): Promise<UltraResponse<string>>;
|
|
34
|
+
/**
|
|
35
|
+
* Open a popup to purchase an item
|
|
36
|
+
* @param {PurchaseItemType} itemType - The type of item to purchase
|
|
37
|
+
* @param {string} itemId - The id of the item to purchase
|
|
38
|
+
*/
|
|
39
|
+
purchaseItem(itemType: PurchaseItemType, itemId: string): Promise<UltraResponse<PurchaseItemResult>>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=wallet-provider.interface.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-provider.interface.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/wallet-provider.interface.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,oCAAoC,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACd,MAAM,sCAAsC,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAEvE;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAEzD;;;OAGG;IACH,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,iBAAiB,CAAC,CAAC,CAAC;IAExE;;;OAGG;IACH,eAAe,CACb,WAAW,EAAE,qBAAqB,GAAG,qBAAqB,EAAE,GAC3D,OAAO,CAAC,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAEjD;;OAEG;IACH,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC;IAE7C;;;;OAIG;IACH,YAAY,CAAC,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC,CAAC,CAAC;CACtG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-provider.interface.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/interfaces/wallet-provider.interface.ts"],"names":[],"mappings":"","sourcesContent":["import { BlockchainTransaction } from './blockchain-transaction.interface';\nimport { ConnectParams } from './connect-params.interface';\nimport { PurchaseItemType } from './purchase-item.interface';\nimport {\n ConnectResult,\n DisconnectResponse,\n PurchaseItemResult,\n SignMessageResult,\n SignTransactionResult,\n UltraResponse,\n} from './wallet-provider-response.interface';\n\n/**\n * Defines the minimal interface that a wallet provider must implement for the Ultra Wallet SDK.\n */\nexport interface UltraWalletProvider {\n /**\n * Prompt the user for permission to share his wallet info with the 3rd party application.\n * Once permission is established the first time, the 3rd party application will be whitelisted for future requests.\n * @param params.onlyIfTrusted - Do not prompt the user for permissions. Share current account info if Dapp is already trusted,\n * otherwise rejects the request.\n */\n connect(params?: ConnectParams): Promise<UltraResponse<ConnectResult>>;\n\n /**\n * Remove permission to interact with the 3rd party application\n */\n disconnect(): Promise<UltraResponse<DisconnectResponse>>;\n\n /**\n * Open a popup to sign a message\n * @param message - The message to sign. The message should be prefixed with \"0x:, UOSx:, or message:\"\n */\n signMessage(message: string): Promise<UltraResponse<SignMessageResult>>;\n\n /**\n * Open a popup to sign a transaction\n * @param transaction - The transaction to sign\n */\n signTransaction(\n transaction: BlockchainTransaction | BlockchainTransaction[],\n ): Promise<UltraResponse<SignTransactionResult>>;\n\n /**\n * Get current chain id\n */\n getChainId(): Promise<UltraResponse<string>>;\n\n /**\n * Open a popup to purchase an item\n * @param {PurchaseItemType} itemType - The type of item to purchase\n * @param {string} itemId - The id of the item to purchase\n */\n purchaseItem(itemType: PurchaseItemType, itemId: string): Promise<UltraResponse<PurchaseItemResult>>;\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options to configure the UltraWalletClient behavior.
|
|
3
|
+
* Used primarily when falling back to the Web Wallet if no Ultra extension is available.
|
|
4
|
+
*
|
|
5
|
+
* @property {('mainnet' | 'testnet' | string)} [environment] - Target environment; defaults to 'mainnet' if unspecified.
|
|
6
|
+
*/
|
|
7
|
+
export interface UltraWalletSdkOptions {
|
|
8
|
+
environment?: 'mainnet' | 'testnet' | string;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=wallet-sdk-options.interface.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +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"]}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { BlockchainTransaction, ConnectParams, ConnectResult, PurchaseItemResult, PurchaseItemType, SignMessageResult, SignTransactionResult, UltraResponse, UltraWalletProvider, UltraWalletSdkOptions } from '../../interfaces';
|
|
2
|
+
declare global {
|
|
3
|
+
interface Window {
|
|
4
|
+
ultra: UltraWalletProvider;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
export declare class ExtensionProvider implements UltraWalletProvider {
|
|
8
|
+
private readonly options?;
|
|
9
|
+
constructor(options?: UltraWalletSdkOptions);
|
|
10
|
+
connect(params?: ConnectParams): Promise<UltraResponse<ConnectResult>>;
|
|
11
|
+
disconnect(): Promise<UltraResponse<boolean>>;
|
|
12
|
+
signMessage(message: string): Promise<UltraResponse<SignMessageResult>>;
|
|
13
|
+
signTransaction(transaction: BlockchainTransaction | BlockchainTransaction[]): Promise<UltraResponse<SignTransactionResult>>;
|
|
14
|
+
getChainId(): Promise<UltraResponse<string>>;
|
|
15
|
+
purchaseItem(itemType: PurchaseItemType, itemId: string): Promise<UltraResponse<PurchaseItemResult>>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=extension.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.provider.d.ts","sourceRoot":"","sources":["../../../../../../../libs/wallet-sdk/src/lib/providers/extension-provider/extension.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAG1B,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,MAAM;QACd,KAAK,EAAE,mBAAmB,CAAC;KAC5B;CACF;AAED,qBAAa,iBAAkB,YAAW,mBAAmB;IAC/C,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAAR,OAAO,CAAC,EAAE,qBAAqB;IAEtD,OAAO,CAAC,MAAM,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAU5E,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,GAC3D,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;CAGrG"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { isValidChain } from '../../utils/chain-validator';
|
|
2
|
+
export class ExtensionProvider {
|
|
3
|
+
constructor(options) {
|
|
4
|
+
this.options = options;
|
|
5
|
+
}
|
|
6
|
+
async connect(params) {
|
|
7
|
+
const { data: chainId } = await window.ultra.getChainId();
|
|
8
|
+
if (!isValidChain(this.options?.environment, chainId)) {
|
|
9
|
+
throw new Error(`Wallet environment mismatch: expected "${this.options?.environment}" chain, but received "${chainId}". Please verify the SDK configuration and the connected network.`);
|
|
10
|
+
}
|
|
11
|
+
return window.ultra.connect(params);
|
|
12
|
+
}
|
|
13
|
+
disconnect() {
|
|
14
|
+
return window.ultra.disconnect();
|
|
15
|
+
}
|
|
16
|
+
signMessage(message) {
|
|
17
|
+
return window.ultra.signMessage(message);
|
|
18
|
+
}
|
|
19
|
+
signTransaction(transaction) {
|
|
20
|
+
return window.ultra.signTransaction(transaction);
|
|
21
|
+
}
|
|
22
|
+
getChainId() {
|
|
23
|
+
return window.ultra.getChainId();
|
|
24
|
+
}
|
|
25
|
+
purchaseItem(itemType, itemId) {
|
|
26
|
+
return window.ultra.purchaseItem(itemType, itemId);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=extension.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"extension.provider.js","sourceRoot":"","sources":["../../../../../../../libs/wallet-sdk/src/lib/providers/extension-provider/extension.provider.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAQ3D,MAAM,OAAO,iBAAiB;IAC5B,YAA6B,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;IAAG,CAAC;IAEhE,KAAK,CAAC,OAAO,CAAC,MAAsB;QAClC,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;QAC1D,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,0CAA0C,IAAI,CAAC,OAAO,EAAE,WAAW,0BAA0B,OAAO,mEAAmE,CACxK,CAAC;QACJ,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACtC,CAAC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,MAAM,CAAC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,eAAe,CACb,WAA4D;QAE5D,OAAO,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IACnD,CAAC;IAED,UAAU;QACR,OAAO,MAAM,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACnC,CAAC;IAED,YAAY,CAAC,QAA0B,EAAE,MAAc;QACrD,OAAO,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACrD,CAAC;CACF","sourcesContent":["import {\n BlockchainTransaction,\n ConnectParams,\n ConnectResult,\n PurchaseItemResult,\n PurchaseItemType,\n SignMessageResult,\n SignTransactionResult,\n UltraResponse,\n UltraWalletProvider,\n UltraWalletSdkOptions,\n} from '../../interfaces';\nimport { isValidChain } from '../../utils/chain-validator';\n\ndeclare global {\n interface Window {\n ultra: UltraWalletProvider;\n }\n}\n\nexport class ExtensionProvider implements UltraWalletProvider {\n constructor(private readonly options?: UltraWalletSdkOptions) {}\n\n async connect(params?: ConnectParams): Promise<UltraResponse<ConnectResult>> {\n const { data: chainId } = await window.ultra.getChainId();\n if (!isValidChain(this.options?.environment, chainId)) {\n throw new Error(\n `Wallet environment mismatch: expected \"${this.options?.environment}\" chain, but received \"${chainId}\". Please verify the SDK configuration and the connected network.`,\n );\n }\n return window.ultra.connect(params);\n }\n\n disconnect(): Promise<UltraResponse<boolean>> {\n return window.ultra.disconnect();\n }\n\n signMessage(message: string): Promise<UltraResponse<SignMessageResult>> {\n return window.ultra.signMessage(message);\n }\n\n signTransaction(\n transaction: BlockchainTransaction | BlockchainTransaction[],\n ): Promise<UltraResponse<SignTransactionResult>> {\n return window.ultra.signTransaction(transaction);\n }\n\n getChainId(): Promise<UltraResponse<string>> {\n return window.ultra.getChainId();\n }\n\n purchaseItem(itemType: PurchaseItemType, itemId: string): Promise<UltraResponse<PurchaseItemResult>> {\n return window.ultra.purchaseItem(itemType, itemId);\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,yCAAyC,CAAC;AACxD,cAAc,6BAA6B,CAAC","sourcesContent":["export * from './extension-provider/extension.provider';\nexport * from './web-provider/web.provider';\n"]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { BlockchainTransaction, ConnectParams, ConnectResult, PurchaseItemResult, PurchaseItemType, SignMessageResult, SignTransactionResult, UltraResponse, UltraWalletProvider, UltraWalletSdkOptions } from '../../interfaces';
|
|
2
|
+
export declare class WebProvider implements UltraWalletProvider {
|
|
3
|
+
private readonly options?;
|
|
4
|
+
private readonly windowManager;
|
|
5
|
+
private readonly clientMessenger;
|
|
6
|
+
constructor(options?: UltraWalletSdkOptions);
|
|
7
|
+
connect(_?: ConnectParams): Promise<UltraResponse<ConnectResult>>;
|
|
8
|
+
disconnect(): Promise<UltraResponse<boolean>>;
|
|
9
|
+
signMessage(message: string): Promise<UltraResponse<SignMessageResult>>;
|
|
10
|
+
signTransaction(transaction: BlockchainTransaction | BlockchainTransaction[]): Promise<UltraResponse<SignTransactionResult>>;
|
|
11
|
+
getChainId(): Promise<UltraResponse<string>>;
|
|
12
|
+
purchaseItem(itemType: PurchaseItemType, itemId: string): Promise<UltraResponse<PurchaseItemResult>>;
|
|
13
|
+
private resolveWalletUrl;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=web.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.provider.d.ts","sourceRoot":"","sources":["../../../../../../../libs/wallet-sdk/src/lib/providers/web-provider/web.provider.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,qBAAqB,EACrB,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,mBAAmB,EACnB,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAE1B,qBAAa,WAAY,YAAW,mBAAmB;IAIzC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC;IAHrC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAkB;gBAErB,OAAO,CAAC,EAAE,qBAAqB;IAK5D,OAAO,CAAC,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAIjE,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,GAC3D,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;IAOpG,OAAO,CAAC,gBAAgB;CAIzB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ClientMessenger } from '../../common/client-messenger';
|
|
2
|
+
import { WindowManager } from '../../common/window-manager';
|
|
3
|
+
import UltraWalletSdkConfig from '../../config/ultra-wallet-sdk.config';
|
|
4
|
+
export class WebProvider {
|
|
5
|
+
constructor(options) {
|
|
6
|
+
this.options = options;
|
|
7
|
+
this.windowManager = new WindowManager(this.resolveWalletUrl());
|
|
8
|
+
this.clientMessenger = new ClientMessenger(this.windowManager);
|
|
9
|
+
}
|
|
10
|
+
connect(_) {
|
|
11
|
+
return this.clientMessenger.sendRequest('connect', {});
|
|
12
|
+
}
|
|
13
|
+
disconnect() {
|
|
14
|
+
return this.clientMessenger.sendRequest('disconnect', {});
|
|
15
|
+
}
|
|
16
|
+
signMessage(message) {
|
|
17
|
+
return this.clientMessenger.sendRequest('signMessage', { message });
|
|
18
|
+
}
|
|
19
|
+
signTransaction(transaction) {
|
|
20
|
+
return this.clientMessenger.sendRequest('signTransaction', { transaction });
|
|
21
|
+
}
|
|
22
|
+
getChainId() {
|
|
23
|
+
return this.clientMessenger.sendRequest('getChainId', {});
|
|
24
|
+
}
|
|
25
|
+
purchaseItem(itemType, itemId) {
|
|
26
|
+
return this.clientMessenger.sendRequest('purchaseItem', {
|
|
27
|
+
itemType,
|
|
28
|
+
itemId,
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
resolveWalletUrl() {
|
|
32
|
+
const env = UltraWalletSdkConfig.walletUrls[this.options?.environment || 'mainnet'];
|
|
33
|
+
return env || this.options.environment;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=web.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"web.provider.js","sourceRoot":"","sources":["../../../../../../../libs/wallet-sdk/src/lib/providers/web-provider/web.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAChE,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC5D,OAAO,oBAAoB,MAAM,sCAAsC,CAAC;AAcxE,MAAM,OAAO,WAAW;IAItB,YAA6B,OAA+B;QAA/B,YAAO,GAAP,OAAO,CAAwB;QAC1D,IAAI,CAAC,aAAa,GAAG,IAAI,aAAa,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,CAAC;QAChE,IAAI,CAAC,eAAe,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACjE,CAAC;IAED,OAAO,CAAC,CAAiB;QACvB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAgB,SAAS,EAAE,EAAE,CAAC,CAAC;IACxE,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAU,YAAY,EAAE,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,WAAW,CAAC,OAAe;QACzB,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAoB,aAAa,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC;IACzF,CAAC;IAED,eAAe,CACb,WAA4D;QAE5D,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAwB,iBAAiB,EAAE,EAAE,WAAW,EAAE,CAAC,CAAC;IACrG,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAS,YAAY,EAAE,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,YAAY,CAAC,QAA0B,EAAE,MAAc;QACrD,OAAO,IAAI,CAAC,eAAe,CAAC,WAAW,CAAqB,cAAc,EAAE;YAC1E,QAAQ;YACR,MAAM;SACP,CAAC,CAAC;IACL,CAAC;IAEO,gBAAgB;QACtB,MAAM,GAAG,GAAG,oBAAoB,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC;QACpF,OAAO,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;CACF","sourcesContent":["import { ClientMessenger } from '../../common/client-messenger';\nimport { WindowManager } from '../../common/window-manager';\nimport UltraWalletSdkConfig from '../../config/ultra-wallet-sdk.config';\nimport {\n BlockchainTransaction,\n ConnectParams,\n ConnectResult,\n PurchaseItemResult,\n PurchaseItemType,\n SignMessageResult,\n SignTransactionResult,\n UltraResponse,\n UltraWalletProvider,\n UltraWalletSdkOptions,\n} from '../../interfaces';\n\nexport class WebProvider implements UltraWalletProvider {\n private readonly windowManager: WindowManager;\n private readonly clientMessenger: ClientMessenger;\n\n constructor(private readonly options?: UltraWalletSdkOptions) {\n this.windowManager = new WindowManager(this.resolveWalletUrl());\n this.clientMessenger = new ClientMessenger(this.windowManager);\n }\n\n connect(_?: ConnectParams): Promise<UltraResponse<ConnectResult>> {\n return this.clientMessenger.sendRequest<ConnectResult>('connect', {});\n }\n\n disconnect(): Promise<UltraResponse<boolean>> {\n return this.clientMessenger.sendRequest<boolean>('disconnect', {});\n }\n\n signMessage(message: string): Promise<UltraResponse<SignMessageResult>> {\n return this.clientMessenger.sendRequest<SignMessageResult>('signMessage', { message });\n }\n\n signTransaction(\n transaction: BlockchainTransaction | BlockchainTransaction[],\n ): Promise<UltraResponse<SignTransactionResult>> {\n return this.clientMessenger.sendRequest<SignTransactionResult>('signTransaction', { transaction });\n }\n\n getChainId(): Promise<UltraResponse<string>> {\n return this.clientMessenger.sendRequest<string>('getChainId', {});\n }\n\n purchaseItem(itemType: PurchaseItemType, itemId: string): Promise<UltraResponse<PurchaseItemResult>> {\n return this.clientMessenger.sendRequest<PurchaseItemResult>('purchaseItem', {\n itemType,\n itemId,\n });\n }\n\n private resolveWalletUrl(): string {\n const env = UltraWalletSdkConfig.walletUrls[this.options?.environment || 'mainnet'];\n return env || this.options.environment;\n }\n}\n"]}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { BlockchainTransaction, ConnectParams, ConnectResult, PurchaseItemResult, PurchaseItemType, SignMessageResult, SignTransactionResult, UltraResponse, UltraWalletSdkOptions } from './interfaces';
|
|
2
|
+
/**
|
|
3
|
+
* UltraWalletClient acts as a Facade for interacting with the Ultra Wallet.
|
|
4
|
+
* It provides a unified API regardless of the underlying provider implementation (Extension or Web).
|
|
5
|
+
*/
|
|
6
|
+
export declare class UltraWalletSDK {
|
|
7
|
+
private readonly options?;
|
|
8
|
+
private provider;
|
|
9
|
+
/**
|
|
10
|
+
* Constructs an UltraWalletClient instance.
|
|
11
|
+
* If the Ultra Wallet Extension is available (window.ultra), it will be used automatically.
|
|
12
|
+
* If the Extension is not available, the Web Wallet provider will be initialized using the given network options.
|
|
13
|
+
*
|
|
14
|
+
* @param {UltraWalletSdkOptions} [options] - Configuration options for the Web Wallet fallback (environment or custom URL).
|
|
15
|
+
*/
|
|
16
|
+
constructor(options?: UltraWalletSdkOptions);
|
|
17
|
+
connect(params?: ConnectParams): Promise<UltraResponse<ConnectResult>>;
|
|
18
|
+
disconnect(): Promise<UltraResponse<boolean>>;
|
|
19
|
+
signMessage(message: string): Promise<UltraResponse<SignMessageResult>>;
|
|
20
|
+
signTransaction(transaction: BlockchainTransaction | BlockchainTransaction[]): Promise<UltraResponse<SignTransactionResult>>;
|
|
21
|
+
getChainId(): Promise<UltraResponse<string>>;
|
|
22
|
+
purchaseItem(itemType: PurchaseItemType, itemId: string): Promise<UltraResponse<PurchaseItemResult>>;
|
|
23
|
+
private resolveWalletProvider;
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=ultra-wallet-sdk.d.ts.map
|
|
@@ -0,0 +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,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,GAC3D,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"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { ExtensionProvider, WebProvider } from './providers';
|
|
2
|
+
import { isExtensionAvailable } from './utils/detection';
|
|
3
|
+
/**
|
|
4
|
+
* UltraWalletClient acts as a Facade for interacting with the Ultra Wallet.
|
|
5
|
+
* It provides a unified API regardless of the underlying provider implementation (Extension or Web).
|
|
6
|
+
*/
|
|
7
|
+
export class UltraWalletSDK {
|
|
8
|
+
/**
|
|
9
|
+
* Constructs an UltraWalletClient instance.
|
|
10
|
+
* If the Ultra Wallet Extension is available (window.ultra), it will be used automatically.
|
|
11
|
+
* If the Extension is not available, the Web Wallet provider will be initialized using the given network options.
|
|
12
|
+
*
|
|
13
|
+
* @param {UltraWalletSdkOptions} [options] - Configuration options for the Web Wallet fallback (environment or custom URL).
|
|
14
|
+
*/
|
|
15
|
+
constructor(options) {
|
|
16
|
+
this.options = options;
|
|
17
|
+
this.provider = this.resolveWalletProvider();
|
|
18
|
+
}
|
|
19
|
+
connect(params) {
|
|
20
|
+
return this.provider.connect(params);
|
|
21
|
+
}
|
|
22
|
+
disconnect() {
|
|
23
|
+
return this.provider.disconnect();
|
|
24
|
+
}
|
|
25
|
+
signMessage(message) {
|
|
26
|
+
return this.provider.signMessage(message);
|
|
27
|
+
}
|
|
28
|
+
signTransaction(transaction) {
|
|
29
|
+
return this.provider.signTransaction(transaction);
|
|
30
|
+
}
|
|
31
|
+
getChainId() {
|
|
32
|
+
return this.provider.getChainId();
|
|
33
|
+
}
|
|
34
|
+
purchaseItem(itemType, itemId) {
|
|
35
|
+
return this.provider.purchaseItem(itemType, itemId);
|
|
36
|
+
}
|
|
37
|
+
resolveWalletProvider() {
|
|
38
|
+
if (isExtensionAvailable()) {
|
|
39
|
+
return new ExtensionProvider();
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
return new WebProvider(this.options);
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=ultra-wallet-sdk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ultra-wallet-sdk.js","sourceRoot":"","sources":["../../../../../libs/wallet-sdk/src/lib/ultra-wallet-sdk.ts"],"names":[],"mappings":"AAYA,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;QAE5D,OAAO,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,WAAW,CAAC,CAAC;IACpD,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 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 ): Promise<UltraResponse<SignTransactionResult>> {\n return this.provider.signTransaction(transaction);\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"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-validator.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/utils/chain-validator.ts"],"names":[],"mappings":"AAEA,wBAAgB,YAAY,CAAC,aAAa,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAGlF"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import UltraWalletSdkConfig from '../config/ultra-wallet-sdk.config';
|
|
2
|
+
export function isValidChain(targetNetwork, walletChainId) {
|
|
3
|
+
const { chainId } = UltraWalletSdkConfig.networkInfo[targetNetwork] || {};
|
|
4
|
+
return !chainId || chainId === walletChainId;
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=chain-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chain-validator.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/utils/chain-validator.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,mCAAmC,CAAC;AAErE,MAAM,UAAU,YAAY,CAAC,aAAqB,EAAE,aAAqB;IACvE,MAAM,EAAE,OAAO,EAAE,GAAG,oBAAoB,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;IAC1E,OAAO,CAAC,OAAO,IAAI,OAAO,KAAK,aAAa,CAAC;AAC/C,CAAC","sourcesContent":["import UltraWalletSdkConfig from '../config/ultra-wallet-sdk.config';\n\nexport function isValidChain(targetNetwork: string, walletChainId: string): boolean {\n const { chainId } = UltraWalletSdkConfig.networkInfo[targetNetwork] || {};\n return !chainId || chainId === walletChainId;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.d.ts","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/utils/detection.ts"],"names":[],"mappings":"AAAA,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detection.js","sourceRoot":"","sources":["../../../../../../libs/wallet-sdk/src/lib/utils/detection.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,oBAAoB;IAClC,OAAO,OAAO,MAAM,KAAK,WAAW,IAAI,OAAO,IAAI,MAAM,CAAC;AAC5D,CAAC","sourcesContent":["export function isExtensionAvailable(): boolean {\n return typeof window !== 'undefined' && 'ultra' in window;\n}\n"]}
|