@coinflowlabs/react-native 3.1.0 → 3.1.2

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 (50) hide show
  1. package/build/CoinflowPurchase.d.ts +3 -2
  2. package/build/CoinflowPurchase.js +11 -53
  3. package/build/CoinflowPurchase.js.map +1 -1
  4. package/build/CoinflowPurchaseHistory.d.ts +3 -2
  5. package/build/CoinflowPurchaseHistory.js +10 -18
  6. package/build/CoinflowPurchaseHistory.js.map +1 -1
  7. package/build/CoinflowWebView.d.ts +10 -2
  8. package/build/CoinflowWebView.js +18 -5
  9. package/build/CoinflowWebView.js.map +1 -1
  10. package/build/CoinflowWithdraw.d.ts +3 -2
  11. package/build/CoinflowWithdraw.js +12 -36
  12. package/build/CoinflowWithdraw.js.map +1 -1
  13. package/build/CoinflowWithdrawHistory.d.ts +3 -2
  14. package/build/CoinflowWithdrawHistory.js +10 -18
  15. package/build/CoinflowWithdrawHistory.js.map +1 -1
  16. package/build/common/CoinflowLibMessageHandlers.d.ts +21 -0
  17. package/build/common/CoinflowLibMessageHandlers.js +180 -0
  18. package/build/common/CoinflowLibMessageHandlers.js.map +1 -0
  19. package/build/{CoinflowTypes.d.ts → common/CoinflowTypes.d.ts} +69 -88
  20. package/build/{CoinflowTypes.js → common/CoinflowTypes.js} +2 -3
  21. package/build/common/CoinflowTypes.js.map +1 -0
  22. package/build/common/CoinflowUtils.d.ts +21 -0
  23. package/build/common/CoinflowUtils.js +219 -0
  24. package/build/common/CoinflowUtils.js.map +1 -0
  25. package/build/common/SolanaPeerDeps.d.ts +5 -0
  26. package/build/common/SolanaPeerDeps.js +17 -0
  27. package/build/common/SolanaPeerDeps.js.map +1 -0
  28. package/build/common/index.d.ts +3 -0
  29. package/build/common/index.js +4 -0
  30. package/build/common/index.js.map +1 -0
  31. package/build/index.d.ts +1 -1
  32. package/build/index.js +1 -1
  33. package/build/index.js.map +1 -1
  34. package/package.json +21 -6
  35. package/build/CoinflowTypes.js.map +0 -1
  36. package/build/ReactNativeCoinflowUtils.d.ts +0 -8
  37. package/build/ReactNativeCoinflowUtils.js +0 -79
  38. package/build/ReactNativeCoinflowUtils.js.map +0 -1
  39. package/build/wallet/EthIFrameMessageHandlers.d.ts +0 -5
  40. package/build/wallet/EthIFrameMessageHandlers.js +0 -37
  41. package/build/wallet/EthIFrameMessageHandlers.js.map +0 -1
  42. package/build/wallet/NearIFrameMessageHandlers.d.ts +0 -5
  43. package/build/wallet/NearIFrameMessageHandlers.js +0 -27
  44. package/build/wallet/NearIFrameMessageHandlers.js.map +0 -1
  45. package/build/wallet/SolanaIFrameMessageHandlers.d.ts +0 -18
  46. package/build/wallet/SolanaIFrameMessageHandlers.js +0 -134
  47. package/build/wallet/SolanaIFrameMessageHandlers.js.map +0 -1
  48. package/build/wallet/useWebViewWallet.d.ts +0 -11
  49. package/build/wallet/useWebViewWallet.js +0 -102
  50. package/build/wallet/useWebViewWallet.js.map +0 -1
