@spacesops/wdk-react-native-provider 1.0.0-beta.3
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/LICENSE +176 -0
- package/README.md +841 -0
- package/lib/module/contexts/constants.js +20 -0
- package/lib/module/contexts/constants.js.map +1 -0
- package/lib/module/contexts/reducer.js +87 -0
- package/lib/module/contexts/reducer.js.map +1 -0
- package/lib/module/contexts/types.js +4 -0
- package/lib/module/contexts/types.js.map +1 -0
- package/lib/module/contexts/wallet-context.js +409 -0
- package/lib/module/contexts/wallet-context.js.map +1 -0
- package/lib/module/index.js +15 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/polyfills.js +34 -0
- package/lib/module/polyfills.js.map +1 -0
- package/lib/module/services/wdk-service/bare-api.js +69 -0
- package/lib/module/services/wdk-service/bare-api.js.map +1 -0
- package/lib/module/services/wdk-service/index.js +506 -0
- package/lib/module/services/wdk-service/index.js.map +1 -0
- package/lib/module/services/wdk-service/types.js +48 -0
- package/lib/module/services/wdk-service/types.js.map +1 -0
- package/lib/module/services/wdk-service/wdk-encryption-salt.js +29 -0
- package/lib/module/services/wdk-service/wdk-encryption-salt.js.map +1 -0
- package/lib/module/services/wdk-service/wdk-secret-manager-storage.js +64 -0
- package/lib/module/services/wdk-service/wdk-secret-manager-storage.js.map +1 -0
- package/lib/module/services/wdk-service/wdk-secret-manager-worklet.bundle.js +1 -0
- package/lib/module/services/wdk-service/wdk-worklet.mobile.bundle.js +1 -0
- package/lib/module/spec/hrpc/hrpc.json +66 -0
- package/lib/module/spec/hrpc/index.js +121 -0
- package/lib/module/spec/hrpc/index.js.map +1 -0
- package/lib/module/spec/hrpc/messages.js +291 -0
- package/lib/module/spec/hrpc/messages.js.map +1 -0
- package/lib/module/spec/schema/index.js +291 -0
- package/lib/module/spec/schema/index.js.map +1 -0
- package/lib/module/spec/schema/schema.json +186 -0
- package/lib/module/utils/get-balances-from-balance-map.js +18 -0
- package/lib/module/utils/get-balances-from-balance-map.js.map +1 -0
- package/lib/module/utils/get-transactions-from-transaction-map.js +10 -0
- package/lib/module/utils/get-transactions-from-transaction-map.js.map +1 -0
- package/lib/module/worklet/wdk-secret-manager-worklet.js +106 -0
- package/lib/module/worklet/wdk-secret-manager-worklet.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/contexts/constants.d.ts +3 -0
- package/lib/typescript/src/contexts/constants.d.ts.map +1 -0
- package/lib/typescript/src/contexts/reducer.d.ts +38 -0
- package/lib/typescript/src/contexts/reducer.d.ts.map +1 -0
- package/lib/typescript/src/contexts/types.d.ts +40 -0
- package/lib/typescript/src/contexts/types.d.ts.map +1 -0
- package/lib/typescript/src/contexts/wallet-context.d.ts +10 -0
- package/lib/typescript/src/contexts/wallet-context.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +7 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/polyfills.d.ts +7 -0
- package/lib/typescript/src/polyfills.d.ts.map +1 -0
- package/lib/typescript/src/services/wdk-service/bare-api.d.ts +32 -0
- package/lib/typescript/src/services/wdk-service/bare-api.d.ts.map +1 -0
- package/lib/typescript/src/services/wdk-service/index.d.ts +68 -0
- package/lib/typescript/src/services/wdk-service/index.d.ts.map +1 -0
- package/lib/typescript/src/services/wdk-service/types.d.ts +125 -0
- package/lib/typescript/src/services/wdk-service/types.d.ts.map +1 -0
- package/lib/typescript/src/services/wdk-service/wdk-encryption-salt.d.ts +6 -0
- package/lib/typescript/src/services/wdk-service/wdk-encryption-salt.d.ts.map +1 -0
- package/lib/typescript/src/services/wdk-service/wdk-secret-manager-storage.d.ts +13 -0
- package/lib/typescript/src/services/wdk-service/wdk-secret-manager-storage.d.ts.map +1 -0
- package/lib/typescript/src/utils/get-balances-from-balance-map.d.ts +4 -0
- package/lib/typescript/src/utils/get-balances-from-balance-map.d.ts.map +1 -0
- package/lib/typescript/src/utils/get-transactions-from-transaction-map.d.ts +4 -0
- package/lib/typescript/src/utils/get-transactions-from-transaction-map.d.ts.map +1 -0
- package/metro-polyfills.js +89 -0
- package/package.json +152 -0
- package/src/contexts/constants.ts +19 -0
- package/src/contexts/reducer.ts +103 -0
- package/src/contexts/types.ts +51 -0
- package/src/contexts/wallet-context.tsx +411 -0
- package/src/index.tsx +28 -0
- package/src/polyfills.ts +31 -0
- package/src/services/wdk-service/bare-api.ts +88 -0
- package/src/services/wdk-service/index.ts +765 -0
- package/src/services/wdk-service/types.ts +137 -0
- package/src/services/wdk-service/wdk-encryption-salt.ts +30 -0
- package/src/services/wdk-service/wdk-secret-manager-storage.ts +102 -0
- package/src/spec/hrpc/hrpc.json +66 -0
- package/src/spec/hrpc/index.js +228 -0
- package/src/spec/hrpc/messages.js +328 -0
- package/src/spec/schema/index.js +328 -0
- package/src/spec/schema/schema.json +186 -0
- package/src/utils/get-balances-from-balance-map.ts +22 -0
- package/src/utils/get-transactions-from-transaction-map.ts +18 -0
- package/src/worklet/wdk-secret-manager-worklet.js +118 -0
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const WALLET_CONTEXT_INITIAL_STATE = {
|
|
4
|
+
wallet: null,
|
|
5
|
+
balances: {
|
|
6
|
+
list: [],
|
|
7
|
+
map: {},
|
|
8
|
+
isLoading: false
|
|
9
|
+
},
|
|
10
|
+
transactions: {
|
|
11
|
+
list: [],
|
|
12
|
+
map: {},
|
|
13
|
+
isLoading: false
|
|
14
|
+
},
|
|
15
|
+
isUnlocked: false,
|
|
16
|
+
isInitialized: false,
|
|
17
|
+
isLoading: false,
|
|
18
|
+
error: null
|
|
19
|
+
};
|
|
20
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["WALLET_CONTEXT_INITIAL_STATE","wallet","balances","list","map","isLoading","transactions","isUnlocked","isInitialized","error"],"sourceRoot":"../../../src","sources":["contexts/constants.ts"],"mappings":";;AAEA,OAAO,MAAMA,4BAAgD,GAAG;EAC9DC,MAAM,EAAE,IAAI;EACZC,QAAQ,EAAE;IACRC,IAAI,EAAE,EAAE;IACRC,GAAG,EAAE,CAAC,CAAC;IACPC,SAAS,EAAE;EACb,CAAC;EACDC,YAAY,EAAE;IACZH,IAAI,EAAE,EAAE;IACRC,GAAG,EAAE,CAAC,CAAC;IACPC,SAAS,EAAE;EACb,CAAC;EACDE,UAAU,EAAE,KAAK;EACjBC,aAAa,EAAE,KAAK;EACpBH,SAAS,EAAE,KAAK;EAChBI,KAAK,EAAE;AACT,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import getBalancesFromBalanceMap from "../utils/get-balances-from-balance-map.js";
|
|
4
|
+
import getTransactionsFromTransactionMap from "../utils/get-transactions-from-transaction-map.js";
|
|
5
|
+
import { WALLET_CONTEXT_INITIAL_STATE } from "./constants.js";
|
|
6
|
+
// Reducer
|
|
7
|
+
function reducer(state, action) {
|
|
8
|
+
switch (action.type) {
|
|
9
|
+
case 'SET_LOADING':
|
|
10
|
+
return {
|
|
11
|
+
...state,
|
|
12
|
+
isLoading: action.payload
|
|
13
|
+
};
|
|
14
|
+
case 'SET_ERROR':
|
|
15
|
+
return {
|
|
16
|
+
...state,
|
|
17
|
+
error: action.payload,
|
|
18
|
+
isLoading: false
|
|
19
|
+
};
|
|
20
|
+
case 'SET_WALLET':
|
|
21
|
+
return {
|
|
22
|
+
...state,
|
|
23
|
+
wallet: action.payload
|
|
24
|
+
};
|
|
25
|
+
case 'SET_ADDRESSES':
|
|
26
|
+
return {
|
|
27
|
+
...state,
|
|
28
|
+
addresses: action.payload
|
|
29
|
+
};
|
|
30
|
+
case 'SET_INITIALIZED':
|
|
31
|
+
return {
|
|
32
|
+
...state,
|
|
33
|
+
isInitialized: action.payload
|
|
34
|
+
};
|
|
35
|
+
case 'SET_UNLOCKED':
|
|
36
|
+
return {
|
|
37
|
+
...state,
|
|
38
|
+
isUnlocked: action.payload
|
|
39
|
+
};
|
|
40
|
+
case 'SET_BALANCES':
|
|
41
|
+
const balances = getBalancesFromBalanceMap(action.payload);
|
|
42
|
+
return {
|
|
43
|
+
...state,
|
|
44
|
+
balances: {
|
|
45
|
+
...state.balances,
|
|
46
|
+
list: balances,
|
|
47
|
+
map: action.payload
|
|
48
|
+
}
|
|
49
|
+
};
|
|
50
|
+
case 'SET_TRANSACTIONS':
|
|
51
|
+
const transactions = getTransactionsFromTransactionMap(action.payload);
|
|
52
|
+
return {
|
|
53
|
+
...state,
|
|
54
|
+
transactions: {
|
|
55
|
+
...state.transactions,
|
|
56
|
+
list: transactions,
|
|
57
|
+
map: action.payload
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
case 'SET_LOADING_BALANCES':
|
|
61
|
+
return {
|
|
62
|
+
...state,
|
|
63
|
+
balances: {
|
|
64
|
+
...state.balances,
|
|
65
|
+
isLoading: action.payload
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
case 'SET_LOADING_TRANSACTIONS':
|
|
69
|
+
return {
|
|
70
|
+
...state,
|
|
71
|
+
transactions: {
|
|
72
|
+
...state.transactions,
|
|
73
|
+
isLoading: action.payload
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
case 'CLEAR_WALLET':
|
|
77
|
+
return {
|
|
78
|
+
...WALLET_CONTEXT_INITIAL_STATE,
|
|
79
|
+
// Keep isInitialized true since WDK worklets remain active
|
|
80
|
+
isInitialized: state.isInitialized
|
|
81
|
+
};
|
|
82
|
+
default:
|
|
83
|
+
return state;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
export default reducer;
|
|
87
|
+
//# sourceMappingURL=reducer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getBalancesFromBalanceMap","getTransactionsFromTransactionMap","WALLET_CONTEXT_INITIAL_STATE","reducer","state","action","type","isLoading","payload","error","wallet","addresses","isInitialized","isUnlocked","balances","list","map","transactions"],"sourceRoot":"../../../src","sources":["contexts/reducer.ts"],"mappings":";;AAMA,OAAOA,yBAAyB,MAAM,2CAAwC;AAC9E,OAAOC,iCAAiC,MAAM,mDAAgD;AAE9F,SAASC,4BAA4B,QAAQ,gBAAa;AAe1D;AACA,SAASC,OAAOA,CACdC,KAAyB,EACzBC,MAAoB,EACA;EACpB,QAAQA,MAAM,CAACC,IAAI;IACjB,KAAK,aAAa;MAChB,OAAO;QAAE,GAAGF,KAAK;QAAEG,SAAS,EAAEF,MAAM,CAACG;MAAQ,CAAC;IAEhD,KAAK,WAAW;MACd,OAAO;QAAE,GAAGJ,KAAK;QAAEK,KAAK,EAAEJ,MAAM,CAACG,OAAO;QAAED,SAAS,EAAE;MAAM,CAAC;IAE9D,KAAK,YAAY;MACf,OAAO;QACL,GAAGH,KAAK;QACRM,MAAM,EAAEL,MAAM,CAACG;MACjB,CAAC;IAEH,KAAK,eAAe;MAClB,OAAO;QACL,GAAGJ,KAAK;QACRO,SAAS,EAAEN,MAAM,CAACG;MACpB,CAAC;IAEH,KAAK,iBAAiB;MACpB,OAAO;QAAE,GAAGJ,KAAK;QAAEQ,aAAa,EAAEP,MAAM,CAACG;MAAQ,CAAC;IAEpD,KAAK,cAAc;MACjB,OAAO;QAAE,GAAGJ,KAAK;QAAES,UAAU,EAAER,MAAM,CAACG;MAAQ,CAAC;IAEjD,KAAK,cAAc;MACjB,MAAMM,QAAQ,GAAGd,yBAAyB,CAACK,MAAM,CAACG,OAAO,CAAC;MAE1D,OAAO;QACL,GAAGJ,KAAK;QACRU,QAAQ,EAAE;UACR,GAAGV,KAAK,CAACU,QAAQ;UACjBC,IAAI,EAAED,QAAQ;UACdE,GAAG,EAAEX,MAAM,CAACG;QACd;MACF,CAAC;IAEH,KAAK,kBAAkB;MACrB,MAAMS,YAAY,GAAGhB,iCAAiC,CAACI,MAAM,CAACG,OAAO,CAAC;MAEtE,OAAO;QACL,GAAGJ,KAAK;QACRa,YAAY,EAAE;UACZ,GAAGb,KAAK,CAACa,YAAY;UACrBF,IAAI,EAAEE,YAAY;UAClBD,GAAG,EAAEX,MAAM,CAACG;QACd;MACF,CAAC;IAEH,KAAK,sBAAsB;MACzB,OAAO;QACL,GAAGJ,KAAK;QACRU,QAAQ,EAAE;UAAE,GAAGV,KAAK,CAACU,QAAQ;UAAEP,SAAS,EAAEF,MAAM,CAACG;QAAQ;MAC3D,CAAC;IAEH,KAAK,0BAA0B;MAC7B,OAAO;QACL,GAAGJ,KAAK;QACRa,YAAY,EAAE;UAAE,GAAGb,KAAK,CAACa,YAAY;UAAEV,SAAS,EAAEF,MAAM,CAACG;QAAQ;MACnE,CAAC;IAEH,KAAK,cAAc;MACjB,OAAO;QACL,GAAGN,4BAA4B;QAC/B;QACAU,aAAa,EAAER,KAAK,CAACQ;MACvB,CAAC;IAEH;MACE,OAAOR,KAAK;EAChB;AACF;AAEA,eAAeD,OAAO","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["contexts/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,409 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import AsyncStorage from '@react-native-async-storage/async-storage';
|
|
4
|
+
import { createContext, useContext, useEffect, useReducer } from 'react';
|
|
5
|
+
import { WDKService } from "../services/wdk-service/index.js";
|
|
6
|
+
import walletReducer from "./reducer.js";
|
|
7
|
+
import { getUniqueId } from 'react-native-device-info';
|
|
8
|
+
import { WALLET_CONTEXT_INITIAL_STATE } from "./constants.js";
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
const STORAGE_KEY_WALLET = 'wdk_wallet_data';
|
|
11
|
+
const STORAGE_KEY_ADDRESSES = 'wdk_wallet_addresses';
|
|
12
|
+
const STORAGE_KEY_BALANCES = 'wdk_wallet_balances';
|
|
13
|
+
const STORAGE_KEY_TRANSACTIONS = 'wdk_wallet_transactions';
|
|
14
|
+
|
|
15
|
+
// Create context
|
|
16
|
+
const WalletContext = /*#__PURE__*/createContext(undefined);
|
|
17
|
+
|
|
18
|
+
// Provider component
|
|
19
|
+
export function WalletProvider({
|
|
20
|
+
children,
|
|
21
|
+
config
|
|
22
|
+
}) {
|
|
23
|
+
const [state, dispatch] = useReducer(walletReducer, WALLET_CONTEXT_INITIAL_STATE);
|
|
24
|
+
|
|
25
|
+
// Set WDK config on mount
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
WDKService.setConfig({
|
|
28
|
+
...config,
|
|
29
|
+
indexer: {
|
|
30
|
+
...config.indexer,
|
|
31
|
+
version: config.indexer.version || 'v1'
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
initializeWDK();
|
|
35
|
+
}, [config]);
|
|
36
|
+
|
|
37
|
+
// Load wallet from storage on mount
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
loadStoredWallet();
|
|
40
|
+
}, []);
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
const enabledAssets = state.wallet?.enabledAssets;
|
|
43
|
+
const addressMap = state.addresses;
|
|
44
|
+
if (enabledAssets && addressMap) {
|
|
45
|
+
fetchBalances();
|
|
46
|
+
fetchTransactions();
|
|
47
|
+
}
|
|
48
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
49
|
+
}, [state.wallet?.enabledAssets, state.addresses]);
|
|
50
|
+
|
|
51
|
+
// Save wallet to storage whenever wallet changes
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
if (state.isInitialized && state.wallet) {
|
|
54
|
+
saveWalletToStorage();
|
|
55
|
+
}
|
|
56
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
57
|
+
}, [state.wallet, state.isInitialized]);
|
|
58
|
+
const loadStoredWallet = async () => {
|
|
59
|
+
try {
|
|
60
|
+
const stored = await AsyncStorage.getItem(STORAGE_KEY_WALLET);
|
|
61
|
+
if (stored) {
|
|
62
|
+
const data = JSON.parse(stored);
|
|
63
|
+
let parsed = data;
|
|
64
|
+
if (parsed) {
|
|
65
|
+
dispatch({
|
|
66
|
+
type: 'SET_WALLET',
|
|
67
|
+
payload: parsed
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
} catch (error) {
|
|
72
|
+
dispatch({
|
|
73
|
+
type: 'SET_ERROR',
|
|
74
|
+
payload: error instanceof Error ? error.message : 'Failed to load stored wallet'
|
|
75
|
+
});
|
|
76
|
+
console.error('Failed to load stored wallet:', error);
|
|
77
|
+
}
|
|
78
|
+
};
|
|
79
|
+
const saveWalletToStorage = async () => {
|
|
80
|
+
try {
|
|
81
|
+
if (state.wallet) {
|
|
82
|
+
await AsyncStorage.setItem(STORAGE_KEY_WALLET, JSON.stringify(state.wallet));
|
|
83
|
+
}
|
|
84
|
+
} catch (error) {
|
|
85
|
+
console.error('Failed to save wallet to storage:', error);
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
const getWalletAddresses = async enabledAssets => {
|
|
89
|
+
try {
|
|
90
|
+
const stored = await AsyncStorage.getItem(STORAGE_KEY_ADDRESSES);
|
|
91
|
+
if (stored) {
|
|
92
|
+
return JSON.parse(stored);
|
|
93
|
+
} else {
|
|
94
|
+
const addresses = await WDKService.resolveWalletAddresses(enabledAssets);
|
|
95
|
+
await AsyncStorage.setItem(STORAGE_KEY_ADDRESSES, JSON.stringify(addresses));
|
|
96
|
+
return addresses;
|
|
97
|
+
}
|
|
98
|
+
} catch (error) {
|
|
99
|
+
console.error('Failed to get wallet addresses:', error);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
102
|
+
const clearError = () => {
|
|
103
|
+
dispatch({
|
|
104
|
+
type: 'SET_ERROR',
|
|
105
|
+
payload: null
|
|
106
|
+
});
|
|
107
|
+
};
|
|
108
|
+
const initializeWDK = async () => {
|
|
109
|
+
try {
|
|
110
|
+
dispatch({
|
|
111
|
+
type: 'SET_LOADING',
|
|
112
|
+
payload: true
|
|
113
|
+
});
|
|
114
|
+
await WDKService.initialize();
|
|
115
|
+
} catch (error) {
|
|
116
|
+
const errorMessage = error instanceof Error ? error.message : 'Failed to initialize WDK';
|
|
117
|
+
dispatch({
|
|
118
|
+
type: 'SET_ERROR',
|
|
119
|
+
payload: errorMessage
|
|
120
|
+
});
|
|
121
|
+
throw error;
|
|
122
|
+
} finally {
|
|
123
|
+
dispatch({
|
|
124
|
+
type: 'SET_LOADING',
|
|
125
|
+
payload: false
|
|
126
|
+
});
|
|
127
|
+
dispatch({
|
|
128
|
+
type: 'SET_INITIALIZED',
|
|
129
|
+
payload: true
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
const createWallet = async params => {
|
|
134
|
+
if (!state.isInitialized) {
|
|
135
|
+
throw new Error('WDK is not initialized');
|
|
136
|
+
}
|
|
137
|
+
try {
|
|
138
|
+
dispatch({
|
|
139
|
+
type: 'SET_LOADING',
|
|
140
|
+
payload: true
|
|
141
|
+
});
|
|
142
|
+
const prf = await getUniqueId();
|
|
143
|
+
if (params.mnemonic) {
|
|
144
|
+
await WDKService.importSeedPhrase({
|
|
145
|
+
prf,
|
|
146
|
+
seedPhrase: params.mnemonic
|
|
147
|
+
});
|
|
148
|
+
} else {
|
|
149
|
+
await WDKService.createSeed({
|
|
150
|
+
prf
|
|
151
|
+
});
|
|
152
|
+
}
|
|
153
|
+
const wallet = await WDKService.createWallet({
|
|
154
|
+
walletName: params.name,
|
|
155
|
+
prf
|
|
156
|
+
});
|
|
157
|
+
const addresses = await getWalletAddresses(wallet.enabledAssets);
|
|
158
|
+
dispatch({
|
|
159
|
+
type: 'SET_WALLET',
|
|
160
|
+
payload: wallet
|
|
161
|
+
});
|
|
162
|
+
dispatch({
|
|
163
|
+
type: 'SET_ADDRESSES',
|
|
164
|
+
payload: addresses
|
|
165
|
+
});
|
|
166
|
+
dispatch({
|
|
167
|
+
type: 'SET_UNLOCKED',
|
|
168
|
+
payload: true
|
|
169
|
+
});
|
|
170
|
+
return wallet;
|
|
171
|
+
} catch (error) {
|
|
172
|
+
const errorMessage = error instanceof Error ? error.message : 'Failed to create wallet';
|
|
173
|
+
dispatch({
|
|
174
|
+
type: 'SET_ERROR',
|
|
175
|
+
payload: errorMessage
|
|
176
|
+
});
|
|
177
|
+
throw error;
|
|
178
|
+
} finally {
|
|
179
|
+
dispatch({
|
|
180
|
+
type: 'SET_LOADING',
|
|
181
|
+
payload: false
|
|
182
|
+
});
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
const unlockWallet = async () => {
|
|
186
|
+
if (!state.wallet) {
|
|
187
|
+
throw new Error('No wallet found');
|
|
188
|
+
}
|
|
189
|
+
try {
|
|
190
|
+
// Get device ID for seed retrieval
|
|
191
|
+
const prf = await getUniqueId();
|
|
192
|
+
|
|
193
|
+
// Create wallet using the stored seed
|
|
194
|
+
const wallet = await WDKService.createWallet({
|
|
195
|
+
walletName: state.wallet.name,
|
|
196
|
+
prf
|
|
197
|
+
});
|
|
198
|
+
const addresses = await getWalletAddresses(wallet.enabledAssets);
|
|
199
|
+
dispatch({
|
|
200
|
+
type: 'SET_WALLET',
|
|
201
|
+
payload: wallet
|
|
202
|
+
});
|
|
203
|
+
dispatch({
|
|
204
|
+
type: 'SET_ADDRESSES',
|
|
205
|
+
payload: addresses
|
|
206
|
+
});
|
|
207
|
+
dispatch({
|
|
208
|
+
type: 'SET_UNLOCKED',
|
|
209
|
+
payload: true
|
|
210
|
+
});
|
|
211
|
+
return true;
|
|
212
|
+
} catch (error) {
|
|
213
|
+
const errorMessage = error instanceof Error ? error.message : 'Failed to unlock wallet';
|
|
214
|
+
throw new Error(errorMessage);
|
|
215
|
+
}
|
|
216
|
+
};
|
|
217
|
+
const clearWallet = async () => {
|
|
218
|
+
dispatch({
|
|
219
|
+
type: 'CLEAR_WALLET'
|
|
220
|
+
});
|
|
221
|
+
try {
|
|
222
|
+
await AsyncStorage.removeItem(STORAGE_KEY_WALLET);
|
|
223
|
+
await AsyncStorage.removeItem(STORAGE_KEY_ADDRESSES);
|
|
224
|
+
await AsyncStorage.removeItem(STORAGE_KEY_BALANCES);
|
|
225
|
+
await AsyncStorage.removeItem(STORAGE_KEY_TRANSACTIONS);
|
|
226
|
+
await WDKService.clearWallet();
|
|
227
|
+
} catch (error) {
|
|
228
|
+
console.error('Failed to clear wallet from AsyncStorage:', error);
|
|
229
|
+
}
|
|
230
|
+
};
|
|
231
|
+
const getUpdatedBalances = async params => {
|
|
232
|
+
const {
|
|
233
|
+
enabledAssets,
|
|
234
|
+
addressMap
|
|
235
|
+
} = params;
|
|
236
|
+
const balanceMap = await WDKService.resolveWalletBalances(enabledAssets, addressMap);
|
|
237
|
+
if (config.enableCaching) {
|
|
238
|
+
// save fresh data to AsyncStorage
|
|
239
|
+
await AsyncStorage.setItem(STORAGE_KEY_BALANCES, JSON.stringify(balanceMap));
|
|
240
|
+
}
|
|
241
|
+
return balanceMap;
|
|
242
|
+
};
|
|
243
|
+
const getUpdatedTransactions = async params => {
|
|
244
|
+
const {
|
|
245
|
+
enabledAssets,
|
|
246
|
+
addressMap
|
|
247
|
+
} = params;
|
|
248
|
+
const transactionMap = await WDKService.resolveWalletTransactions(enabledAssets, addressMap);
|
|
249
|
+
if (config.enableCaching) {
|
|
250
|
+
// save fresh data to AsyncStorage
|
|
251
|
+
await AsyncStorage.setItem(STORAGE_KEY_TRANSACTIONS, JSON.stringify(transactionMap));
|
|
252
|
+
}
|
|
253
|
+
return transactionMap;
|
|
254
|
+
};
|
|
255
|
+
const fetchBalances = async params => {
|
|
256
|
+
const {
|
|
257
|
+
forceUpdate = false
|
|
258
|
+
} = params || {};
|
|
259
|
+
if (!state.wallet) {
|
|
260
|
+
throw new Error('Wallet not found');
|
|
261
|
+
}
|
|
262
|
+
if (!state.addresses) {
|
|
263
|
+
throw new Error('Addresses not found');
|
|
264
|
+
}
|
|
265
|
+
const enabledAssets = state.wallet.enabledAssets || [];
|
|
266
|
+
const addressMap = state.addresses || {};
|
|
267
|
+
|
|
268
|
+
// Check if we have cached balances in state
|
|
269
|
+
if (config.enableCaching && !forceUpdate) {
|
|
270
|
+
try {
|
|
271
|
+
const stored = await AsyncStorage.getItem(STORAGE_KEY_BALANCES);
|
|
272
|
+
if (stored) {
|
|
273
|
+
const balanceMap = JSON.parse(stored);
|
|
274
|
+
dispatch({
|
|
275
|
+
type: 'SET_BALANCES',
|
|
276
|
+
payload: balanceMap
|
|
277
|
+
});
|
|
278
|
+
}
|
|
279
|
+
} catch (error) {
|
|
280
|
+
console.error('Failed to load cached balances:', error);
|
|
281
|
+
}
|
|
282
|
+
}
|
|
283
|
+
|
|
284
|
+
// Set loading state
|
|
285
|
+
dispatch({
|
|
286
|
+
type: 'SET_LOADING_BALANCES',
|
|
287
|
+
payload: true
|
|
288
|
+
});
|
|
289
|
+
try {
|
|
290
|
+
// Fetch fresh data
|
|
291
|
+
const balanceMap = await getUpdatedBalances({
|
|
292
|
+
enabledAssets,
|
|
293
|
+
addressMap
|
|
294
|
+
});
|
|
295
|
+
|
|
296
|
+
// Update state with fresh data
|
|
297
|
+
dispatch({
|
|
298
|
+
type: 'SET_BALANCES',
|
|
299
|
+
payload: balanceMap
|
|
300
|
+
});
|
|
301
|
+
} catch (error) {
|
|
302
|
+
console.error('Failed to fetch balances:', error);
|
|
303
|
+
} finally {
|
|
304
|
+
dispatch({
|
|
305
|
+
type: 'SET_LOADING_BALANCES',
|
|
306
|
+
payload: false
|
|
307
|
+
});
|
|
308
|
+
}
|
|
309
|
+
};
|
|
310
|
+
const fetchTransactions = async params => {
|
|
311
|
+
const {
|
|
312
|
+
forceUpdate = false
|
|
313
|
+
} = params || {};
|
|
314
|
+
if (!state.wallet) {
|
|
315
|
+
throw new Error('Wallet not found');
|
|
316
|
+
}
|
|
317
|
+
if (!state.addresses) {
|
|
318
|
+
throw new Error('Addresses not found');
|
|
319
|
+
}
|
|
320
|
+
const enabledAssets = state.wallet.enabledAssets;
|
|
321
|
+
const addressMap = state.addresses;
|
|
322
|
+
|
|
323
|
+
// Check if we have cached transactions in state
|
|
324
|
+
if (config.enableCaching && !forceUpdate) {
|
|
325
|
+
try {
|
|
326
|
+
const stored = await AsyncStorage.getItem(STORAGE_KEY_TRANSACTIONS);
|
|
327
|
+
if (stored) {
|
|
328
|
+
const transactionMap = JSON.parse(stored);
|
|
329
|
+
dispatch({
|
|
330
|
+
type: 'SET_TRANSACTIONS',
|
|
331
|
+
payload: transactionMap
|
|
332
|
+
});
|
|
333
|
+
}
|
|
334
|
+
} catch (error) {
|
|
335
|
+
console.error('Failed to load cached balances:', error);
|
|
336
|
+
}
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
// Set loading state
|
|
340
|
+
dispatch({
|
|
341
|
+
type: 'SET_LOADING_TRANSACTIONS',
|
|
342
|
+
payload: true
|
|
343
|
+
});
|
|
344
|
+
try {
|
|
345
|
+
// Fetch fresh data
|
|
346
|
+
const transactionMap = await getUpdatedTransactions({
|
|
347
|
+
enabledAssets,
|
|
348
|
+
addressMap
|
|
349
|
+
});
|
|
350
|
+
|
|
351
|
+
// Update state with fresh data
|
|
352
|
+
dispatch({
|
|
353
|
+
type: 'SET_TRANSACTIONS',
|
|
354
|
+
payload: transactionMap
|
|
355
|
+
});
|
|
356
|
+
} catch (error) {
|
|
357
|
+
console.error('Failed to fetch transactions:', error);
|
|
358
|
+
} finally {
|
|
359
|
+
dispatch({
|
|
360
|
+
type: 'SET_LOADING_TRANSACTIONS',
|
|
361
|
+
payload: false
|
|
362
|
+
});
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
const refreshWalletBalance = async () => {
|
|
366
|
+
const balanceMap = await getUpdatedBalances({
|
|
367
|
+
enabledAssets: state.wallet?.enabledAssets || [],
|
|
368
|
+
addressMap: state.addresses || {}
|
|
369
|
+
});
|
|
370
|
+
dispatch({
|
|
371
|
+
type: 'SET_BALANCES',
|
|
372
|
+
payload: balanceMap
|
|
373
|
+
});
|
|
374
|
+
};
|
|
375
|
+
const refreshTransactions = async () => {
|
|
376
|
+
const transactionMap = await getUpdatedTransactions({
|
|
377
|
+
enabledAssets: state.wallet?.enabledAssets || [],
|
|
378
|
+
addressMap: state.addresses || {}
|
|
379
|
+
});
|
|
380
|
+
dispatch({
|
|
381
|
+
type: 'SET_TRANSACTIONS',
|
|
382
|
+
payload: transactionMap
|
|
383
|
+
});
|
|
384
|
+
};
|
|
385
|
+
const value = {
|
|
386
|
+
...state,
|
|
387
|
+
createWallet,
|
|
388
|
+
clearWallet,
|
|
389
|
+
clearError,
|
|
390
|
+
refreshWalletBalance,
|
|
391
|
+
refreshTransactions,
|
|
392
|
+
unlockWallet
|
|
393
|
+
};
|
|
394
|
+
return /*#__PURE__*/_jsx(WalletContext.Provider, {
|
|
395
|
+
value: value,
|
|
396
|
+
children: children
|
|
397
|
+
});
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
// Custom hook to use wallet context
|
|
401
|
+
export function useWallet() {
|
|
402
|
+
const context = useContext(WalletContext);
|
|
403
|
+
if (context === undefined) {
|
|
404
|
+
throw new Error('useWallet must be used within a WalletProvider');
|
|
405
|
+
}
|
|
406
|
+
return context;
|
|
407
|
+
}
|
|
408
|
+
export default WalletContext;
|
|
409
|
+
//# sourceMappingURL=wallet-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["AsyncStorage","createContext","useContext","useEffect","useReducer","WDKService","walletReducer","getUniqueId","WALLET_CONTEXT_INITIAL_STATE","jsx","_jsx","STORAGE_KEY_WALLET","STORAGE_KEY_ADDRESSES","STORAGE_KEY_BALANCES","STORAGE_KEY_TRANSACTIONS","WalletContext","undefined","WalletProvider","children","config","state","dispatch","setConfig","indexer","version","initializeWDK","loadStoredWallet","enabledAssets","wallet","addressMap","addresses","fetchBalances","fetchTransactions","isInitialized","saveWalletToStorage","stored","getItem","data","JSON","parse","parsed","type","payload","error","Error","message","console","setItem","stringify","getWalletAddresses","resolveWalletAddresses","clearError","initialize","errorMessage","createWallet","params","prf","mnemonic","importSeedPhrase","seedPhrase","createSeed","walletName","name","unlockWallet","clearWallet","removeItem","getUpdatedBalances","balanceMap","resolveWalletBalances","enableCaching","getUpdatedTransactions","transactionMap","resolveWalletTransactions","forceUpdate","refreshWalletBalance","refreshTransactions","value","Provider","useWallet","context"],"sourceRoot":"../../../src","sources":["contexts/wallet-context.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// Import polyfills first - these must be loaded before any other code
|
|
4
|
+
import "./polyfills.js";
|
|
5
|
+
|
|
6
|
+
// Export the wallet context and provider
|
|
7
|
+
export { useWallet, default as WalletContext, WalletProvider } from "./contexts/wallet-context.js";
|
|
8
|
+
// Export WDK service
|
|
9
|
+
export { WDKService, wdkService, SMART_CONTRACT_BALANCE_ADDRESSES } from "./services/wdk-service/index.js";
|
|
10
|
+
|
|
11
|
+
// Export all types
|
|
12
|
+
|
|
13
|
+
// Export enums (can be used as both types and values)
|
|
14
|
+
export { AssetAddressMap, AssetBalanceMap, AssetTicker, NetworkType } from "./services/wdk-service/types.js";
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useWallet","default","WalletContext","WalletProvider","WDKService","wdkService","SMART_CONTRACT_BALANCE_ADDRESSES","AssetAddressMap","AssetBalanceMap","AssetTicker","NetworkType"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;AAAA;AACA,OAAO,gBAAa;;AAEpB;AACA,SACEA,SAAS,EACTC,OAAO,IAAIC,aAAa,EACxBC,cAAc,QACT,8BAA2B;AAGlC;AACA,SACEC,UAAU,EACVC,UAAU,EACVC,gCAAgC,QAC3B,iCAAwB;;AAE/B;;AAGA;AACA,SACEC,eAAe,EACfC,eAAe,EACfC,WAAW,EACXC,WAAW,QACN,iCAA8B","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Polyfills for React Native environment
|
|
5
|
+
* This file sets up necessary polyfills for cryptographic and stream operations
|
|
6
|
+
* that are required by the WDK library and related crypto packages.
|
|
7
|
+
*/
|
|
8
|
+
|
|
9
|
+
import { Buffer } from '@craftzdog/react-native-buffer';
|
|
10
|
+
import 'react-native-get-random-values';
|
|
11
|
+
|
|
12
|
+
// Set up Buffer polyfill
|
|
13
|
+
if (typeof global.Buffer === 'undefined') {
|
|
14
|
+
// @ts-ignore
|
|
15
|
+
global.Buffer = Buffer;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
// Set up process polyfill for stream operations
|
|
19
|
+
if (typeof global.process === 'undefined') {
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
global.process = require('process');
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Initialize crypto polyfill after Buffer and process are available
|
|
25
|
+
if (typeof global.crypto === 'undefined') {
|
|
26
|
+
try {
|
|
27
|
+
const crypto = require('react-native-crypto');
|
|
28
|
+
// @ts-ignore
|
|
29
|
+
global.crypto = crypto;
|
|
30
|
+
} catch (e) {
|
|
31
|
+
console.warn('Failed to load crypto polyfill:', e);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=polyfills.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Buffer","global","process","require","crypto","e","console","warn"],"sourceRoot":"../../src","sources":["polyfills.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA,SAASA,MAAM,QAAQ,gCAAgC;AACvD,OAAO,gCAAgC;;AAEvC;AACA,IAAI,OAAOC,MAAM,CAACD,MAAM,KAAK,WAAW,EAAE;EACxC;EACAC,MAAM,CAACD,MAAM,GAAGA,MAAM;AACxB;;AAEA;AACA,IAAI,OAAOC,MAAM,CAACC,OAAO,KAAK,WAAW,EAAE;EACzC;EACAD,MAAM,CAACC,OAAO,GAAGC,OAAO,CAAC,SAAS,CAAC;AACrC;;AAEA;AACA,IAAI,OAAOF,MAAM,CAACG,MAAM,KAAK,WAAW,EAAE;EACxC,IAAI;IACF,MAAMA,MAAM,GAAGD,OAAO,CAAC,qBAAqB,CAAC;IAC7C;IACAF,MAAM,CAACG,MAAM,GAAGA,MAAM;EACxB,CAAC,CAAC,OAAOC,CAAC,EAAE;IACVC,OAAO,CAACC,IAAI,CAAC,iCAAiC,EAAEF,CAAC,CAAC;EACpD;AACF","ignoreList":[]}
|