@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,38 @@
|
|
|
1
|
+
import type { AddressMap, BalanceMap, TransactionMap, Wallet } from '../services/wdk-service/types';
|
|
2
|
+
import type { WalletContextState } from './types';
|
|
3
|
+
type WalletAction = {
|
|
4
|
+
type: 'SET_LOADING';
|
|
5
|
+
payload: boolean;
|
|
6
|
+
} | {
|
|
7
|
+
type: 'SET_ERROR';
|
|
8
|
+
payload: string | null;
|
|
9
|
+
} | {
|
|
10
|
+
type: 'SET_WALLET';
|
|
11
|
+
payload: Wallet;
|
|
12
|
+
} | {
|
|
13
|
+
type: 'SET_ADDRESSES';
|
|
14
|
+
payload: AddressMap;
|
|
15
|
+
} | {
|
|
16
|
+
type: 'SET_INITIALIZED';
|
|
17
|
+
payload: boolean;
|
|
18
|
+
} | {
|
|
19
|
+
type: 'SET_UNLOCKED';
|
|
20
|
+
payload: boolean;
|
|
21
|
+
} | {
|
|
22
|
+
type: 'SET_BALANCES';
|
|
23
|
+
payload: BalanceMap;
|
|
24
|
+
} | {
|
|
25
|
+
type: 'SET_TRANSACTIONS';
|
|
26
|
+
payload: TransactionMap;
|
|
27
|
+
} | {
|
|
28
|
+
type: 'SET_LOADING_BALANCES';
|
|
29
|
+
payload: boolean;
|
|
30
|
+
} | {
|
|
31
|
+
type: 'SET_LOADING_TRANSACTIONS';
|
|
32
|
+
payload: boolean;
|
|
33
|
+
} | {
|
|
34
|
+
type: 'CLEAR_WALLET';
|
|
35
|
+
};
|
|
36
|
+
declare function reducer(state: WalletContextState, action: WalletAction): WalletContextState;
|
|
37
|
+
export default reducer;
|
|
38
|
+
//# sourceMappingURL=reducer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reducer.d.ts","sourceRoot":"","sources":["../../../../src/contexts/reducer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,UAAU,EACV,cAAc,EACd,MAAM,EACP,MAAM,+BAA+B,CAAC;AAGvC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,KAAK,YAAY,GACb;IAAE,IAAI,EAAE,aAAa,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACzC;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GACvC;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GAC9C;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAC1C;IAAE,IAAI,EAAE,cAAc,CAAC;IAAC,OAAO,EAAE,UAAU,CAAA;CAAE,GAC7C;IAAE,IAAI,EAAE,kBAAkB,CAAC;IAAC,OAAO,EAAE,cAAc,CAAA;CAAE,GACrD;IAAE,IAAI,EAAE,sBAAsB,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAClD;IAAE,IAAI,EAAE,0BAA0B,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GACtD;IAAE,IAAI,EAAE,cAAc,CAAA;CAAE,CAAC;AAG7B,iBAAS,OAAO,CACd,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,YAAY,GACnB,kBAAkB,CAwEpB;AAED,eAAe,OAAO,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { AddressMap, Amount, BalanceMap, ChainsConfig, Transaction, TransactionMap, Wallet } from '../services/wdk-service/types';
|
|
2
|
+
export interface WalletContextState {
|
|
3
|
+
wallet?: Wallet | null;
|
|
4
|
+
addresses?: AddressMap;
|
|
5
|
+
balances: {
|
|
6
|
+
list: Amount[];
|
|
7
|
+
map: BalanceMap;
|
|
8
|
+
isLoading: boolean;
|
|
9
|
+
};
|
|
10
|
+
transactions: {
|
|
11
|
+
list: Transaction[];
|
|
12
|
+
map: TransactionMap;
|
|
13
|
+
isLoading: boolean;
|
|
14
|
+
};
|
|
15
|
+
isLoading: boolean;
|
|
16
|
+
error: string | null;
|
|
17
|
+
isInitialized: boolean;
|
|
18
|
+
isUnlocked: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface WalletContextType extends WalletContextState {
|
|
21
|
+
createWallet: (params: {
|
|
22
|
+
name: string;
|
|
23
|
+
mnemonic?: string;
|
|
24
|
+
}) => Promise<WalletContextState['wallet']>;
|
|
25
|
+
clearWallet: () => Promise<void>;
|
|
26
|
+
clearError: () => void;
|
|
27
|
+
refreshWalletBalance: () => Promise<void>;
|
|
28
|
+
refreshTransactions: () => Promise<void>;
|
|
29
|
+
unlockWallet: () => Promise<boolean | undefined>;
|
|
30
|
+
}
|
|
31
|
+
export interface WalletProviderConfig {
|
|
32
|
+
indexer: {
|
|
33
|
+
apiKey: string;
|
|
34
|
+
url: string;
|
|
35
|
+
version?: string;
|
|
36
|
+
};
|
|
37
|
+
chains: ChainsConfig;
|
|
38
|
+
enableCaching?: boolean;
|
|
39
|
+
}
|
|
40
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/contexts/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,YAAY,EACZ,WAAW,EACX,cAAc,EACd,MAAM,EACP,MAAM,+BAA+B,CAAC;AAEvC,MAAM,WAAW,kBAAkB;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,CAAC,EAAE,UAAU,CAAC;IACvB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,GAAG,EAAE,UAAU,CAAC;QAChB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,YAAY,EAAE;QACZ,IAAI,EAAE,WAAW,EAAE,CAAC;QACpB,GAAG,EAAE,cAAc,CAAC;QACpB,SAAS,EAAE,OAAO,CAAC;KACpB,CAAC;IACF,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;IACvB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,YAAY,EAAE,CAAC,MAAM,EAAE;QACrB,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,KAAK,OAAO,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC5C,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACjC,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,oBAAoB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC1C,mBAAmB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACzC,YAAY,EAAE,MAAM,OAAO,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC;CAClD;AAGD,MAAM,WAAW,oBAAoB;IACnC,OAAO,EAAE;QACP,MAAM,EAAE,MAAM,CAAC;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,MAAM,EAAE,YAAY,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { WalletContextType, WalletProviderConfig } from './types';
|
|
3
|
+
declare const WalletContext: import("react").Context<WalletContextType | undefined>;
|
|
4
|
+
export declare function WalletProvider({ children, config, }: {
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
config: WalletProviderConfig;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export declare function useWallet(): WalletContextType;
|
|
9
|
+
export default WalletContext;
|
|
10
|
+
//# sourceMappingURL=wallet-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wallet-context.d.ts","sourceRoot":"","sources":["../../../../src/contexts/wallet-context.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AASvC,OAAO,KAAK,EAEV,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAWjB,QAAA,MAAM,aAAa,wDAA0D,CAAC;AAG9E,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,MAAM,GACP,EAAE;IACD,QAAQ,EAAE,SAAS,CAAC;IACpB,MAAM,EAAE,oBAAoB,CAAC;CAC9B,2CA6WA;AAGD,wBAAgB,SAAS,sBAMxB;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import './polyfills';
|
|
2
|
+
export { useWallet, default as WalletContext, WalletProvider, } from './contexts/wallet-context';
|
|
3
|
+
export type { WalletProviderConfig } from './contexts/types';
|
|
4
|
+
export { WDKService, wdkService, SMART_CONTRACT_BALANCE_ADDRESSES, } from './services/wdk-service';
|
|
5
|
+
export type { Amount, Transaction, Wallet } from './services/wdk-service/types';
|
|
6
|
+
export { AssetAddressMap, AssetBalanceMap, AssetTicker, NetworkType, } from './services/wdk-service/types';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AACA,OAAO,aAAa,CAAC;AAGrB,OAAO,EACL,SAAS,EACT,OAAO,IAAI,aAAa,EACxB,cAAc,GACf,MAAM,2BAA2B,CAAC;AACnC,YAAY,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAG7D,OAAO,EACL,UAAU,EACV,UAAU,EACV,gCAAgC,GACjC,MAAM,wBAAwB,CAAC;AAGhC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,8BAA8B,CAAC;AAGhF,OAAO,EACL,eAAe,EACf,eAAe,EACf,WAAW,EACX,WAAW,GACZ,MAAM,8BAA8B,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Polyfills for React Native environment
|
|
3
|
+
* This file sets up necessary polyfills for cryptographic and stream operations
|
|
4
|
+
* that are required by the WDK library and related crypto packages.
|
|
5
|
+
*/
|
|
6
|
+
import 'react-native-get-random-values';
|
|
7
|
+
//# sourceMappingURL=polyfills.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"polyfills.d.ts","sourceRoot":"","sources":["../../../src/polyfills.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { HRPC as wdkManagerHRPC } from '@spacesops/pear-wrk-wdk';
|
|
2
|
+
import { Worklet } from 'react-native-bare-kit';
|
|
3
|
+
import HRPC from '../../spec/hrpc';
|
|
4
|
+
export declare enum InstanceEnum {
|
|
5
|
+
wdkSecretManager = "wdkSecretManager",
|
|
6
|
+
wdkManager = "wdkManager"
|
|
7
|
+
}
|
|
8
|
+
export type BareInstanceTypes = Partial<{
|
|
9
|
+
[K in InstanceEnum]: Worklet;
|
|
10
|
+
}>;
|
|
11
|
+
export type HRPCInstanceTypes = Partial<{
|
|
12
|
+
[K in InstanceEnum]: HRPC | wdkManagerHRPC;
|
|
13
|
+
}>;
|
|
14
|
+
export declare class BareWorkletApi {
|
|
15
|
+
static bareInstances: BareInstanceTypes;
|
|
16
|
+
static hrpcInstances: HRPCInstanceTypes;
|
|
17
|
+
/**
|
|
18
|
+
* Start bare worklet and assign HRPC instance.
|
|
19
|
+
* @param {InstanceEnum} instance
|
|
20
|
+
* @param {string} fileName
|
|
21
|
+
* @param {string} source
|
|
22
|
+
* @return Worklet
|
|
23
|
+
*/
|
|
24
|
+
static startWorklet(instance: InstanceEnum, fileName: string, source: string): Worklet | undefined;
|
|
25
|
+
static registerHRPCLog(instance: any): void;
|
|
26
|
+
/**
|
|
27
|
+
* Terminate worklet
|
|
28
|
+
* @param {InstanceEnum} instance
|
|
29
|
+
*/
|
|
30
|
+
static terminateWorklet(instance: InstanceEnum): void;
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=bare-api.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bare-api.d.ts","sourceRoot":"","sources":["../../../../../src/services/wdk-service/bare-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,IAAI,cAAc,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,IAAI,MAAM,iBAAiB,CAAC;AAGnC,oBAAY,YAAY;IACtB,gBAAgB,qBAAqB;IACrC,UAAU,eAAe;CAC1B;AAED,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC;KACrC,CAAC,IAAI,YAAY,GAAG,OAAO;CAC7B,CAAC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,OAAO,CAAC;KACrC,CAAC,IAAI,YAAY,GAAG,IAAI,GAAG,cAAc;CAC3C,CAAC,CAAC;AAEH,qBAAa,cAAc;IACzB,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAGrC;IACF,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAGrC;IAEF;;;;;;OAMG;IACH,MAAM,CAAC,YAAY,CACjB,QAAQ,EAAE,YAAY,EACtB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,OAAO,GAAG,SAAS;IA4BtB,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,GAAG,GAAG,IAAI;IAS3C;;;OAGG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI;CAMtD"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import type { ChainsConfig, Transaction, Wallet } from './types';
|
|
2
|
+
import { AssetTicker, NetworkType } from './types';
|
|
3
|
+
export declare const SMART_CONTRACT_BALANCE_ADDRESSES: {
|
|
4
|
+
usdt: {
|
|
5
|
+
ethereum: string;
|
|
6
|
+
polygon: string;
|
|
7
|
+
arbitrum: string;
|
|
8
|
+
ton: string;
|
|
9
|
+
};
|
|
10
|
+
xaut: {
|
|
11
|
+
ethereum: string;
|
|
12
|
+
polygon: string;
|
|
13
|
+
arbitrum: string;
|
|
14
|
+
ton: string;
|
|
15
|
+
};
|
|
16
|
+
};
|
|
17
|
+
interface WDKServiceConfig {
|
|
18
|
+
indexer: {
|
|
19
|
+
apiKey: string;
|
|
20
|
+
url: string;
|
|
21
|
+
version: string;
|
|
22
|
+
};
|
|
23
|
+
chains: ChainsConfig;
|
|
24
|
+
}
|
|
25
|
+
declare class WDKService {
|
|
26
|
+
private static instance;
|
|
27
|
+
private walletManagerCache;
|
|
28
|
+
private isInitialized;
|
|
29
|
+
private wdkManager;
|
|
30
|
+
private secretManager;
|
|
31
|
+
private config;
|
|
32
|
+
private constructor();
|
|
33
|
+
static getInstance(): WDKService;
|
|
34
|
+
setConfig(config: WDKServiceConfig): void;
|
|
35
|
+
private getIndexerUrl;
|
|
36
|
+
private getIndexerVersion;
|
|
37
|
+
private getIndexerApiKey;
|
|
38
|
+
private getChainsConfig;
|
|
39
|
+
initialize(): Promise<void>;
|
|
40
|
+
clearWallet(): Promise<void>;
|
|
41
|
+
createSeed(params: {
|
|
42
|
+
prf: Buffer | ArrayBuffer | string;
|
|
43
|
+
}): Promise<string>;
|
|
44
|
+
importSeedPhrase(params: {
|
|
45
|
+
prf: Buffer | ArrayBuffer | string;
|
|
46
|
+
seedPhrase: string;
|
|
47
|
+
}): Promise<boolean>;
|
|
48
|
+
retrieveSeed(passkey: Buffer | ArrayBuffer | string): Promise<string | null>;
|
|
49
|
+
getAssetAddress(network: NetworkType, index: number): Promise<{
|
|
50
|
+
address: string;
|
|
51
|
+
}>;
|
|
52
|
+
resolveWalletAddresses(enabledAssets: AssetTicker[], index?: number): Promise<Partial<Record<NetworkType, string>>>;
|
|
53
|
+
quoteSendByNetwork(network: NetworkType, index: number, amount: number, recipientAddress: string, asset: AssetTicker): Promise<number>;
|
|
54
|
+
sendByNetwork(network: NetworkType, index: number, amount: number, recipientAddress: string, asset: AssetTicker): Promise<any>;
|
|
55
|
+
getDenominationValue(asset: AssetTicker): number;
|
|
56
|
+
createWallet(params: {
|
|
57
|
+
walletName: string;
|
|
58
|
+
prf: Buffer | string;
|
|
59
|
+
}): Promise<Wallet>;
|
|
60
|
+
resolveWalletTransactions(enabledAssets: AssetTicker[], networkAddresses: Partial<Record<NetworkType, string>>): Promise<Record<string, Transaction[]>>;
|
|
61
|
+
resolveWalletBalances(enabledAssets: AssetTicker[], networkAddresses: Partial<Record<NetworkType, string>>): Promise<Record<string, {
|
|
62
|
+
balance: number;
|
|
63
|
+
asset: AssetTicker;
|
|
64
|
+
}>>;
|
|
65
|
+
}
|
|
66
|
+
export declare const wdkService: WDKService;
|
|
67
|
+
export { wdkService as WDKService };
|
|
68
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/services/wdk-service/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
export declare enum AssetTicker {
|
|
2
|
+
BTC = "btc",
|
|
3
|
+
USDT = "usdt",
|
|
4
|
+
XAUT = "xaut"
|
|
5
|
+
}
|
|
6
|
+
export declare enum NetworkType {
|
|
7
|
+
SEGWIT = "bitcoin",
|
|
8
|
+
LIGHTNING = "lightning",
|
|
9
|
+
ETHEREUM = "ethereum",
|
|
10
|
+
SOLANA = "solana",
|
|
11
|
+
TRON = "tron",
|
|
12
|
+
TON = "ton",
|
|
13
|
+
POLYGON = "polygon",
|
|
14
|
+
ARBITRUM = "arbitrum"
|
|
15
|
+
}
|
|
16
|
+
export declare const AssetAddressMap: {
|
|
17
|
+
btc: {
|
|
18
|
+
bitcoin: string;
|
|
19
|
+
};
|
|
20
|
+
usdt: {
|
|
21
|
+
ethereum: string;
|
|
22
|
+
polygon: string;
|
|
23
|
+
arbitrum: string;
|
|
24
|
+
ton: string;
|
|
25
|
+
};
|
|
26
|
+
xaut: {
|
|
27
|
+
ethereum: string;
|
|
28
|
+
};
|
|
29
|
+
};
|
|
30
|
+
export declare const AssetBalanceMap: {
|
|
31
|
+
btc: {
|
|
32
|
+
bitcoin: string;
|
|
33
|
+
};
|
|
34
|
+
usdt: {
|
|
35
|
+
ethereum: string;
|
|
36
|
+
polygon: string;
|
|
37
|
+
arbitrum: string;
|
|
38
|
+
ton: string;
|
|
39
|
+
};
|
|
40
|
+
xaut: {
|
|
41
|
+
ethereum: string;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
export interface Amount {
|
|
45
|
+
denomination: AssetTicker;
|
|
46
|
+
value: string;
|
|
47
|
+
networkType: NetworkType;
|
|
48
|
+
}
|
|
49
|
+
export interface Wallet {
|
|
50
|
+
id: string;
|
|
51
|
+
name: string;
|
|
52
|
+
enabledAssets: AssetTicker[];
|
|
53
|
+
}
|
|
54
|
+
export type AddressMap = Partial<Record<NetworkType, string>>;
|
|
55
|
+
export type BalanceMap = Record<string, {
|
|
56
|
+
balance: number;
|
|
57
|
+
asset: AssetTicker;
|
|
58
|
+
}>;
|
|
59
|
+
export type TransactionMap = Partial<Record<NetworkType, Transaction[]>>;
|
|
60
|
+
export interface Transaction {
|
|
61
|
+
blockchain: string;
|
|
62
|
+
blockNumber: number;
|
|
63
|
+
transactionHash: string;
|
|
64
|
+
transferIndex: number;
|
|
65
|
+
token: string;
|
|
66
|
+
amount: string;
|
|
67
|
+
timestamp: number;
|
|
68
|
+
transactionIndex: number;
|
|
69
|
+
logIndex: number;
|
|
70
|
+
from: string;
|
|
71
|
+
to: string;
|
|
72
|
+
}
|
|
73
|
+
export interface PaymasterToken {
|
|
74
|
+
address: string;
|
|
75
|
+
}
|
|
76
|
+
export interface EVMChainConfig {
|
|
77
|
+
chainId: number;
|
|
78
|
+
blockchain: string;
|
|
79
|
+
provider: string;
|
|
80
|
+
bundlerUrl: string;
|
|
81
|
+
paymasterUrl: string;
|
|
82
|
+
paymasterAddress: string;
|
|
83
|
+
entrypointAddress: string;
|
|
84
|
+
transferMaxFee: number;
|
|
85
|
+
swapMaxFee: number;
|
|
86
|
+
bridgeMaxFee: number;
|
|
87
|
+
paymasterToken: PaymasterToken;
|
|
88
|
+
safeModulesVersion?: string;
|
|
89
|
+
}
|
|
90
|
+
export interface TONChainConfig {
|
|
91
|
+
tonApiClient: {
|
|
92
|
+
url: string;
|
|
93
|
+
};
|
|
94
|
+
tonClient: {
|
|
95
|
+
url: string;
|
|
96
|
+
};
|
|
97
|
+
paymasterToken: PaymasterToken;
|
|
98
|
+
transferMaxFee: number;
|
|
99
|
+
}
|
|
100
|
+
export interface BitcoinChainConfig {
|
|
101
|
+
host: string;
|
|
102
|
+
port: number;
|
|
103
|
+
}
|
|
104
|
+
export interface TronChainConfig {
|
|
105
|
+
chainId: number;
|
|
106
|
+
provider: string;
|
|
107
|
+
gasFreeProvider: string;
|
|
108
|
+
apiKey: string;
|
|
109
|
+
apiSecret: string;
|
|
110
|
+
serviceProvider: string;
|
|
111
|
+
verifyingContract: string;
|
|
112
|
+
transferMaxFee: number;
|
|
113
|
+
swapMaxFee: number;
|
|
114
|
+
bridgeMaxFee: number;
|
|
115
|
+
paymasterToken: PaymasterToken;
|
|
116
|
+
}
|
|
117
|
+
export interface ChainsConfig {
|
|
118
|
+
ethereum?: EVMChainConfig;
|
|
119
|
+
arbitrum?: EVMChainConfig;
|
|
120
|
+
polygon?: EVMChainConfig;
|
|
121
|
+
ton?: TONChainConfig;
|
|
122
|
+
bitcoin?: BitcoinChainConfig;
|
|
123
|
+
tron?: TronChainConfig;
|
|
124
|
+
}
|
|
125
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/services/wdk-service/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wdk-encryption-salt.d.ts","sourceRoot":"","sources":["../../../../../src/services/wdk-service/wdk-encryption-salt.ts"],"names":[],"mappings":"AAEA,iBAAS,eAAe,CAAC,KAAK,EAAE,GAAG,GAAG,MAAM,CAuB3C;AAED,eAAO,MAAM,iBAAiB;;CAE7B,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export declare const WDK_STORAGE_SEED: "seed";
|
|
2
|
+
export declare const WDK_STORAGE_ENTROPY: "entropy";
|
|
3
|
+
export declare const WDK_STORAGE_SALT: "salt";
|
|
4
|
+
export declare class WdkSecretManagerStorage {
|
|
5
|
+
static BASE_SERVICE_NAME: string;
|
|
6
|
+
static saveData(key: typeof WDK_STORAGE_SEED | typeof WDK_STORAGE_ENTROPY | typeof WDK_STORAGE_SALT, value: Buffer | string): Promise<void>;
|
|
7
|
+
static retrieveData(key: typeof WDK_STORAGE_SEED | typeof WDK_STORAGE_ENTROPY | typeof WDK_STORAGE_SALT): Promise<false | Uint8Array<ArrayBufferLike> | Buffer<ArrayBufferLike>>;
|
|
8
|
+
static hasKey(key: typeof WDK_STORAGE_SEED | typeof WDK_STORAGE_ENTROPY | typeof WDK_STORAGE_SALT): Promise<boolean>;
|
|
9
|
+
static resetData(key: typeof WDK_STORAGE_SEED | typeof WDK_STORAGE_ENTROPY | typeof WDK_STORAGE_SALT): Promise<boolean>;
|
|
10
|
+
static resetAllData(): Promise<void>;
|
|
11
|
+
static getServiceForItem(key: typeof WDK_STORAGE_SEED | typeof WDK_STORAGE_ENTROPY | typeof WDK_STORAGE_SALT): string;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=wdk-secret-manager-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wdk-secret-manager-storage.d.ts","sourceRoot":"","sources":["../../../../../src/services/wdk-service/wdk-secret-manager-storage.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,gBAAgB,EAAG,MAAe,CAAC;AAChD,eAAO,MAAM,mBAAmB,EAAG,SAAkB,CAAC;AACtD,eAAO,MAAM,gBAAgB,EAAG,MAAe,CAAC;AAEhD,qBAAa,uBAAuB;IAClC,MAAM,CAAC,iBAAiB,SAAuB;WAElC,QAAQ,CACnB,GAAG,EACC,OAAO,gBAAgB,GACvB,OAAO,mBAAmB,GAC1B,OAAO,gBAAgB,EAC3B,KAAK,EAAE,MAAM,GAAG,MAAM;WAcX,YAAY,CACvB,GAAG,EACC,OAAO,gBAAgB,GACvB,OAAO,mBAAmB,GAC1B,OAAO,gBAAgB;WAuBhB,MAAM,CACjB,GAAG,EACC,OAAO,gBAAgB,GACvB,OAAO,mBAAmB,GAC1B,OAAO,gBAAgB;WAMhB,SAAS,CACpB,GAAG,EACC,OAAO,gBAAgB,GACvB,OAAO,mBAAmB,GAC1B,OAAO,gBAAgB;WAiBhB,YAAY;IAMzB,MAAM,CAAC,iBAAiB,CACtB,GAAG,EACC,OAAO,gBAAgB,GACvB,OAAO,mBAAmB,GAC1B,OAAO,gBAAgB;CAI9B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-balances-from-balance-map.d.ts","sourceRoot":"","sources":["../../../../src/utils/get-balances-from-balance-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,UAAU,EAEX,MAAM,+BAA+B,CAAC;AAEvC,QAAA,MAAM,yBAAyB,GAAI,YAAY,UAAU,KAAG,MAAM,EAajE,CAAC;AAEF,eAAe,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Transaction, TransactionMap } from '../services/wdk-service/types';
|
|
2
|
+
declare const getTransactionsFromTransactionMap: (transactionMap: TransactionMap) => Transaction[];
|
|
3
|
+
export default getTransactionsFromTransactionMap;
|
|
4
|
+
//# sourceMappingURL=get-transactions-from-transaction-map.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-transactions-from-transaction-map.d.ts","sourceRoot":"","sources":["../../../../src/utils/get-transactions-from-transaction-map.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACf,MAAM,+BAA+B,CAAC;AAEvC,QAAA,MAAM,iCAAiC,GACrC,gBAAgB,cAAc,KAC7B,WAAW,EAQb,CAAC;AAEF,eAAe,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metro bundler polyfills configuration for React Native
|
|
3
|
+
*
|
|
4
|
+
* This module provides polyfills for Node.js core modules that don't exist
|
|
5
|
+
* in React Native environments. These are necessary for WDK and crypto operations.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Returns polyfill mappings for Node.js core modules
|
|
10
|
+
* @returns {object} Configuration object for Metro's extraNodeModules
|
|
11
|
+
*/
|
|
12
|
+
function getMetroPolyfills() {
|
|
13
|
+
return {
|
|
14
|
+
'stream': require.resolve('stream-browserify'),
|
|
15
|
+
'buffer': require.resolve('@craftzdog/react-native-buffer'),
|
|
16
|
+
'crypto': require.resolve('react-native-crypto'),
|
|
17
|
+
'net': require.resolve('react-native-tcp-socket'),
|
|
18
|
+
'tls': require.resolve('react-native-tcp-socket'),
|
|
19
|
+
'url': require.resolve('react-native-url-polyfill'),
|
|
20
|
+
'http': require.resolve('stream-http'),
|
|
21
|
+
'https': require.resolve('https-browserify'),
|
|
22
|
+
'http2': require.resolve('http2-wrapper'),
|
|
23
|
+
'zlib': require.resolve('browserify-zlib'),
|
|
24
|
+
'path': require.resolve('path-browserify'),
|
|
25
|
+
'querystring': require.resolve('querystring-es3'),
|
|
26
|
+
'events': require.resolve('events'),
|
|
27
|
+
'nice-grpc': require.resolve('nice-grpc-web'),
|
|
28
|
+
'sodium-universal': require.resolve('sodium-javascript'),
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Configures Metro resolver with WDK polyfills and resolveRequest handler
|
|
34
|
+
* This is the recommended way to configure Metro for apps using wdk-react-native-provider
|
|
35
|
+
*
|
|
36
|
+
* @param {object} config - Base Metro config (from getDefaultConfig)
|
|
37
|
+
* @returns {object} Modified Metro config with WDK polyfills
|
|
38
|
+
*
|
|
39
|
+
* @example
|
|
40
|
+
* const { getDefaultConfig } = require('expo/metro-config');
|
|
41
|
+
* const { configureMetroForWDK } = require('@tetherto/wdk-react-native-provider/metro-polyfills');
|
|
42
|
+
*
|
|
43
|
+
* const config = getDefaultConfig(__dirname);
|
|
44
|
+
* module.exports = configureMetroForWDK(config);
|
|
45
|
+
*/
|
|
46
|
+
function configureMetroForWDK(config) {
|
|
47
|
+
const polyfills = getMetroPolyfills();
|
|
48
|
+
|
|
49
|
+
// Save the existing resolveRequest BEFORE replacing config.resolver
|
|
50
|
+
const existingResolveRequest = config.resolver.resolveRequest;
|
|
51
|
+
|
|
52
|
+
config.resolver = {
|
|
53
|
+
...config.resolver,
|
|
54
|
+
extraNodeModules: {
|
|
55
|
+
...config.resolver.extraNodeModules,
|
|
56
|
+
...polyfills,
|
|
57
|
+
},
|
|
58
|
+
resolveRequest: (context, moduleName, platform) => {
|
|
59
|
+
// Handle polyfills that need special resolution
|
|
60
|
+
if (moduleName === 'stream') {
|
|
61
|
+
return {
|
|
62
|
+
filePath: require.resolve('stream-browserify'),
|
|
63
|
+
type: 'sourceFile',
|
|
64
|
+
};
|
|
65
|
+
} else if (moduleName === 'url') {
|
|
66
|
+
return {
|
|
67
|
+
filePath: require.resolve('react-native-url-polyfill'),
|
|
68
|
+
type: 'sourceFile',
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
// Use existing resolveRequest if available, otherwise use default
|
|
73
|
+
if (
|
|
74
|
+
existingResolveRequest &&
|
|
75
|
+
existingResolveRequest !== arguments.callee
|
|
76
|
+
) {
|
|
77
|
+
return existingResolveRequest(context, moduleName, platform);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return context.resolveRequest(context, moduleName, platform);
|
|
81
|
+
},
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
return config;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
module.exports = getMetroPolyfills;
|
|
88
|
+
module.exports.getMetroPolyfills = getMetroPolyfills;
|
|
89
|
+
module.exports.configureMetroForWDK = configureMetroForWDK;
|