@@ -1,8 +0,0 @@
1
- import { CoinflowEnvs, CoinflowWebViewProps } from './CoinflowTypes';
2
- export declare class ReactNativeCoinflowUtils {
3
- env: CoinflowEnvs;
4
- url: string;
5
- constructor(env?: CoinflowEnvs);
6
- static getCoinflowBaseUrl(env?: CoinflowEnvs): string;
7
- static getCoinflowUrl({ blockchain, route, env, amount, publicKey, transaction, bankAccountLinkRedirect, additionalWallets, token, tokens, webhookInfo, deviceId, chargebackProtectionData, rent, lockDefaultToken, supportsVersionedTransactions, disableApplePay, disableGooglePay, customerInfo, planCode, settlementType, lockAmount, nativeSolToConvert, theme, usePermit, transactionSigner, authOnly, }: CoinflowWebViewProps): string;
8
- }
@@ -1,79 +0,0 @@
1
- var ReactNativeCoinflowUtils = /** @class */ (function () {
2
- function ReactNativeCoinflowUtils(env) {
3
- this.env = env !== null && env !== void 0 ? env : 'prod';
4
- if (this.env === 'prod')
5
- this.url = 'https://api.coinflow.cash';
6
- else if (this.env === 'local')
7
- this.url = 'http://localhost:5000';
8
- else
9
- this.url = "https://api-".concat(this.env, ".coinflow.cash");
10
- }
11
- ReactNativeCoinflowUtils.getCoinflowBaseUrl = function (env) {
12
- if (!env || env === 'prod')
13
- return 'https://coinflow.cash';
14
- if (env === 'local')
15
- return 'http://localhost:3000';
16
- return "https://".concat(env, ".coinflow.cash");
17
- };
18
- ReactNativeCoinflowUtils.getCoinflowUrl = function (_a) {
19
- var blockchain = _a.blockchain, route = _a.route, env = _a.env, amount = _a.amount, publicKey = _a.publicKey, transaction = _a.transaction, bankAccountLinkRedirect = _a.bankAccountLinkRedirect, additionalWallets = _a.additionalWallets, token = _a.token, tokens = _a.tokens, webhookInfo = _a.webhookInfo, deviceId = _a.deviceId, chargebackProtectionData = _a.chargebackProtectionData, rent = _a.rent, lockDefaultToken = _a.lockDefaultToken, supportsVersionedTransactions = _a.supportsVersionedTransactions, disableApplePay = _a.disableApplePay, disableGooglePay = _a.disableGooglePay, customerInfo = _a.customerInfo, planCode = _a.planCode, settlementType = _a.settlementType, lockAmount = _a.lockAmount, nativeSolToConvert = _a.nativeSolToConvert, theme = _a.theme, usePermit = _a.usePermit, transactionSigner = _a.transactionSigner, authOnly = _a.authOnly;
20
- if (!publicKey)
21
- return '';
22
- var url = new URL("/".concat(blockchain) + route, ReactNativeCoinflowUtils.getCoinflowBaseUrl(env));
23
- url.searchParams.append('pubkey', publicKey);
24
- if (transaction) {
25
- url.searchParams.append('transaction', transaction);
26
- }
27
- if (amount) {
28
- url.searchParams.append('amount', amount.toString());
29
- }
30
- if (bankAccountLinkRedirect) {
31
- url.searchParams.append('bankAccountLinkRedirect', bankAccountLinkRedirect);
32
- }
33
- if (additionalWallets)
34
- url.searchParams.append('additionalWallets', JSON.stringify(additionalWallets));
35
- if (token)
36
- url.searchParams.append('token', token.toString());
37
- if (tokens)
38
- url.searchParams.append('tokens', tokens.toString());
39
- if (supportsVersionedTransactions) {
40
- url.searchParams.append('supportsVersionedTransactions', 'true');
41
- }
42
- if (webhookInfo)
43
- url.searchParams.append('webhookInfo', Buffer.from(JSON.stringify(webhookInfo)).toString('base64'));
44
- if (theme)
45
- url.searchParams.append('theme', Buffer.from(JSON.stringify(theme)).toString('base64'));
46
- if (customerInfo)
47
- url.searchParams.append('customerInfo', Buffer.from(JSON.stringify(customerInfo)).toString('base64'));
48
- if (deviceId)
49
- url.searchParams.append('deviceId', deviceId);
50
- if (chargebackProtectionData)
51
- url.searchParams.append('chargebackProtectionData', JSON.stringify(chargebackProtectionData));
52
- if (rent)
53
- url.searchParams.append('rent', rent.lamports.toString());
54
- if (nativeSolToConvert)
55
- url.searchParams.append('nativeSolToConvert', nativeSolToConvert.lamports.toString());
56
- if (lockDefaultToken)
57
- url.searchParams.append('lockDefaultToken', 'true');
58
- if (disableApplePay)
59
- url.searchParams.append('disableApplePay', 'true');
60
- if (disableGooglePay)
61
- url.searchParams.append('disableGooglePay', 'true');
62
- if (planCode)
63
- url.searchParams.append('planCode', planCode);
64
- if (settlementType)
65
- url.searchParams.append('settlementType', settlementType);
66
- if (lockAmount)
67
- url.searchParams.append('lockAmount', 'true');
68
- if (transactionSigner)
69
- url.searchParams.append('transactionSigner', transactionSigner);
70
- if (usePermit === false)
71
- url.searchParams.append('usePermit', 'false');
72
- if (authOnly === true)
73
- url.searchParams.append('authOnly', 'true');
74
- return url.toString();
75
- };
76
- return ReactNativeCoinflowUtils;
77
- }());
78
- export { ReactNativeCoinflowUtils };
79
- //# sourceMappingURL=ReactNativeCoinflowUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ReactNativeCoinflowUtils.js","sourceRoot":"","sources":["../src/ReactNativeCoinflowUtils.ts"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- import { IFrameMessageHandlers } from './SolanaIFrameMessageHandlers';
2
- import { EthWallet, PartialBy } from '../CoinflowTypes';
3
- export declare function useEthIFrameMessageHandlers({ wallet, }: {
4
- wallet: PartialBy<EthWallet, 'signMessage'>;
5
- }): IFrameMessageHandlers;
@@ -1,37 +0,0 @@
1
- import { __awaiter, __generator } from "tslib";
2
- import { useCallback } from 'react';
3
- export function useEthIFrameMessageHandlers(_a) {
4
- var _this = this;
5
- var wallet = _a.wallet;
6
- var handleSendTransaction = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
7
- var transaction, hash;
8
- var data = _b.data;
9
- return __generator(this, function (_c) {
10
- switch (_c.label) {
11
- case 0:
12
- transaction = JSON.parse(Buffer.from(data, 'base64').toString());
13
- return [4 /*yield*/, wallet.sendTransaction(transaction)];
14
- case 1:
15
- hash = (_c.sent()).hash;
16
- return [2 /*return*/, hash];
17
- }
18
- });
19
- }); }, [wallet]);
20
- var handleSignMessage = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
21
- var data = _b.data;
22
- return __generator(this, function (_c) {
23
- switch (_c.label) {
24
- case 0:
25
- if (!wallet.signMessage)
26
- throw new Error('Wallet does not support message signing!');
27
- return [4 /*yield*/, wallet.signMessage(data)];
28
- case 1: return [2 /*return*/, _c.sent()];
29
- }
30
- });
31
- }); }, [wallet]);
32
- return {
33
- handleSendTransaction: handleSendTransaction,
34
- handleSignMessage: handleSignMessage,
35
- };
36
- }
37
- //# sourceMappingURL=EthIFrameMessageHandlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EthIFrameMessageHandlers.js","sourceRoot":"","sources":["../../src/wallet/EthIFrameMessageHandlers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;AAIlC,MAAM,UAAU,2BAA2B,CAAC,EAI3C;IAJD,iBA4BC;QA3BC,MAAM,YAAA;IAIN,IAAM,qBAAqB,GAAG,WAAW,CACvC,gEAAO,EAAkB;;YAAjB,IAAI,UAAA;;;;oBACJ,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACxD,qBAAM,MAAM,CAAC,eAAe,CAAC,WAAW,CAAC,EAAA;;oBAAjD,IAAI,GAAI,CAAA,SAAyC,CAAA,KAA7C;oBACX,sBAAO,IAAI,EAAC;;;SACb,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,IAAM,iBAAiB,GAAG,WAAW,CACnC,gEAAO,EAAkB;YAAjB,IAAI,UAAA;;;;oBACV,IAAI,CAAC,MAAM,CAAC,WAAW;wBACrB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBAEvD,qBAAM,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,EAAA;wBAArC,sBAAO,SAA8B,EAAC;;;SACvC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,qBAAqB,uBAAA;QACrB,iBAAiB,mBAAA;KAClB,CAAC;AACJ,CAAC"}
@@ -1,5 +0,0 @@
1
- import { IFrameMessageHandlers } from './SolanaIFrameMessageHandlers';
2
- import { NearWallet } from '../CoinflowTypes';
3
- export declare function useNearIFrameMessageHandlers({ wallet, }: {
4
- wallet: NearWallet;
5
- }): IFrameMessageHandlers;
@@ -1,27 +0,0 @@
1
- import { __awaiter, __generator } from "tslib";
2
- import { useCallback } from 'react';
3
- export function useNearIFrameMessageHandlers(_a) {
4
- var _this = this;
5
- var wallet = _a.wallet;
6
- var handleSendTransaction = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
7
- var action, executionOutcome, transactionResult;
8
- var data = _b.data;
9
- return __generator(this, function (_c) {
10
- switch (_c.label) {
11
- case 0:
12
- action = JSON.parse(Buffer.from(data, 'base64').toString());
13
- return [4 /*yield*/, wallet.signAndSendTransaction(action)];
14
- case 1:
15
- executionOutcome = _c.sent();
16
- if (!executionOutcome)
17
- throw new Error('Transaction did not send');
18
- transactionResult = executionOutcome.transaction;
19
- return [2 /*return*/, transactionResult.hash];
20
- }
21
- });
22
- }); }, [wallet]);
23
- return {
24
- handleSendTransaction: handleSendTransaction,
25
- };
26
- }
27
- //# sourceMappingURL=NearIFrameMessageHandlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NearIFrameMessageHandlers.js","sourceRoot":"","sources":["../../src/wallet/NearIFrameMessageHandlers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;AAIlC,MAAM,UAAU,4BAA4B,CAAC,EAI5C;IAJD,iBAmBC;QAlBC,MAAM,YAAA;IAIN,IAAM,qBAAqB,GAAG,WAAW,CACvC,gEAAO,EAAkB;;YAAjB,IAAI,UAAA;;;;oBACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;oBACzC,qBAAM,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAA;;oBAA9D,gBAAgB,GAAG,SAA2C;oBACpE,IAAI,CAAC,gBAAgB;wBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBAC/C,iBAAiB,GAAI,gBAAgB,YAApB,CAAqB;oBAC1D,sBAAO,iBAAiB,CAAC,IAAI,EAAC;;;SAC/B,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,qBAAqB,uBAAA;KACtB,CAAC;AACJ,CAAC"}
@@ -1,18 +0,0 @@
1
- import type { Connection, Signer } from '@solana/web3.js';
2
- import { SolanaWallet } from '../CoinflowTypes';
3
- export type WalletCall = {
4
- method: string;
5
- data: string;
6
- };
7
- export type SolanaIFrameWalletProps = {
8
- wallet: SolanaWallet;
9
- connection: Connection;
10
- partialSigners?: Signer[];
11
- debugTx?: boolean;
12
- };
13
- export type IFrameMessageHandlers = {
14
- handleSignMessage?: ({ data }: WalletCall) => Promise<string>;
15
- handleSignTransaction?: ({ data }: WalletCall) => Promise<string>;
16
- handleSendTransaction: ({ data }: WalletCall) => Promise<string>;
17
- };
18
- export declare function useSolanaIFrameMessageHandlers({ wallet, connection, partialSigners, debugTx, }: SolanaIFrameWalletProps): IFrameMessageHandlers;
@@ -1,134 +0,0 @@
1
- import { __awaiter, __generator } from "tslib";
2
- import { useCallback } from 'react';
3
- import base58 from 'bs58';
4
- export function useSolanaIFrameMessageHandlers(_a) {
5
- var _this = this;
6
- var wallet = _a.wallet, connection = _a.connection, partialSigners = _a.partialSigners, _b = _a.debugTx, debugTx = _b === void 0 ? false : _b;
7
- var sendTransactionDebug = useCallback(function (tx) { return __awaiter(_this, void 0, void 0, function () {
8
- var signedTx, serializedTx, simulation, _i, _a, log, signature;
9
- var _b;
10
- return __generator(this, function (_c) {
11
- switch (_c.label) {
12
- case 0:
13
- if (!wallet.signTransaction)
14
- throw new Error('Wallet does not support sign transaction');
15
- return [4 /*yield*/, wallet.signTransaction(tx)];
16
- case 1:
17
- signedTx = _c.sent();
18
- serializedTx = signedTx.serialize();
19
- return [4 /*yield*/, connection.simulateTransaction(signedTx)];
20
- case 2:
21
- simulation = (_c.sent()).value;
22
- console.log('simulation logs:');
23
- for (_i = 0, _a = (_b = simulation.logs) !== null && _b !== void 0 ? _b : []; _i < _a.length; _i++) {
24
- log = _a[_i];
25
- console.log(log);
26
- }
27
- return [4 /*yield*/, connection.sendRawTransaction(serializedTx, {
28
- skipPreflight: true,
29
- })];
30
- case 3:
31
- signature = _c.sent();
32
- console.log('signature', signature);
33
- return [2 /*return*/, signature];
34
- }
35
- });
36
- }); }, [connection, wallet]);
37
- function getTransaction(data) {
38
- var web3;
39
- try {
40
- web3 = require('@solana/web3.js');
41
- }
42
- catch (e) {
43
- web3 = null;
44
- }
45
- if (!web3)
46
- throw new Error('web3 is not defined. Please install @solana/web3.js into your project');
47
- var parsedUInt8Array = base58.decode(data);
48
- var vtx = web3.VersionedTransaction.deserialize(parsedUInt8Array);
49
- if (vtx.version === 'legacy')
50
- return web3.Transaction.from(parsedUInt8Array);
51
- return vtx;
52
- }
53
- function partiallySign(signer, tx) {
54
- var isLegacyTx = 'instructions' in tx;
55
- if (isLegacyTx) {
56
- var requiredSignatures = tx.signatures.map(function (sig) {
57
- return sig.publicKey.toString();
58
- });
59
- var shouldSign_1 = requiredSignatures.includes(signer.publicKey.toString());
60
- if (shouldSign_1)
61
- tx.partialSign(signer);
62
- return;
63
- }
64
- // Will this work??
65
- var signerPubkeys = tx.message.staticAccountKeys
66
- .slice(0, tx.message.header.numRequiredSignatures)
67
- .map(function (pk) { return pk.toString(); });
68
- var shouldSign = signerPubkeys.includes(signer.publicKey.toString());
69
- if (shouldSign)
70
- tx.sign([signer]);
71
- }
72
- var handleSendTransaction = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
73
- var tx;
74
- var data = _b.data;
75
- return __generator(this, function (_c) {
76
- switch (_c.label) {
77
- case 0:
78
- tx = getTransaction(data);
79
- if (partialSigners)
80
- partialSigners.forEach(function (signer) { return partiallySign(signer, tx); });
81
- if (!debugTx) return [3 /*break*/, 2];
82
- return [4 /*yield*/, sendTransactionDebug(tx)];
83
- case 1: return [2 /*return*/, _c.sent()];
84
- case 2: return [4 /*yield*/, wallet.sendTransaction(tx, connection)];
85
- case 3: return [2 /*return*/, _c.sent()];
86
- }
87
- });
88
- }); }, [connection, debugTx, partialSigners, sendTransactionDebug, wallet]);
89
- var handleSignTransaction = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
90
- var tx, signedTransaction;
91
- var data = _b.data;
92
- return __generator(this, function (_c) {
93
- switch (_c.label) {
94
- case 0:
95
- if (!wallet.signTransaction) {
96
- throw new Error('signTransaction is not supported by this wallet');
97
- }
98
- tx = getTransaction(data);
99
- if (partialSigners) {
100
- partialSigners.forEach(function (signer) { return partiallySign(signer, tx); });
101
- }
102
- return [4 /*yield*/, wallet.signTransaction(tx)];
103
- case 1:
104
- signedTransaction = _c.sent();
105
- return [2 /*return*/, base58.encode(signedTransaction.serialize({
106
- requireAllSignatures: false,
107
- verifySignatures: false,
108
- }))];
109
- }
110
- });
111
- }); }, [partialSigners, wallet]);
112
- var handleSignMessage = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
113
- var signedMessage;
114
- var data = _b.data;
115
- return __generator(this, function (_c) {
116
- switch (_c.label) {
117
- case 0:
118
- if (!wallet.signMessage) {
119
- throw new Error('signTransaction is not supported by this wallet');
120
- }
121
- return [4 /*yield*/, wallet.signMessage(new TextEncoder().encode(data))];
122
- case 1:
123
- signedMessage = _c.sent();
124
- return [2 /*return*/, base58.encode(signedMessage)];
125
- }
126
- });
127
- }); }, [wallet]);
128
- return {
129
- handleSignTransaction: handleSignTransaction,
130
- handleSendTransaction: handleSendTransaction,
131
- handleSignMessage: handleSignMessage,
132
- };
133
- }
134
- //# sourceMappingURL=SolanaIFrameMessageHandlers.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SolanaIFrameMessageHandlers.js","sourceRoot":"","sources":["../../src/wallet/SolanaIFrameMessageHandlers.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import React from 'react';
2
- import { IFrameMessageHandlers } from './SolanaIFrameMessageHandlers';
3
- import { OnSuccessMethod } from '../CoinflowTypes';
4
- export declare function useWebViewWallet({ handleSignTransaction, handleSendTransaction, handleSignMessage, }: IFrameMessageHandlers, { onSuccess, }: {
5
- onSuccess?: OnSuccessMethod;
6
- }): {
7
- WebViewRef: React.MutableRefObject<any>;
8
- handleIframeMessages: ({ data }: {
9
- data: string;
10
- }) => Promise<void>;
11
- };
@@ -1,102 +0,0 @@
1
- import { __awaiter, __generator } from "tslib";
2
- import React, { useCallback } from 'react';
3
- export function useWebViewWallet(_a, _b) {
4
- var _this = this;
5
- var handleSignTransaction = _a.handleSignTransaction, handleSendTransaction = _a.handleSendTransaction, handleSignMessage = _a.handleSignMessage;
6
- var onSuccess = _b.onSuccess;
7
- var WebViewRef = React.useRef(null);
8
- var sendIFrameMessage = useCallback(function (message) {
9
- if (!(WebViewRef === null || WebViewRef === void 0 ? void 0 : WebViewRef.current))
10
- throw new Error('WebViewRef not defined');
11
- WebViewRef.current.postMessage(message);
12
- }, [WebViewRef]);
13
- var handleIframeMessages = useCallback(function (_a) { return __awaiter(_this, [_a], void 0, function (_b) {
14
- var parsedData, _c, signature, signedTransaction, signedMessage, e_1, message;
15
- var data = _b.data;
16
- return __generator(this, function (_d) {
17
- switch (_d.label) {
18
- case 0:
19
- _d.trys.push([0, 10, , 11]);
20
- parsedData = parseJSON(data);
21
- if (!parsedData)
22
- return [2 /*return*/];
23
- _c = parsedData.method;
24
- switch (_c) {
25
- case 'sendTransaction': return [3 /*break*/, 1];
26
- case 'success': return [3 /*break*/, 3];
27
- case 'signTransaction': return [3 /*break*/, 4];
28
- case 'signMessage': return [3 /*break*/, 6];
29
- }
30
- return [3 /*break*/, 8];
31
- case 1: return [4 /*yield*/, handleSendTransaction(parsedData)];
32
- case 2:
33
- signature = _d.sent();
34
- sendIFrameMessage(signature);
35
- return [3 /*break*/, 9];
36
- case 3:
37
- {
38
- if (onSuccess)
39
- onSuccess(data);
40
- return [3 /*break*/, 9];
41
- }
42
- _d.label = 4;
43
- case 4:
44
- if (!handleSignTransaction)
45
- throw new Error("This wallet does not support method ".concat(parsedData.method));
46
- return [4 /*yield*/, handleSignTransaction(parsedData)];
47
- case 5:
48
- signedTransaction = _d.sent();
49
- sendIFrameMessage(signedTransaction);
50
- return [3 /*break*/, 9];
51
- case 6:
52
- if (!handleSignMessage)
53
- throw new Error("This wallet does not support method ".concat(parsedData.method));
54
- return [4 /*yield*/, handleSignMessage(parsedData)];
55
- case 7:
56
- signedMessage = _d.sent();
57
- sendIFrameMessage(signedMessage);
58
- return [3 /*break*/, 9];
59
- case 8:
60
- {
61
- console.error("Unsupported Wallet Method ".concat(parsedData.method));
62
- return [3 /*break*/, 9];
63
- }
64
- _d.label = 9;
65
- case 9: return [3 /*break*/, 11];
66
- case 10:
67
- e_1 = _d.sent();
68
- console.error('handleIframeMessages', e_1);
69
- try {
70
- message = e_1 instanceof Error ? e_1.message : JSON.stringify(e_1);
71
- sendIFrameMessage('ERROR ' + message);
72
- }
73
- catch (e) {
74
- sendIFrameMessage('ERROR parsing error JSON');
75
- }
76
- return [3 /*break*/, 11];
77
- case 11: return [2 /*return*/];
78
- }
79
- });
80
- }); }, [
81
- handleSendTransaction,
82
- sendIFrameMessage,
83
- onSuccess,
84
- handleSignTransaction,
85
- handleSignMessage,
86
- ]);
87
- return { WebViewRef: WebViewRef, handleIframeMessages: handleIframeMessages };
88
- }
89
- function parseJSON(data) {
90
- try {
91
- var res = JSON.parse(data);
92
- if (!res.method)
93
- return null;
94
- if (!res.data)
95
- return null;
96
- return res;
97
- }
98
- catch (e) {
99
- return null;
100
- }
101
- }
102
- //# sourceMappingURL=useWebViewWallet.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useWebViewWallet.js","sourceRoot":"","sources":["../../src/wallet/useWebViewWallet.ts"],"names":[],"mappings":"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"}