@spacesops/wdk-react-native-provider 1.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/LICENSE +176 -0
  2. package/README.md +841 -0
  3. package/lib/module/contexts/constants.js +20 -0
  4. package/lib/module/contexts/constants.js.map +1 -0
  5. package/lib/module/contexts/reducer.js +87 -0
  6. package/lib/module/contexts/reducer.js.map +1 -0
  7. package/lib/module/contexts/types.js +4 -0
  8. package/lib/module/contexts/types.js.map +1 -0
  9. package/lib/module/contexts/wallet-context.js +409 -0
  10. package/lib/module/contexts/wallet-context.js.map +1 -0
  11. package/lib/module/index.js +15 -0
  12. package/lib/module/index.js.map +1 -0
  13. package/lib/module/package.json +1 -0
  14. package/lib/module/polyfills.js +34 -0
  15. package/lib/module/polyfills.js.map +1 -0
  16. package/lib/module/services/wdk-service/bare-api.js +69 -0
  17. package/lib/module/services/wdk-service/bare-api.js.map +1 -0
  18. package/lib/module/services/wdk-service/index.js +506 -0
  19. package/lib/module/services/wdk-service/index.js.map +1 -0
  20. package/lib/module/services/wdk-service/types.js +48 -0
  21. package/lib/module/services/wdk-service/types.js.map +1 -0
  22. package/lib/module/services/wdk-service/wdk-encryption-salt.js +29 -0
  23. package/lib/module/services/wdk-service/wdk-encryption-salt.js.map +1 -0
  24. package/lib/module/services/wdk-service/wdk-secret-manager-storage.js +64 -0
  25. package/lib/module/services/wdk-service/wdk-secret-manager-storage.js.map +1 -0
  26. package/lib/module/services/wdk-service/wdk-secret-manager-worklet.bundle.js +1 -0
  27. package/lib/module/services/wdk-service/wdk-worklet.mobile.bundle.js +1 -0
  28. package/lib/module/spec/hrpc/hrpc.json +66 -0
  29. package/lib/module/spec/hrpc/index.js +121 -0
  30. package/lib/module/spec/hrpc/index.js.map +1 -0
  31. package/lib/module/spec/hrpc/messages.js +291 -0
  32. package/lib/module/spec/hrpc/messages.js.map +1 -0
  33. package/lib/module/spec/schema/index.js +291 -0
  34. package/lib/module/spec/schema/index.js.map +1 -0
  35. package/lib/module/spec/schema/schema.json +186 -0
  36. package/lib/module/utils/get-balances-from-balance-map.js +18 -0
  37. package/lib/module/utils/get-balances-from-balance-map.js.map +1 -0
  38. package/lib/module/utils/get-transactions-from-transaction-map.js +10 -0
  39. package/lib/module/utils/get-transactions-from-transaction-map.js.map +1 -0
  40. package/lib/module/worklet/wdk-secret-manager-worklet.js +106 -0
  41. package/lib/module/worklet/wdk-secret-manager-worklet.js.map +1 -0
  42. package/lib/typescript/package.json +1 -0
  43. package/lib/typescript/src/contexts/constants.d.ts +3 -0
  44. package/lib/typescript/src/contexts/constants.d.ts.map +1 -0
  45. package/lib/typescript/src/contexts/reducer.d.ts +38 -0
  46. package/lib/typescript/src/contexts/reducer.d.ts.map +1 -0
  47. package/lib/typescript/src/contexts/types.d.ts +40 -0
  48. package/lib/typescript/src/contexts/types.d.ts.map +1 -0
  49. package/lib/typescript/src/contexts/wallet-context.d.ts +10 -0
  50. package/lib/typescript/src/contexts/wallet-context.d.ts.map +1 -0
  51. package/lib/typescript/src/index.d.ts +7 -0
  52. package/lib/typescript/src/index.d.ts.map +1 -0
  53. package/lib/typescript/src/polyfills.d.ts +7 -0
  54. package/lib/typescript/src/polyfills.d.ts.map +1 -0
  55. package/lib/typescript/src/services/wdk-service/bare-api.d.ts +32 -0
  56. package/lib/typescript/src/services/wdk-service/bare-api.d.ts.map +1 -0
  57. package/lib/typescript/src/services/wdk-service/index.d.ts +68 -0
  58. package/lib/typescript/src/services/wdk-service/index.d.ts.map +1 -0
  59. package/lib/typescript/src/services/wdk-service/types.d.ts +125 -0
  60. package/lib/typescript/src/services/wdk-service/types.d.ts.map +1 -0
  61. package/lib/typescript/src/services/wdk-service/wdk-encryption-salt.d.ts +6 -0
  62. package/lib/typescript/src/services/wdk-service/wdk-encryption-salt.d.ts.map +1 -0
  63. package/lib/typescript/src/services/wdk-service/wdk-secret-manager-storage.d.ts +13 -0
  64. package/lib/typescript/src/services/wdk-service/wdk-secret-manager-storage.d.ts.map +1 -0
  65. package/lib/typescript/src/utils/get-balances-from-balance-map.d.ts +4 -0
  66. package/lib/typescript/src/utils/get-balances-from-balance-map.d.ts.map +1 -0
  67. package/lib/typescript/src/utils/get-transactions-from-transaction-map.d.ts +4 -0
  68. package/lib/typescript/src/utils/get-transactions-from-transaction-map.d.ts.map +1 -0
  69. package/metro-polyfills.js +89 -0
  70. package/package.json +152 -0
  71. package/src/contexts/constants.ts +19 -0
  72. package/src/contexts/reducer.ts +103 -0
  73. package/src/contexts/types.ts +51 -0
  74. package/src/contexts/wallet-context.tsx +411 -0
  75. package/src/index.tsx +28 -0
  76. package/src/polyfills.ts +31 -0
  77. package/src/services/wdk-service/bare-api.ts +88 -0
  78. package/src/services/wdk-service/index.ts +765 -0
  79. package/src/services/wdk-service/types.ts +137 -0
  80. package/src/services/wdk-service/wdk-encryption-salt.ts +30 -0
  81. package/src/services/wdk-service/wdk-secret-manager-storage.ts +102 -0
  82. package/src/spec/hrpc/hrpc.json +66 -0
  83. package/src/spec/hrpc/index.js +228 -0
  84. package/src/spec/hrpc/messages.js +328 -0
  85. package/src/spec/schema/index.js +328 -0
  86. package/src/spec/schema/schema.json +186 -0
  87. package/src/utils/get-balances-from-balance-map.ts +22 -0
  88. package/src/utils/get-transactions-from-transaction-map.ts +18 -0
  89. package/src/worklet/wdk-secret-manager-worklet.js +118 -0
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+
3
+ import { HRPC as wdkManagerHRPC } from '@tetherto/pear-wrk-wdk';
4
+ import { Worklet } from 'react-native-bare-kit';
5
+ // @ts-expect-error - spec files don't have type definitions
6
+ import HRPC from "../../spec/hrpc/index.js";
7
+ // @ts-expect-error - spec files don't have type definitions
8
+ import { getEnum } from "../../spec/schema/index.js";
9
+ export let InstanceEnum = /*#__PURE__*/function (InstanceEnum) {
10
+ InstanceEnum["wdkSecretManager"] = "wdkSecretManager";
11
+ InstanceEnum["wdkManager"] = "wdkManager";
12
+ return InstanceEnum;
13
+ }({});
14
+ export class BareWorkletApi {
15
+ static bareInstances = {
16
+ wdkSecretManager: undefined,
17
+ wdkManager: undefined
18
+ };
19
+ static hrpcInstances = {
20
+ wdkSecretManager: null,
21
+ wdkManager: null
22
+ };
23
+
24
+ /**
25
+ * Start bare worklet and assign HRPC instance.
26
+ * @param {InstanceEnum} instance
27
+ * @param {string} fileName
28
+ * @param {string} source
29
+ * @return Worklet
30
+ */
31
+ static startWorklet(instance, fileName, source) {
32
+ try {
33
+ if (BareWorkletApi.bareInstances[instance]) return BareWorkletApi.bareInstances[instance];
34
+ BareWorkletApi.bareInstances[instance] = new Worklet();
35
+ BareWorkletApi.bareInstances[instance].start(fileName, source);
36
+ switch (instance) {
37
+ case InstanceEnum.wdkSecretManager:
38
+ BareWorkletApi.hrpcInstances[instance] = new HRPC(BareWorkletApi.bareInstances[instance].IPC);
39
+ BareWorkletApi.registerHRPCLog(BareWorkletApi.hrpcInstances[instance]);
40
+ break;
41
+ case InstanceEnum.wdkManager:
42
+ BareWorkletApi.hrpcInstances[instance] = new wdkManagerHRPC(BareWorkletApi.bareInstances[instance].IPC);
43
+ break;
44
+ }
45
+ return BareWorkletApi.bareInstances[instance];
46
+ } catch (error) {
47
+ console.error(error);
48
+ return undefined;
49
+ }
50
+ }
51
+ static registerHRPCLog(instance) {
52
+ const logEnums = getEnum('@tetherto/wdk-secret-manager/log-type-enum');
53
+ instance.onCommandLog(data => {
54
+ if (data.type === logEnums.info) console.info(data.data);
55
+ if (data.type === logEnums.error) console.error(data.data);
56
+ if (data.type === logEnums.debug) console.debug(data.data);
57
+ });
58
+ }
59
+
60
+ /**
61
+ * Terminate worklet
62
+ * @param {InstanceEnum} instance
63
+ */
64
+ static terminateWorklet(instance) {
65
+ if (BareWorkletApi.bareInstances[instance]) BareWorkletApi.bareInstances[instance].terminate();
66
+ if (BareWorkletApi.hrpcInstances[instance]) BareWorkletApi.hrpcInstances[instance] = null;
67
+ }
68
+ }
69
+ //# sourceMappingURL=bare-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["HRPC","wdkManagerHRPC","Worklet","getEnum","InstanceEnum","BareWorkletApi","bareInstances","wdkSecretManager","undefined","wdkManager","hrpcInstances","startWorklet","instance","fileName","source","start","IPC","registerHRPCLog","error","console","logEnums","onCommandLog","data","type","info","debug","terminateWorklet","terminate"],"sourceRoot":"../../../../src","sources":["services/wdk-service/bare-api.ts"],"mappings":";;AAAA,SAASA,IAAI,IAAIC,cAAc,QAAQ,wBAAwB;AAC/D,SAASC,OAAO,QAAQ,uBAAuB;AAC/C;AACA,OAAOF,IAAI,MAAM,0BAAiB;AAClC;AACA,SAASG,OAAO,QAAQ,4BAAmB;AAC3C,WAAYC,YAAY,0BAAZA,YAAY;EAAZA,YAAY;EAAZA,YAAY;EAAA,OAAZA,YAAY;AAAA;AAaxB,OAAO,MAAMC,cAAc,CAAC;EAC1B,OAAOC,aAAa,GAAsB;IACxCC,gBAAgB,EAAEC,SAAS;IAC3BC,UAAU,EAAED;EACd,CAAC;EACD,OAAOE,aAAa,GAAsB;IACxCH,gBAAgB,EAAE,IAAI;IACtBE,UAAU,EAAE;EACd,CAAC;;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACE,OAAOE,YAAYA,CACjBC,QAAsB,EACtBC,QAAgB,EAChBC,MAAc,EACO;IACrB,IAAI;MACF,IAAIT,cAAc,CAACC,aAAa,CAACM,QAAQ,CAAC,EACxC,OAAOP,cAAc,CAACC,aAAa,CAACM,QAAQ,CAAC;MAC/CP,cAAc,CAACC,aAAa,CAACM,QAAQ,CAAC,GAAG,IAAIV,OAAO,CAAC,CAAC;MACtDG,cAAc,CAACC,aAAa,CAACM,QAAQ,CAAC,CAACG,KAAK,CAACF,QAAQ,EAAEC,MAAM,CAAC;MAC9D,QAAQF,QAAQ;QACd,KAAKR,YAAY,CAACG,gBAAgB;UAChCF,cAAc,CAACK,aAAa,CAACE,QAAQ,CAAC,GAAG,IAAIZ,IAAI,CAC/CK,cAAc,CAACC,aAAa,CAACM,QAAQ,CAAC,CAACI,GACzC,CAAC;UACDX,cAAc,CAACY,eAAe,CAC5BZ,cAAc,CAACK,aAAa,CAACE,QAAQ,CACvC,CAAC;UACD;QACF,KAAKR,YAAY,CAACK,UAAU;UAC1BJ,cAAc,CAACK,aAAa,CAACE,QAAQ,CAAC,GAAG,IAAIX,cAAc,CACzDI,cAAc,CAACC,aAAa,CAACM,QAAQ,CAAC,CAACI,GACzC,CAAC;UACD;MACJ;MACA,OAAOX,cAAc,CAACC,aAAa,CAACM,QAAQ,CAAC;IAC/C,CAAC,CAAC,OAAOM,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;MACpB,OAAOV,SAAS;IAClB;EACF;EAEA,OAAOS,eAAeA,CAACL,QAAa,EAAQ;IAC1C,MAAMQ,QAAQ,GAAGjB,OAAO,CAAC,4CAA4C,CAAC;IACtES,QAAQ,CAACS,YAAY,CAAEC,IAAS,IAAK;MACnC,IAAIA,IAAI,CAACC,IAAI,KAAKH,QAAQ,CAACI,IAAI,EAAEL,OAAO,CAACK,IAAI,CAACF,IAAI,CAACA,IAAI,CAAC;MACxD,IAAIA,IAAI,CAACC,IAAI,KAAKH,QAAQ,CAACF,KAAK,EAAEC,OAAO,CAACD,KAAK,CAACI,IAAI,CAACA,IAAI,CAAC;MAC1D,IAAIA,IAAI,CAACC,IAAI,KAAKH,QAAQ,CAACK,KAAK,EAAEN,OAAO,CAACM,KAAK,CAACH,IAAI,CAACA,IAAI,CAAC;IAC5D,CAAC,CAAC;EACJ;;EAEA;AACF;AACA;AACA;EACE,OAAOI,gBAAgBA,CAACd,QAAsB,EAAQ;IACpD,IAAIP,cAAc,CAACC,aAAa,CAACM,QAAQ,CAAC,EACxCP,cAAc,CAACC,aAAa,CAACM,QAAQ,CAAC,CAACe,SAAS,CAAC,CAAC;IACpD,IAAItB,cAAc,CAACK,aAAa,CAACE,QAAQ,CAAC,EACxCP,cAAc,CAACK,aAAa,CAACE,QAAQ,CAAC,GAAG,IAAI;EACjD;AACF","ignoreList":[]}
@@ -0,0 +1,506 @@
1
+ "use strict";
2
+
3
+ // @ts-expect-error - bundle file doesn't have type definitions
4
+ import wdkWorkletBundle from './wdk-worklet.mobile.bundle.js';
5
+ import b4a from 'b4a';
6
+ import * as bip39 from 'bip39';
7
+ import Decimal from 'decimal.js';
8
+ // @ts-expect-error - bundle file doesn't have type definitions
9
+ import secretManagerWorkletBundle from './wdk-secret-manager-worklet.bundle.js';
10
+ import { BareWorkletApi, InstanceEnum } from "./bare-api.js";
11
+ import { AssetAddressMap, AssetBalanceMap, AssetTicker, NetworkType } from "./types.js";
12
+ import { wdkEncryptionSalt } from "./wdk-encryption-salt.js";
13
+ import { WDK_STORAGE_ENTROPY, WDK_STORAGE_SALT, WDK_STORAGE_SEED, WdkSecretManagerStorage } from "./wdk-secret-manager-storage.js";
14
+ export const SMART_CONTRACT_BALANCE_ADDRESSES = {
15
+ [AssetTicker.USDT]: {
16
+ ethereum: '0xdAC17F958D2ee523a2206206994597C13D831ec7',
17
+ polygon: '0xc2132d05d31c914a87c6611c10748aeb04b58e8f',
18
+ arbitrum: '0xfd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb9',
19
+ ton: 'EQCxE6mUtQJKFnGfaROTKOt1lZbDiiX1kCixRv7Nw2Id_sDs'
20
+ },
21
+ [AssetTicker.XAUT]: {
22
+ ethereum: '0x68749665FF8D2d112Fa859AA293F07A622782F38',
23
+ polygon: '0xF1815bd50389c46847f0Bda824eC8da914045D14',
24
+ arbitrum: '0x40461291347e1eCbb09499F3371D3f17f10d7159',
25
+ ton: 'EQA1R_LuQCLHlMgOo1S4G7Y7W1cd0FrAkbA10Zq7rddKxi9k'
26
+ }
27
+ };
28
+ const toNetwork = n => {
29
+ switch (n) {
30
+ case NetworkType.SEGWIT:
31
+ return 'bitcoin';
32
+ case NetworkType.ETHEREUM:
33
+ return 'ethereum';
34
+ case NetworkType.TON:
35
+ return 'ton';
36
+ case NetworkType.POLYGON:
37
+ return 'polygon';
38
+ case NetworkType.ARBITRUM:
39
+ return 'arbitrum';
40
+ case NetworkType.SOLANA:
41
+ return 'solana';
42
+ case NetworkType.TRON:
43
+ return 'tron';
44
+ default:
45
+ return 'bitcoin';
46
+ }
47
+ };
48
+ class WDKService {
49
+ walletManagerCache = new Map();
50
+ isInitialized = false;
51
+ wdkManager = null;
52
+ secretManager = null;
53
+ constructor() {}
54
+ static getInstance() {
55
+ if (!WDKService.instance) {
56
+ WDKService.instance = new WDKService();
57
+ }
58
+ return WDKService.instance;
59
+ }
60
+ setConfig(config) {
61
+ this.config = {
62
+ ...this.config,
63
+ ...config
64
+ };
65
+ }
66
+ getIndexerUrl() {
67
+ if (!this.config) {
68
+ throw new Error('WDK Service config not set');
69
+ }
70
+ return this.config.indexer.url;
71
+ }
72
+ getIndexerVersion() {
73
+ if (!this.config) {
74
+ throw new Error('WDK Service config not set');
75
+ }
76
+ return this.config.indexer.version;
77
+ }
78
+ getIndexerApiKey() {
79
+ if (!this.config) {
80
+ throw new Error('WDK Service config not set');
81
+ }
82
+ return this.config.indexer.apiKey;
83
+ }
84
+ getChainsConfig() {
85
+ if (!this.config) {
86
+ throw new Error('WDK Service config not set');
87
+ }
88
+ if (!this.config.chains) {
89
+ throw new Error('Chains config not set');
90
+ }
91
+ return this.config.chains;
92
+ }
93
+ async initialize() {
94
+ if (this.isInitialized) return;
95
+ try {
96
+ // Start both worklets
97
+ BareWorkletApi.startWorklet(InstanceEnum.wdkSecretManager, '/secret.manager.worklet.bundle', secretManagerWorkletBundle);
98
+ BareWorkletApi.startWorklet(InstanceEnum.wdkManager, '/wdk.manager.worklet.bundle', wdkWorkletBundle);
99
+ await new Promise(resolve => setTimeout(resolve, 200));
100
+
101
+ // Verify both HRPC instances are available
102
+ this.secretManager = BareWorkletApi.hrpcInstances.wdkSecretManager;
103
+ this.wdkManager = BareWorkletApi.hrpcInstances.wdkManager;
104
+ if (!this.secretManager) {
105
+ throw new Error('Failed to initialize WDK Secret Manager HRPC instance');
106
+ }
107
+ if (!this.wdkManager) {
108
+ throw new Error('Failed to initialize WDK Manager HRPC instance');
109
+ }
110
+ this.isInitialized = true;
111
+ } catch (error) {
112
+ console.error('Failed to initialize WDK services:', error);
113
+ this.isInitialized = false;
114
+ throw error;
115
+ }
116
+ }
117
+ async clearWallet() {
118
+ try {
119
+ // 1. Gracefully stop worklet operations if they're running
120
+ // Note: wdkManager HRPC doesn't have a workletStop method, only secretManager does
121
+ if (this.secretManager) {
122
+ try {
123
+ await this.secretManager.commandWorkletStop();
124
+ } catch (error) {
125
+ // Worklet might not be started, ignore
126
+ console.warn('Could not stop secretManager worklet:', error);
127
+ }
128
+ }
129
+
130
+ // 3. Clear all keychain storage (entropy, seed, salt)
131
+ await WdkSecretManagerStorage.resetAllData();
132
+
133
+ // 4. Reset internal state (but keep worklets alive)
134
+ this.walletManagerCache.clear();
135
+
136
+ // Note: We keep this.wdkManager and this.secretManager references intact
137
+ // as the worklets are still running and can be reused
138
+ // We also keep this.isInitialized = true since worklets are still initialized
139
+ } catch (error) {
140
+ console.error('Failed to clear wallet:', error);
141
+ throw error;
142
+ }
143
+ }
144
+
145
+ // WDK API Methods
146
+ async createSeed(params) {
147
+ try {
148
+ const salt = wdkEncryptionSalt.generateWdkSalt(params.prf);
149
+ const rpc = BareWorkletApi.hrpcInstances.wdkSecretManager;
150
+ const workletStatus = await rpc.commandWorkletStart({
151
+ enableDebugLogs: 0
152
+ });
153
+ if (workletStatus.status === 'started') {
154
+ const encryptedData = await rpc.commandGenerateAndEncrypt({
155
+ passkey: params.prf,
156
+ salt: b4a.toString(salt, 'hex')
157
+ });
158
+ await WdkSecretManagerStorage.saveData(WDK_STORAGE_ENTROPY, encryptedData.encryptedEntropy);
159
+ await WdkSecretManagerStorage.saveData(WDK_STORAGE_SEED, encryptedData.encryptedSeed);
160
+ await WdkSecretManagerStorage.saveData(WDK_STORAGE_SALT, salt);
161
+ const decryptedData = await rpc.commandDecrypt({
162
+ passkey: params.prf,
163
+ salt: b4a.toString(salt, 'hex'),
164
+ encryptedData: encryptedData.encryptedEntropy
165
+ });
166
+ const seed = bip39.entropyToMnemonic(b4a.from(decryptedData.result, 'hex'));
167
+ return seed;
168
+ } else {
169
+ throw new Error('Error while starting the worklet.');
170
+ }
171
+ } catch (error) {
172
+ throw new Error(error.message);
173
+ }
174
+ }
175
+ async importSeedPhrase(params) {
176
+ try {
177
+ const salt = wdkEncryptionSalt.generateWdkSalt(params.prf);
178
+ const rpc = BareWorkletApi.hrpcInstances.wdkSecretManager;
179
+ const workletStatus = await rpc.commandWorkletStart({
180
+ enableDebugLogs: 0
181
+ });
182
+ if (workletStatus.status === 'started') {
183
+ const encryptedData = await rpc.commandGenerateAndEncrypt({
184
+ passkey: params.prf,
185
+ salt: b4a.toString(salt, 'hex'),
186
+ seedPhrase: params.seedPhrase
187
+ });
188
+ await WdkSecretManagerStorage.saveData(WDK_STORAGE_ENTROPY, encryptedData.encryptedEntropy);
189
+ await WdkSecretManagerStorage.saveData(WDK_STORAGE_SEED, encryptedData.encryptedSeed);
190
+ await WdkSecretManagerStorage.saveData(WDK_STORAGE_SALT, salt);
191
+ } else {
192
+ throw new Error('Error while starting the worklet.');
193
+ }
194
+ } catch (error) {
195
+ throw new Error(error.message);
196
+ }
197
+ return true;
198
+ }
199
+ async retrieveSeed(passkey) {
200
+ let encryptedEntropy = null;
201
+ let encryptedSeed = null;
202
+ let salt = null;
203
+ if (await WdkSecretManagerStorage.hasKey(WDK_STORAGE_ENTROPY)) {
204
+ encryptedEntropy = await WdkSecretManagerStorage.retrieveData(WDK_STORAGE_ENTROPY);
205
+ }
206
+ if (await WdkSecretManagerStorage.hasKey(WDK_STORAGE_SEED)) {
207
+ encryptedSeed = await WdkSecretManagerStorage.retrieveData(WDK_STORAGE_SEED);
208
+ }
209
+ if (await WdkSecretManagerStorage.hasKey(WDK_STORAGE_SALT)) {
210
+ salt = await WdkSecretManagerStorage.retrieveData(WDK_STORAGE_SALT);
211
+ }
212
+ if (!encryptedSeed || !encryptedEntropy || !salt) {
213
+ return null;
214
+ }
215
+ try {
216
+ const rpc = BareWorkletApi.hrpcInstances.wdkSecretManager;
217
+ const workletStatus = await rpc.commandWorkletStart({
218
+ enableDebugLogs: 0
219
+ });
220
+ if (workletStatus.status === 'started') {
221
+ const decryptedData = await rpc.commandDecrypt({
222
+ passkey: passkey,
223
+ salt: b4a.toString(salt, 'hex'),
224
+ encryptedData: b4a.toString(encryptedEntropy, 'hex')
225
+ });
226
+ const seed = bip39.entropyToMnemonic(b4a.from(decryptedData.result, 'hex'));
227
+ return seed;
228
+ } else {
229
+ throw new Error('Error while starting the worklet.');
230
+ }
231
+ } catch (error) {
232
+ throw new Error(error.message);
233
+ }
234
+ }
235
+ async getAssetAddress(network, index) {
236
+ if (!this.wdkManager) {
237
+ throw new Error('WDK Manager not initialized');
238
+ }
239
+ if (network === NetworkType.SEGWIT) {
240
+ return await this.wdkManager.getAddress({
241
+ network: toNetwork(network),
242
+ accountIndex: index
243
+ });
244
+ } else {
245
+ return await this.wdkManager.getAbstractedAddress({
246
+ network: toNetwork(network),
247
+ accountIndex: index
248
+ });
249
+ }
250
+ }
251
+ async resolveWalletAddresses(enabledAssets, index = 0) {
252
+ if (!this.wdkManager) {
253
+ throw new Error('WDK Manager not initialized');
254
+ }
255
+ const addressPromises = [];
256
+ const networkAddresses = {};
257
+ const addressesArr = [];
258
+ for (const asset of enabledAssets) {
259
+ for (const networkType of Object.keys(AssetAddressMap[asset])) {
260
+ addressesArr.push({
261
+ [networkType]: null
262
+ });
263
+ addressPromises.push(this.getAssetAddress(networkType, index));
264
+ }
265
+ }
266
+ const addresses = await Promise.allSettled(addressPromises);
267
+ addressesArr.forEach((obj, i) => {
268
+ const key = Object.keys(obj)[0];
269
+ if (addresses[i]?.status === 'fulfilled') {
270
+ // @ts-expect-error
271
+ networkAddresses[key] = addresses[i].value.address;
272
+ } else {
273
+ // @ts-expect-error
274
+ networkAddresses[key] = null;
275
+ console.error(`Error while resolving wallet address ${key} - err - ${addresses[i].reason}`);
276
+ }
277
+ });
278
+ networkAddresses[NetworkType.POLYGON] = networkAddresses[NetworkType.ETHEREUM];
279
+ networkAddresses[NetworkType.ARBITRUM] = networkAddresses[NetworkType.ETHEREUM];
280
+ return networkAddresses;
281
+ }
282
+ async quoteSendByNetwork(network, index, amount, recipientAddress, asset) {
283
+ try {
284
+ if (!this.wdkManager) {
285
+ throw new Error('WDK Manager not initialized');
286
+ }
287
+ if (network === NetworkType.SEGWIT) {
288
+ const value = new Decimal(amount).mul(this.getDenominationValue(AssetTicker.BTC)).toNumber();
289
+ const quote = await this.wdkManager.quoteSendTransaction({
290
+ network: 'bitcoin',
291
+ accountIndex: index,
292
+ options: {
293
+ to: recipientAddress,
294
+ value: value.toString()
295
+ }
296
+ });
297
+ return Number(quote.fee) / this.getDenominationValue(AssetTicker.BTC);
298
+ } else if ([NetworkType.ETHEREUM, NetworkType.POLYGON, NetworkType.ARBITRUM, NetworkType.TON].includes(network)) {
299
+ const sendAmount = 1000;
300
+ const config = {
301
+ paymasterToken: {
302
+ // @ts-expect-error
303
+ address: SMART_CONTRACT_BALANCE_ADDRESSES[asset][network]
304
+ }
305
+ };
306
+ const quote = await this.wdkManager.abstractedAccountQuoteTransfer({
307
+ network: network,
308
+ accountIndex: index,
309
+ options: {
310
+ recipient: recipientAddress,
311
+ // @ts-expect-error
312
+ token: SMART_CONTRACT_BALANCE_ADDRESSES[asset][network],
313
+ amount: sendAmount.toString()
314
+ },
315
+ config: config
316
+ });
317
+ return Number(quote.fee) / this.getDenominationValue(AssetTicker.USDT);
318
+ } else {
319
+ throw new Error('Unsupported network');
320
+ }
321
+ } catch (error) {
322
+ const insufficientBalancePatterns = ['Insufficient balance', 'Details: validator: callData reverts', 'JSON is not a valid request object'];
323
+ if (insufficientBalancePatterns.some(pattern => error?.message?.includes(pattern))) {
324
+ throw new Error('Insufficient balance');
325
+ }
326
+ throw error;
327
+ }
328
+ }
329
+ async sendByNetwork(network, index, amount, recipientAddress, asset) {
330
+ if (!this.wdkManager) {
331
+ throw new Error('WDK Manager not initialized');
332
+ }
333
+
334
+ // Check if any wallet exists and the WDK Manager is started with a seed
335
+ const hasWallet = this.walletManagerCache.size > 0;
336
+ if (!hasWallet) {
337
+ throw new Error('No wallet found. Please create or import a wallet first before sending transactions.');
338
+ }
339
+ if (network === NetworkType.SEGWIT) {
340
+ const sendParams = {
341
+ to: recipientAddress,
342
+ value: new Decimal(amount).mul(this.getDenominationValue(AssetTicker.BTC)).round().toString()
343
+ };
344
+ const response = await this.wdkManager.sendTransaction({
345
+ network: network,
346
+ accountIndex: index,
347
+ options: sendParams
348
+ });
349
+ return response;
350
+ } else if ([NetworkType.ETHEREUM, NetworkType.POLYGON, NetworkType.ARBITRUM, NetworkType.TON].includes(network)) {
351
+ const sendParams = {
352
+ recipient: recipientAddress,
353
+ // @ts-expect-error
354
+ token: SMART_CONTRACT_BALANCE_ADDRESSES[asset][network],
355
+ amount: new Decimal(amount).mul(this.getDenominationValue(AssetTicker.USDT)).round().toString()
356
+ };
357
+ const config = {
358
+ paymasterToken: {
359
+ // @ts-expect-error
360
+ address: SMART_CONTRACT_BALANCE_ADDRESSES[asset][network]
361
+ }
362
+ };
363
+ const response = await this.wdkManager.abstractedAccountTransfer({
364
+ network: network,
365
+ accountIndex: index,
366
+ options: sendParams,
367
+ config
368
+ });
369
+ return response;
370
+ } else {
371
+ throw new Error('Unsupported network');
372
+ }
373
+ }
374
+ getDenominationValue(asset) {
375
+ switch (asset) {
376
+ case AssetTicker.BTC:
377
+ return 100000000;
378
+ case AssetTicker.USDT:
379
+ return 1000000;
380
+ case AssetTicker.XAUT:
381
+ return 1000000;
382
+ default:
383
+ return 1000000;
384
+ }
385
+ }
386
+ async createWallet(params) {
387
+ let seed = await this.retrieveSeed(params.prf);
388
+ if (!seed) {
389
+ seed = await this.createSeed(params);
390
+ }
391
+ const walletName = params.walletName;
392
+ const availableAssets = [AssetTicker.BTC, AssetTicker.USDT, AssetTicker.XAUT];
393
+ const wallet = {
394
+ id: `wallet_${Date.now()}`,
395
+ name: walletName,
396
+ enabledAssets: availableAssets
397
+ };
398
+ const wdkManager = BareWorkletApi.hrpcInstances.wdkManager;
399
+ await wdkManager.workletStart({
400
+ enableDebugLogs: 0,
401
+ seedPhrase: seed,
402
+ config: JSON.stringify(this.getChainsConfig())
403
+ });
404
+
405
+ // Update our local reference
406
+ this.wdkManager = BareWorkletApi.hrpcInstances.wdkManager;
407
+ if (!this.wdkManager) {
408
+ throw new Error('WDK Manager not initialized after wallet creation');
409
+ }
410
+ this.walletManagerCache.set(wallet.id, {
411
+ wdk: this.wdkManager,
412
+ data: wallet
413
+ });
414
+ return wallet;
415
+ }
416
+ async resolveWalletTransactions(enabledAssets, networkAddresses) {
417
+ const headers = new Headers();
418
+ headers.append('accept', 'application/json');
419
+ headers.append('x-api-key', this.getIndexerApiKey());
420
+ headers.append('Content-Type', 'application/json');
421
+ const payload = [];
422
+ const transactionMap = {};
423
+ const payloadKeys = []; // Track the keys in order to match with response array
424
+
425
+ enabledAssets.forEach(asset => {
426
+ const networks = AssetBalanceMap[asset];
427
+ if (!networks) return;
428
+ Object.keys(networks).forEach(networkType => {
429
+ const key = `${networkType}_${asset}`;
430
+ transactionMap[key] = [];
431
+ const address = networkAddresses[networkType];
432
+ if (address) {
433
+ payload.push({
434
+ blockchain: networkType,
435
+ token: asset,
436
+ address,
437
+ limit: 100
438
+ });
439
+ payloadKeys.push(key); // Track which key this payload corresponds to
440
+ }
441
+ });
442
+ });
443
+ const requestOptions = {
444
+ method: 'POST',
445
+ headers: headers,
446
+ body: JSON.stringify(payload)
447
+ };
448
+ const response = await fetch(`${this.getIndexerUrl()}/api/${this.getIndexerVersion()}/batch/token-transfers`, requestOptions);
449
+ if (!response.ok) {
450
+ throw new Error(`Failed to fetch transactions: ${response.status}`);
451
+ }
452
+ const data = await response.json();
453
+
454
+ // Process the batch response array - each element corresponds to a payload item by index
455
+ data.forEach((item, index) => {
456
+ const key = payloadKeys[index];
457
+ if (key) {
458
+ transactionMap[key] = item.transfers || [];
459
+ }
460
+ });
461
+ return transactionMap;
462
+ }
463
+ async resolveWalletBalances(enabledAssets, networkAddresses) {
464
+ const headers = new Headers();
465
+ headers.append('accept', 'application/json');
466
+ headers.append('x-api-key', this.getIndexerApiKey());
467
+ headers.append('Content-Type', 'application/json');
468
+ const payload = [];
469
+ enabledAssets.forEach(asset => {
470
+ const networks = AssetBalanceMap[asset];
471
+ if (!networks) return;
472
+ Object.keys(networks).forEach(networkType => {
473
+ const address = networkAddresses[networkType];
474
+ if (address) {
475
+ payload.push({
476
+ blockchain: networkType,
477
+ token: asset,
478
+ address
479
+ });
480
+ }
481
+ });
482
+ });
483
+ const requestOptions = {
484
+ method: 'POST',
485
+ headers: headers,
486
+ body: JSON.stringify(payload)
487
+ };
488
+ const response = await fetch(`${this.getIndexerUrl()}/api/${this.getIndexerVersion()}/batch/token-balances`, requestOptions);
489
+ if (!response.ok) {
490
+ throw new Error(`Failed to fetch balances: ${response.status}`);
491
+ }
492
+ const data = await response.json();
493
+ const balanceMap = Object.entries(data).reduce((allBalances, [_, value]) => {
494
+ const obj = value.tokenBalance;
495
+ allBalances[`${obj.blockchain}_${obj.token}`] = {
496
+ balance: parseFloat(obj.amount),
497
+ asset: obj.token
498
+ };
499
+ return allBalances;
500
+ }, {});
501
+ return balanceMap;
502
+ }
503
+ }
504
+ export const wdkService = WDKService.getInstance();
505
+ export { wdkService as WDKService };
506
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["wdkWorkletBundle","b4a","bip39","Decimal","secretManagerWorkletBundle","BareWorkletApi","InstanceEnum","AssetAddressMap","AssetBalanceMap","AssetTicker","NetworkType","wdkEncryptionSalt","WDK_STORAGE_ENTROPY","WDK_STORAGE_SALT","WDK_STORAGE_SEED","WdkSecretManagerStorage","SMART_CONTRACT_BALANCE_ADDRESSES","USDT","ethereum","polygon","arbitrum","ton","XAUT","toNetwork","n","SEGWIT","ETHEREUM","TON","POLYGON","ARBITRUM","SOLANA","TRON","WDKService","walletManagerCache","Map","isInitialized","wdkManager","secretManager","constructor","getInstance","instance","setConfig","config","getIndexerUrl","Error","indexer","url","getIndexerVersion","version","getIndexerApiKey","apiKey","getChainsConfig","chains","initialize","startWorklet","wdkSecretManager","Promise","resolve","setTimeout","hrpcInstances","error","console","clearWallet","commandWorkletStop","warn","resetAllData","clear","createSeed","params","salt","generateWdkSalt","prf","rpc","workletStatus","commandWorkletStart","enableDebugLogs","status","encryptedData","commandGenerateAndEncrypt","passkey","toString","saveData","encryptedEntropy","encryptedSeed","decryptedData","commandDecrypt","seed","entropyToMnemonic","from","result","message","importSeedPhrase","seedPhrase","retrieveSeed","hasKey","retrieveData","getAssetAddress","network","index","getAddress","accountIndex","getAbstractedAddress","resolveWalletAddresses","enabledAssets","addressPromises","networkAddresses","addressesArr","asset","networkType","Object","keys","push","addresses","allSettled","forEach","obj","i","key","value","address","reason","quoteSendByNetwork","amount","recipientAddress","mul","getDenominationValue","BTC","toNumber","quote","quoteSendTransaction","options","to","Number","fee","includes","sendAmount","paymasterToken","abstractedAccountQuoteTransfer","recipient","token","insufficientBalancePatterns","some","pattern","sendByNetwork","hasWallet","size","sendParams","round","response","sendTransaction","abstractedAccountTransfer","createWallet","walletName","availableAssets","wallet","id","Date","now","name","workletStart","JSON","stringify","set","wdk","data","resolveWalletTransactions","headers","Headers","append","payload","transactionMap","payloadKeys","networks","blockchain","limit","requestOptions","method","body","fetch","ok","json","item","transfers","resolveWalletBalances","balanceMap","entries","reduce","allBalances","_","tokenBalance","balance","parseFloat","wdkService"],"sourceRoot":"../../../../src","sources":["services/wdk-service/index.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ export let AssetTicker = /*#__PURE__*/function (AssetTicker) {
4
+ AssetTicker["BTC"] = "btc";
5
+ AssetTicker["USDT"] = "usdt";
6
+ AssetTicker["XAUT"] = "xaut";
7
+ return AssetTicker;
8
+ }({});
9
+ export let NetworkType = /*#__PURE__*/function (NetworkType) {
10
+ NetworkType["SEGWIT"] = "bitcoin";
11
+ NetworkType["LIGHTNING"] = "lightning";
12
+ NetworkType["ETHEREUM"] = "ethereum";
13
+ NetworkType["SOLANA"] = "solana";
14
+ NetworkType["TRON"] = "tron";
15
+ NetworkType["TON"] = "ton";
16
+ NetworkType["POLYGON"] = "polygon";
17
+ NetworkType["ARBITRUM"] = "arbitrum";
18
+ return NetworkType;
19
+ }({});
20
+ export const AssetAddressMap = {
21
+ [AssetTicker.BTC]: {
22
+ [NetworkType.SEGWIT]: 'bitcoin'
23
+ },
24
+ [AssetTicker.USDT]: {
25
+ [NetworkType.ETHEREUM]: 'ethereum',
26
+ [NetworkType.POLYGON]: 'polygon',
27
+ [NetworkType.ARBITRUM]: 'arbitrum',
28
+ [NetworkType.TON]: 'ton'
29
+ },
30
+ [AssetTicker.XAUT]: {
31
+ [NetworkType.ETHEREUM]: 'ethereum'
32
+ }
33
+ };
34
+ export const AssetBalanceMap = {
35
+ [AssetTicker.BTC]: {
36
+ [NetworkType.SEGWIT]: 'bitcoin'
37
+ },
38
+ [AssetTicker.USDT]: {
39
+ [NetworkType.ETHEREUM]: 'ethereum',
40
+ [NetworkType.POLYGON]: 'polygon',
41
+ [NetworkType.ARBITRUM]: 'arbitrum',
42
+ [NetworkType.TON]: 'ton'
43
+ },
44
+ [AssetTicker.XAUT]: {
45
+ [NetworkType.ETHEREUM]: 'ethereum'
46
+ }
47
+ };
48
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["AssetTicker","NetworkType","AssetAddressMap","BTC","SEGWIT","USDT","ETHEREUM","POLYGON","ARBITRUM","TON","XAUT","AssetBalanceMap"],"sourceRoot":"../../../../src","sources":["services/wdk-service/types.ts"],"mappings":";;AAAA,WAAYA,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAMvB,WAAYC,WAAW,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAWvB,OAAO,MAAMC,eAAe,GAAG;EAC7B,CAACF,WAAW,CAACG,GAAG,GAAG;IACjB,CAACF,WAAW,CAACG,MAAM,GAAG;EACxB,CAAC;EACD,CAACJ,WAAW,CAACK,IAAI,GAAG;IAClB,CAACJ,WAAW,CAACK,QAAQ,GAAG,UAAU;IAClC,CAACL,WAAW,CAACM,OAAO,GAAG,SAAS;IAChC,CAACN,WAAW,CAACO,QAAQ,GAAG,UAAU;IAClC,CAACP,WAAW,CAACQ,GAAG,GAAG;EACrB,CAAC;EACD,CAACT,WAAW,CAACU,IAAI,GAAG;IAClB,CAACT,WAAW,CAACK,QAAQ,GAAG;EAC1B;AACF,CAAC;AAED,OAAO,MAAMK,eAAe,GAAG;EAC7B,CAACX,WAAW,CAACG,GAAG,GAAG;IACjB,CAACF,WAAW,CAACG,MAAM,GAAG;EACxB,CAAC;EACD,CAACJ,WAAW,CAACK,IAAI,GAAG;IAClB,CAACJ,WAAW,CAACK,QAAQ,GAAG,UAAU;IAClC,CAACL,WAAW,CAACM,OAAO,GAAG,SAAS;IAChC,CAACN,WAAW,CAACO,QAAQ,GAAG,UAAU;IAClC,CAACP,WAAW,CAACQ,GAAG,GAAG;EACrB,CAAC;EACD,CAACT,WAAW,CAACU,IAAI,GAAG;IAClB,CAACT,WAAW,CAACK,QAAQ,GAAG;EAC1B;AACF,CAAC","ignoreList":[]}