@coinflowlabs/react 2.5.0 → 2.5.1
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/build/cjs/CoinflowCardForm.js +9 -28
- package/build/cjs/CoinflowCardForm.js.map +1 -1
- package/build/cjs/useHandleHeightChange.d.ts +2 -0
- package/build/cjs/useHandleHeightChange.js +24 -0
- package/build/cjs/useHandleHeightChange.js.map +1 -0
- package/build/cjs/wallet/useIframeWallet.d.ts +3 -0
- package/build/cjs/wallet/useIframeWallet.js +34 -26
- package/build/cjs/wallet/useIframeWallet.js.map +1 -1
- package/build/esm/CoinflowCardForm.js +11 -30
- package/build/esm/CoinflowCardForm.js.map +1 -1
- package/build/esm/useHandleHeightChange.d.ts +2 -0
- package/build/esm/useHandleHeightChange.js +19 -0
- package/build/esm/useHandleHeightChange.js.map +1 -0
- package/build/esm/wallet/useIframeWallet.d.ts +3 -0
- package/build/esm/wallet/useIframeWallet.js +32 -25
- package/build/esm/wallet/useIframeWallet.js.map +1 -1
- package/package.json +1 -1
|
@@ -5,6 +5,7 @@ var tslib_1 = require("tslib");
|
|
|
5
5
|
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
6
|
var useIframeWallet_1 = require("./wallet/useIframeWallet");
|
|
7
7
|
var CoinflowIFrame_1 = require("./CoinflowIFrame");
|
|
8
|
+
var useHandleHeightChange_1 = require("./useHandleHeightChange");
|
|
8
9
|
/**
|
|
9
10
|
* Allows merchants to collect card information from their customers in a PCI-compliant way and receive a token for use with the `/api/checkout/token` endpoint.
|
|
10
11
|
*
|
|
@@ -27,12 +28,8 @@ var CoinflowIFrame_1 = require("./CoinflowIFrame");
|
|
|
27
28
|
*/
|
|
28
29
|
exports.CoinflowCardForm = (0, react_1.forwardRef)(function (_a, ref) {
|
|
29
30
|
var handleHeightChange = _a.handleHeightChange, walletPubkey = _a.walletPubkey, env = _a.env, customCss = _a.customCss, merchantId = _a.merchantId, blockchain = _a.blockchain;
|
|
30
|
-
var IFrameRef = (0,
|
|
31
|
-
|
|
32
|
-
}, {
|
|
33
|
-
handleHeightChange: handleHeightChange,
|
|
34
|
-
env: env,
|
|
35
|
-
}, walletPubkey).IFrameRef;
|
|
31
|
+
var IFrameRef = (0, react_1.useRef)(null);
|
|
32
|
+
(0, useHandleHeightChange_1.useHandleHeightChange)(handleHeightChange);
|
|
36
33
|
(0, react_1.useImperativeHandle)(ref, function () { return ({
|
|
37
34
|
getToken: function () {
|
|
38
35
|
var _a;
|
|
@@ -42,32 +39,16 @@ exports.CoinflowCardForm = (0, react_1.forwardRef)(function (_a, ref) {
|
|
|
42
39
|
throw new Error('content window not found');
|
|
43
40
|
IFrameRef.current.contentWindow.postMessage('getToken', '*');
|
|
44
41
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
45
|
-
var
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return;
|
|
49
|
-
if (typeof incomingData !== 'string')
|
|
50
|
-
return;
|
|
51
|
-
var parsedData = (0, useIframeWallet_1.parseIframeMessageJSON)(incomingData);
|
|
52
|
-
if (!parsedData)
|
|
42
|
+
var handler = (0, useIframeWallet_1.getMessageHandler)('getToken', function (data) {
|
|
43
|
+
if (data.startsWith('ERROR')) {
|
|
44
|
+
reject(new Error(data.replace('ERROR', '')));
|
|
53
45
|
return;
|
|
54
|
-
var method = parsedData.method, data = parsedData.data;
|
|
55
|
-
switch (method) {
|
|
56
|
-
case 'heightChange':
|
|
57
|
-
if (handleHeightChange)
|
|
58
|
-
handleHeightChange(data);
|
|
59
|
-
return;
|
|
60
|
-
case 'getToken':
|
|
61
|
-
if (data.startsWith('ERROR')) {
|
|
62
|
-
reject(new Error(data.replace('ERROR', '')));
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
resolve(JSON.parse(data));
|
|
66
46
|
}
|
|
67
|
-
|
|
47
|
+
resolve(JSON.parse(data));
|
|
48
|
+
});
|
|
68
49
|
if (!window)
|
|
69
50
|
throw new Error('Window not defined');
|
|
70
|
-
window.
|
|
51
|
+
window.addEventListener('message', handler);
|
|
71
52
|
})];
|
|
72
53
|
});
|
|
73
54
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinflowCardForm.js","sourceRoot":"","sources":["../../src/CoinflowCardForm.tsx"],"names":[],"mappings":";;;;AAAA,
|
|
1
|
+
{"version":3,"file":"CoinflowCardForm.js","sourceRoot":"","sources":["../../src/CoinflowCardForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useHandleMessages = exports.useHandleHeightChange = void 0;
|
|
4
|
+
var react_1 = require("react");
|
|
5
|
+
var useIframeWallet_1 = require("./wallet/useIframeWallet");
|
|
6
|
+
function useHandleHeightChange(handleHeightChange) {
|
|
7
|
+
useHandleMessages('heightChange', handleHeightChange);
|
|
8
|
+
}
|
|
9
|
+
exports.useHandleHeightChange = useHandleHeightChange;
|
|
10
|
+
function useHandleMessages(method, handle) {
|
|
11
|
+
(0, react_1.useEffect)(function () {
|
|
12
|
+
if (!handle)
|
|
13
|
+
return;
|
|
14
|
+
if (!window)
|
|
15
|
+
throw new Error('Window not defined');
|
|
16
|
+
var handler = (0, useIframeWallet_1.getMessageHandler)(method, handle);
|
|
17
|
+
window.addEventListener('message', handler);
|
|
18
|
+
return function () {
|
|
19
|
+
window.removeEventListener('message', handler);
|
|
20
|
+
};
|
|
21
|
+
}, [handle, method]);
|
|
22
|
+
}
|
|
23
|
+
exports.useHandleMessages = useHandleMessages;
|
|
24
|
+
//# sourceMappingURL=useHandleHeightChange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHandleHeightChange.js","sourceRoot":"","sources":["../../src/useHandleHeightChange.ts"],"names":[],"mappings":";;;AAAA,+BAAgC;AAChC,4DAA2D;AAE3D,SAAgB,qBAAqB,CAAC,kBAA6C;IACjF,iBAAiB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AACxD,CAAC;AAFD,sDAEC;AAED,SAAgB,iBAAiB,CAAC,MAAc,EAAE,MAA+B;IAC/E,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnD,IAAM,OAAO,GAAI,IAAA,mCAAiB,EAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE5C,OAAO;YACL,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACvB,CAAC;AAXD,8CAWC"}
|
|
@@ -10,3 +10,6 @@ export declare function useIframeWallet({ handleSignTransaction, handleSendTrans
|
|
|
10
10
|
IFrameRef: import("react").MutableRefObject<HTMLIFrameElement | null>;
|
|
11
11
|
};
|
|
12
12
|
export declare function parseIframeMessageJSON(data: string): WalletCall | null;
|
|
13
|
+
export declare function getMessageHandler(method: string, handler: (data: string) => void): (args: {
|
|
14
|
+
data: unknown;
|
|
15
|
+
}) => void;
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseIframeMessageJSON = exports.useIframeWallet = void 0;
|
|
3
|
+
exports.getMessageHandler = exports.parseIframeMessageJSON = exports.useIframeWallet = void 0;
|
|
4
4
|
var tslib_1 = require("tslib");
|
|
5
5
|
var react_1 = require("react");
|
|
6
6
|
var SocketService_1 = require("./SocketService");
|
|
7
|
+
var useHandleHeightChange_1 = require("../useHandleHeightChange");
|
|
7
8
|
function useIframeWallet(_a, _b, walletPubkey) {
|
|
8
9
|
var _this = this;
|
|
9
10
|
var handleSignTransaction = _a.handleSignTransaction, handleSendTransaction = _a.handleSendTransaction, handleSignMessage = _a.handleSignMessage;
|
|
@@ -21,6 +22,7 @@ function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
21
22
|
throw new Error('Iframe not defined');
|
|
22
23
|
(_b = IFrameRef.current) === null || _b === void 0 ? void 0 : _b.contentWindow.postMessage(message, '*');
|
|
23
24
|
}, [useSocket, walletPubkey]);
|
|
25
|
+
(0, useHandleHeightChange_1.useHandleHeightChange)(handleHeightChange);
|
|
24
26
|
var handleIframeMessages = (0, react_1.useCallback)(function (_a) {
|
|
25
27
|
var data = _a.data;
|
|
26
28
|
return tslib_1.__awaiter(_this, void 0, void 0, function () {
|
|
@@ -28,7 +30,7 @@ function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
28
30
|
return tslib_1.__generator(this, function (_c) {
|
|
29
31
|
switch (_c.label) {
|
|
30
32
|
case 0:
|
|
31
|
-
_c.trys.push([0,
|
|
33
|
+
_c.trys.push([0, 9, , 10]);
|
|
32
34
|
parsedData = parseIframeMessageJSON(data);
|
|
33
35
|
if (!parsedData)
|
|
34
36
|
return [2 /*return*/];
|
|
@@ -38,19 +40,18 @@ function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
38
40
|
case 'success': return [3 /*break*/, 3];
|
|
39
41
|
case 'signTransaction': return [3 /*break*/, 4];
|
|
40
42
|
case 'signMessage': return [3 /*break*/, 6];
|
|
41
|
-
case 'heightChange': return [3 /*break*/, 8];
|
|
42
43
|
}
|
|
43
|
-
return [3 /*break*/,
|
|
44
|
+
return [3 /*break*/, 8];
|
|
44
45
|
case 1: return [4 /*yield*/, handleSendTransaction(parsedData)];
|
|
45
46
|
case 2:
|
|
46
47
|
signature = _c.sent();
|
|
47
48
|
sendIFrameMessage(signature);
|
|
48
|
-
return [3 /*break*/,
|
|
49
|
+
return [3 /*break*/, 8];
|
|
49
50
|
case 3:
|
|
50
51
|
{
|
|
51
52
|
if (onSuccess)
|
|
52
53
|
onSuccess(data);
|
|
53
|
-
return [3 /*break*/,
|
|
54
|
+
return [3 /*break*/, 8];
|
|
54
55
|
}
|
|
55
56
|
_c.label = 4;
|
|
56
57
|
case 4:
|
|
@@ -60,7 +61,7 @@ function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
60
61
|
case 5:
|
|
61
62
|
signedTransaction = _c.sent();
|
|
62
63
|
sendIFrameMessage(signedTransaction);
|
|
63
|
-
return [3 /*break*/,
|
|
64
|
+
return [3 /*break*/, 8];
|
|
64
65
|
case 6:
|
|
65
66
|
if (!handleSignMessage)
|
|
66
67
|
throw new Error("This wallet does not support method ".concat(parsedData.method));
|
|
@@ -68,21 +69,9 @@ function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
68
69
|
case 7:
|
|
69
70
|
signedMessage = _c.sent();
|
|
70
71
|
sendIFrameMessage(signedMessage);
|
|
71
|
-
return [3 /*break*/,
|
|
72
|
-
case 8:
|
|
73
|
-
{
|
|
74
|
-
handleHeightChange === null || handleHeightChange === void 0 ? void 0 : handleHeightChange(parsedData.data);
|
|
75
|
-
return [3 /*break*/, 10];
|
|
76
|
-
}
|
|
77
|
-
_c.label = 9;
|
|
72
|
+
return [3 /*break*/, 8];
|
|
73
|
+
case 8: return [3 /*break*/, 10];
|
|
78
74
|
case 9:
|
|
79
|
-
{
|
|
80
|
-
console.error("Unsupported Wallet Method ".concat(parsedData.method));
|
|
81
|
-
return [3 /*break*/, 10];
|
|
82
|
-
}
|
|
83
|
-
_c.label = 10;
|
|
84
|
-
case 10: return [3 /*break*/, 12];
|
|
85
|
-
case 11:
|
|
86
75
|
e_1 = _c.sent();
|
|
87
76
|
console.error('handleIframeMessages', e_1);
|
|
88
77
|
try {
|
|
@@ -92,12 +81,12 @@ function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
92
81
|
catch (e) {
|
|
93
82
|
sendIFrameMessage('ERROR parsing error JSON');
|
|
94
83
|
}
|
|
95
|
-
return [3 /*break*/,
|
|
96
|
-
case
|
|
84
|
+
return [3 /*break*/, 10];
|
|
85
|
+
case 10: return [2 /*return*/];
|
|
97
86
|
}
|
|
98
87
|
});
|
|
99
88
|
});
|
|
100
|
-
}, [handleSendTransaction, sendIFrameMessage, onSuccess, handleSignTransaction, handleSignMessage
|
|
89
|
+
}, [handleSendTransaction, sendIFrameMessage, onSuccess, handleSignTransaction, handleSignMessage]);
|
|
101
90
|
(0, react_1.useEffect)(function () {
|
|
102
91
|
if (useSocket) {
|
|
103
92
|
if (!walletPubkey)
|
|
@@ -108,8 +97,10 @@ function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
108
97
|
}
|
|
109
98
|
if (!window)
|
|
110
99
|
throw new Error('Window not defined');
|
|
111
|
-
window.
|
|
112
|
-
return function () {
|
|
100
|
+
window.addEventListener('message', handleIframeMessages);
|
|
101
|
+
return function () {
|
|
102
|
+
window.removeEventListener('message', handleIframeMessages);
|
|
103
|
+
};
|
|
113
104
|
}, [env, handleIframeMessages, useSocket, walletPubkey]);
|
|
114
105
|
return { IFrameRef: IFrameRef };
|
|
115
106
|
}
|
|
@@ -128,4 +119,21 @@ function parseIframeMessageJSON(data) {
|
|
|
128
119
|
}
|
|
129
120
|
}
|
|
130
121
|
exports.parseIframeMessageJSON = parseIframeMessageJSON;
|
|
122
|
+
function getMessageHandler(method, handler) {
|
|
123
|
+
return function (_a) {
|
|
124
|
+
var incomingData = _a.data;
|
|
125
|
+
if (origin === 'https://cdn.plaid.com')
|
|
126
|
+
return;
|
|
127
|
+
if (typeof incomingData !== 'string')
|
|
128
|
+
return;
|
|
129
|
+
var parsedData = parseIframeMessageJSON(incomingData);
|
|
130
|
+
if (!parsedData)
|
|
131
|
+
return;
|
|
132
|
+
var incomingMethod = parsedData.method, data = parsedData.data;
|
|
133
|
+
if (incomingMethod !== method)
|
|
134
|
+
return;
|
|
135
|
+
handler(data);
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
exports.getMessageHandler = getMessageHandler;
|
|
131
139
|
//# sourceMappingURL=useIframeWallet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIframeWallet.js","sourceRoot":"","sources":["../../../src/wallet/useIframeWallet.ts"],"names":[],"mappings":";;;;AAAA,+BAAqD;AAGrD,iDAAwG;
|
|
1
|
+
{"version":3,"file":"useIframeWallet.js","sourceRoot":"","sources":["../../../src/wallet/useIframeWallet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
|
-
import React, { forwardRef, useImperativeHandle, useMemo } from 'react';
|
|
3
|
-
import {
|
|
2
|
+
import React, { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';
|
|
3
|
+
import { getMessageHandler } from './wallet/useIframeWallet';
|
|
4
4
|
import { CoinflowIFrame } from './CoinflowIFrame';
|
|
5
|
+
import { useHandleHeightChange } from './useHandleHeightChange';
|
|
5
6
|
/**
|
|
6
7
|
* Allows merchants to collect card information from their customers in a PCI-compliant way and receive a token for use with the `/api/checkout/token` endpoint.
|
|
7
8
|
*
|
|
@@ -24,12 +25,8 @@ import { CoinflowIFrame } from './CoinflowIFrame';
|
|
|
24
25
|
*/
|
|
25
26
|
export var CoinflowCardForm = forwardRef(function (_a, ref) {
|
|
26
27
|
var handleHeightChange = _a.handleHeightChange, walletPubkey = _a.walletPubkey, env = _a.env, customCss = _a.customCss, merchantId = _a.merchantId, blockchain = _a.blockchain;
|
|
27
|
-
var IFrameRef =
|
|
28
|
-
|
|
29
|
-
}, {
|
|
30
|
-
handleHeightChange: handleHeightChange,
|
|
31
|
-
env: env,
|
|
32
|
-
}, walletPubkey).IFrameRef;
|
|
28
|
+
var IFrameRef = useRef(null);
|
|
29
|
+
useHandleHeightChange(handleHeightChange);
|
|
33
30
|
useImperativeHandle(ref, function () { return ({
|
|
34
31
|
getToken: function () {
|
|
35
32
|
var _a;
|
|
@@ -39,32 +36,16 @@ export var CoinflowCardForm = forwardRef(function (_a, ref) {
|
|
|
39
36
|
throw new Error('content window not found');
|
|
40
37
|
IFrameRef.current.contentWindow.postMessage('getToken', '*');
|
|
41
38
|
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
42
|
-
var
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
return;
|
|
46
|
-
if (typeof incomingData !== 'string')
|
|
47
|
-
return;
|
|
48
|
-
var parsedData = parseIframeMessageJSON(incomingData);
|
|
49
|
-
if (!parsedData)
|
|
39
|
+
var handler = getMessageHandler('getToken', function (data) {
|
|
40
|
+
if (data.startsWith('ERROR')) {
|
|
41
|
+
reject(new Error(data.replace('ERROR', '')));
|
|
50
42
|
return;
|
|
51
|
-
var method = parsedData.method, data = parsedData.data;
|
|
52
|
-
switch (method) {
|
|
53
|
-
case 'heightChange':
|
|
54
|
-
if (handleHeightChange)
|
|
55
|
-
handleHeightChange(data);
|
|
56
|
-
return;
|
|
57
|
-
case 'getToken':
|
|
58
|
-
if (data.startsWith('ERROR')) {
|
|
59
|
-
reject(new Error(data.replace('ERROR', '')));
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
resolve(JSON.parse(data));
|
|
63
43
|
}
|
|
64
|
-
|
|
44
|
+
resolve(JSON.parse(data));
|
|
45
|
+
});
|
|
65
46
|
if (!window)
|
|
66
47
|
throw new Error('Window not defined');
|
|
67
|
-
window.
|
|
48
|
+
window.addEventListener('message', handler);
|
|
68
49
|
})];
|
|
69
50
|
});
|
|
70
51
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinflowCardForm.js","sourceRoot":"","sources":["../../src/CoinflowCardForm.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAgB,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAC,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"CoinflowCardForm.js","sourceRoot":"","sources":["../../src/CoinflowCardForm.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAgB,UAAU,EAAE,mBAAmB,EAAE,OAAO,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AAC7F,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAC3D,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAEhD,OAAO,EAAC,qBAAqB,EAAC,MAAM,yBAAyB,CAAC;AAkB9D;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,IAAM,gBAAgB,GAAG,UAAU,CAAC,UAAC,EAAiG,EAAE,GAAG;QAArG,kBAAkB,wBAAA,EAAE,YAAY,kBAAA,EAAE,GAAG,SAAA,EAAE,SAAS,eAAA,EAAE,UAAU,gBAAA,EAAE,UAAU,gBAAA;IACnH,IAAM,SAAS,GAAG,MAAM,CAA2B,IAAI,CAAC,CAAC;IAEzD,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;IAE1C,mBAAmB,CAAC,GAAG,EAAE,cAAM,OAAA,CAAC;QACxB,QAAQ;;;;oBACZ,IAAI,CAAC,CAAA,MAAA,SAAS,CAAC,OAAO,0CAAE,aAAa,CAAA;wBAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;oBAEnF,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;oBAC7D,sBAAO,IAAI,OAAO,CAA4B,UAAC,OAAO,EAAE,MAAM;4BAC5D,IAAM,OAAO,GAAG,iBAAiB,CAAC,UAAU,EAAE,UAAC,IAAY;gCACzD,IAAI,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;oCAC5B,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;oCAC7C,OAAO;iCACR;gCAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;4BAC5B,CAAC,CAAC,CAAC;4BAEH,IAAI,CAAC,MAAM;gCAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;4BACnD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;wBAC9C,CAAC,CAAC,EAAC;;;SACJ;KACF,CAAC,EAnB6B,CAmB7B,CAAC,CAAC;IAEJ,IAAM,WAAW,GAAG,OAAO,CAAC;QAC1B,IAAI,CAAC,SAAS;YAAE,OAAO,SAAS,CAAC;QAEjC,IAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,UAAC,GAAG,EAAE,EAAY;gBAAX,GAAG,QAAA,EAAE,KAAK,QAAA;YAC/D,OAAO,GAAG,GAAG,UAAG,GAAG,eAAK,wBAAwB,CAAC,KAAK,CAAC,QAAK,CAAC;QAC/D,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAChD,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,IAAI,CAAC,YAAY;QAAE,OAAO,IAAI,CAAC;IAE/B,IAAM,WAAW,GAAwB;QACvC,YAAY,EAAE,YAAsB;QACpC,UAAU,YAAA;QACV,KAAK,EAAE,yBAAkB,UAAU,CAAE;QACrC,GAAG,KAAA;QACH,SAAS,WAAA;QACT,WAAW,EAAE,MAAM;QACnB,WAAW,aAAA;QACX,kBAAkB,oBAAA;KACnB,CAAC;IAEF,OAAO,oBAAC,cAAc,eAAK,WAAW,EAAI,CAAC;AAC7C,CAAC,CAAC,CAAC;AAEH,SAAS,wBAAwB,CAAC,IAAmB;IACnD,IAAI,GAAG,GAAG,EAAE,CAAC;4BACF,GAAG,EAAE,KAAK;QACnB,IAAI,GAAG,GAAG,EAAE,CAAC;QACb,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,UAAA,EAAE;YACtB,IAAI,EAAE,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE;gBAC3B,GAAG,IAAI,GAAG,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;aAC/B;iBAAK;gBACJ,GAAG,IAAI,EAAE,CAAC;aACX;QACH,CAAC,CAAC,CAAC;QACH,GAAG,IAAI,GAAG,GAAG,GAAG,GAAG,KAAK,GAAG,GAAG,CAAC;;IATjC,KAA0B,UAAoB,EAApB,KAAA,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAApB,cAAoB,EAApB,IAAoB;QAApC,IAAA,WAAY,EAAX,GAAG,QAAA,EAAE,KAAK,QAAA;gBAAV,GAAG,EAAE,KAAK;KAUpB;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { useEffect } from 'react';
|
|
2
|
+
import { getMessageHandler } from './wallet/useIframeWallet';
|
|
3
|
+
export function useHandleHeightChange(handleHeightChange) {
|
|
4
|
+
useHandleMessages('heightChange', handleHeightChange);
|
|
5
|
+
}
|
|
6
|
+
export function useHandleMessages(method, handle) {
|
|
7
|
+
useEffect(function () {
|
|
8
|
+
if (!handle)
|
|
9
|
+
return;
|
|
10
|
+
if (!window)
|
|
11
|
+
throw new Error('Window not defined');
|
|
12
|
+
var handler = getMessageHandler(method, handle);
|
|
13
|
+
window.addEventListener('message', handler);
|
|
14
|
+
return function () {
|
|
15
|
+
window.removeEventListener('message', handler);
|
|
16
|
+
};
|
|
17
|
+
}, [handle, method]);
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=useHandleHeightChange.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useHandleHeightChange.js","sourceRoot":"","sources":["../../src/useHandleHeightChange.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAChC,OAAO,EAAC,iBAAiB,EAAC,MAAM,0BAA0B,CAAC;AAE3D,MAAM,UAAU,qBAAqB,CAAC,kBAA6C;IACjF,iBAAiB,CAAC,cAAc,EAAE,kBAAkB,CAAC,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,MAAc,EAAE,MAA+B;IAC/E,SAAS,CAAC;QACR,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnD,IAAM,OAAO,GAAI,iBAAiB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QACnD,MAAM,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAE5C,OAAO;YACL,MAAM,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AACvB,CAAC"}
|
|
@@ -10,3 +10,6 @@ export declare function useIframeWallet({ handleSignTransaction, handleSendTrans
|
|
|
10
10
|
IFrameRef: import("react").MutableRefObject<HTMLIFrameElement | null>;
|
|
11
11
|
};
|
|
12
12
|
export declare function parseIframeMessageJSON(data: string): WalletCall | null;
|
|
13
|
+
export declare function getMessageHandler(method: string, handler: (data: string) => void): (args: {
|
|
14
|
+
data: unknown;
|
|
15
|
+
}) => void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { __awaiter, __generator } from "tslib";
|
|
2
2
|
import { useCallback, useEffect, useRef } from 'react';
|
|
3
3
|
import { disconnectSocket, initiateSocket, sendWebsocketMessage, subscribeToChat } from './SocketService';
|
|
4
|
+
import { useHandleHeightChange } from '../useHandleHeightChange';
|
|
4
5
|
export function useIframeWallet(_a, _b, walletPubkey) {
|
|
5
6
|
var _this = this;
|
|
6
7
|
var handleSignTransaction = _a.handleSignTransaction, handleSendTransaction = _a.handleSendTransaction, handleSignMessage = _a.handleSignMessage;
|
|
@@ -18,6 +19,7 @@ export function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
18
19
|
throw new Error('Iframe not defined');
|
|
19
20
|
(_b = IFrameRef.current) === null || _b === void 0 ? void 0 : _b.contentWindow.postMessage(message, '*');
|
|
20
21
|
}, [useSocket, walletPubkey]);
|
|
22
|
+
useHandleHeightChange(handleHeightChange);
|
|
21
23
|
var handleIframeMessages = useCallback(function (_a) {
|
|
22
24
|
var data = _a.data;
|
|
23
25
|
return __awaiter(_this, void 0, void 0, function () {
|
|
@@ -25,7 +27,7 @@ export function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
25
27
|
return __generator(this, function (_c) {
|
|
26
28
|
switch (_c.label) {
|
|
27
29
|
case 0:
|
|
28
|
-
_c.trys.push([0,
|
|
30
|
+
_c.trys.push([0, 9, , 10]);
|
|
29
31
|
parsedData = parseIframeMessageJSON(data);
|
|
30
32
|
if (!parsedData)
|
|
31
33
|
return [2 /*return*/];
|
|
@@ -35,19 +37,18 @@ export function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
35
37
|
case 'success': return [3 /*break*/, 3];
|
|
36
38
|
case 'signTransaction': return [3 /*break*/, 4];
|
|
37
39
|
case 'signMessage': return [3 /*break*/, 6];
|
|
38
|
-
case 'heightChange': return [3 /*break*/, 8];
|
|
39
40
|
}
|
|
40
|
-
return [3 /*break*/,
|
|
41
|
+
return [3 /*break*/, 8];
|
|
41
42
|
case 1: return [4 /*yield*/, handleSendTransaction(parsedData)];
|
|
42
43
|
case 2:
|
|
43
44
|
signature = _c.sent();
|
|
44
45
|
sendIFrameMessage(signature);
|
|
45
|
-
return [3 /*break*/,
|
|
46
|
+
return [3 /*break*/, 8];
|
|
46
47
|
case 3:
|
|
47
48
|
{
|
|
48
49
|
if (onSuccess)
|
|
49
50
|
onSuccess(data);
|
|
50
|
-
return [3 /*break*/,
|
|
51
|
+
return [3 /*break*/, 8];
|
|
51
52
|
}
|
|
52
53
|
_c.label = 4;
|
|
53
54
|
case 4:
|
|
@@ -57,7 +58,7 @@ export function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
57
58
|
case 5:
|
|
58
59
|
signedTransaction = _c.sent();
|
|
59
60
|
sendIFrameMessage(signedTransaction);
|
|
60
|
-
return [3 /*break*/,
|
|
61
|
+
return [3 /*break*/, 8];
|
|
61
62
|
case 6:
|
|
62
63
|
if (!handleSignMessage)
|
|
63
64
|
throw new Error("This wallet does not support method ".concat(parsedData.method));
|
|
@@ -65,21 +66,9 @@ export function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
65
66
|
case 7:
|
|
66
67
|
signedMessage = _c.sent();
|
|
67
68
|
sendIFrameMessage(signedMessage);
|
|
68
|
-
return [3 /*break*/,
|
|
69
|
-
case 8:
|
|
70
|
-
{
|
|
71
|
-
handleHeightChange === null || handleHeightChange === void 0 ? void 0 : handleHeightChange(parsedData.data);
|
|
72
|
-
return [3 /*break*/, 10];
|
|
73
|
-
}
|
|
74
|
-
_c.label = 9;
|
|
69
|
+
return [3 /*break*/, 8];
|
|
70
|
+
case 8: return [3 /*break*/, 10];
|
|
75
71
|
case 9:
|
|
76
|
-
{
|
|
77
|
-
console.error("Unsupported Wallet Method ".concat(parsedData.method));
|
|
78
|
-
return [3 /*break*/, 10];
|
|
79
|
-
}
|
|
80
|
-
_c.label = 10;
|
|
81
|
-
case 10: return [3 /*break*/, 12];
|
|
82
|
-
case 11:
|
|
83
72
|
e_1 = _c.sent();
|
|
84
73
|
console.error('handleIframeMessages', e_1);
|
|
85
74
|
try {
|
|
@@ -89,12 +78,12 @@ export function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
89
78
|
catch (e) {
|
|
90
79
|
sendIFrameMessage('ERROR parsing error JSON');
|
|
91
80
|
}
|
|
92
|
-
return [3 /*break*/,
|
|
93
|
-
case
|
|
81
|
+
return [3 /*break*/, 10];
|
|
82
|
+
case 10: return [2 /*return*/];
|
|
94
83
|
}
|
|
95
84
|
});
|
|
96
85
|
});
|
|
97
|
-
}, [handleSendTransaction, sendIFrameMessage, onSuccess, handleSignTransaction, handleSignMessage
|
|
86
|
+
}, [handleSendTransaction, sendIFrameMessage, onSuccess, handleSignTransaction, handleSignMessage]);
|
|
98
87
|
useEffect(function () {
|
|
99
88
|
if (useSocket) {
|
|
100
89
|
if (!walletPubkey)
|
|
@@ -105,8 +94,10 @@ export function useIframeWallet(_a, _b, walletPubkey) {
|
|
|
105
94
|
}
|
|
106
95
|
if (!window)
|
|
107
96
|
throw new Error('Window not defined');
|
|
108
|
-
window.
|
|
109
|
-
return function () {
|
|
97
|
+
window.addEventListener('message', handleIframeMessages);
|
|
98
|
+
return function () {
|
|
99
|
+
window.removeEventListener('message', handleIframeMessages);
|
|
100
|
+
};
|
|
110
101
|
}, [env, handleIframeMessages, useSocket, walletPubkey]);
|
|
111
102
|
return { IFrameRef: IFrameRef };
|
|
112
103
|
}
|
|
@@ -123,4 +114,20 @@ export function parseIframeMessageJSON(data) {
|
|
|
123
114
|
return null;
|
|
124
115
|
}
|
|
125
116
|
}
|
|
117
|
+
export function getMessageHandler(method, handler) {
|
|
118
|
+
return function (_a) {
|
|
119
|
+
var incomingData = _a.data;
|
|
120
|
+
if (origin === 'https://cdn.plaid.com')
|
|
121
|
+
return;
|
|
122
|
+
if (typeof incomingData !== 'string')
|
|
123
|
+
return;
|
|
124
|
+
var parsedData = parseIframeMessageJSON(incomingData);
|
|
125
|
+
if (!parsedData)
|
|
126
|
+
return;
|
|
127
|
+
var incomingMethod = parsedData.method, data = parsedData.data;
|
|
128
|
+
if (incomingMethod !== method)
|
|
129
|
+
return;
|
|
130
|
+
handler(data);
|
|
131
|
+
};
|
|
132
|
+
}
|
|
126
133
|
//# sourceMappingURL=useIframeWallet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useIframeWallet.js","sourceRoot":"","sources":["../../../src/wallet/useIframeWallet.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,WAAW,EAAE,SAAS,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AAGrD,OAAO,EAAC,gBAAgB,EAAE,cAAc,EAAE,oBAAoB,EAAE,eAAe,EAAC,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"useIframeWallet.js","sourceRoot":"","sources":["../../../src/wallet/useIframeWallet.ts"],"names":[],"mappings":"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"}
|