@coinflowlabs/react 2.4.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/README.md +4 -0
- package/build/cjs/CoinflowCardForm.d.ts +39 -0
- package/build/cjs/CoinflowCardForm.js +100 -0
- package/build/cjs/CoinflowCardForm.js.map +1 -0
- package/build/cjs/CoinflowTypes.d.ts +2 -0
- package/build/cjs/CoinflowUtils.d.ts +1 -1
- package/build/cjs/CoinflowUtils.js +5 -2
- package/build/cjs/CoinflowUtils.js.map +1 -1
- package/build/cjs/index.d.ts +1 -0
- package/build/cjs/index.js +1 -0
- package/build/cjs/index.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 +5 -1
- package/build/cjs/wallet/useIframeWallet.js +37 -28
- package/build/cjs/wallet/useIframeWallet.js.map +1 -1
- package/build/esm/CoinflowCardForm.d.ts +39 -0
- package/build/esm/CoinflowCardForm.js +97 -0
- package/build/esm/CoinflowCardForm.js.map +1 -0
- package/build/esm/CoinflowTypes.d.ts +2 -0
- package/build/esm/CoinflowUtils.d.ts +1 -1
- package/build/esm/CoinflowUtils.js +5 -2
- package/build/esm/CoinflowUtils.js.map +1 -1
- package/build/esm/index.d.ts +1 -0
- package/build/esm/index.js +1 -0
- package/build/esm/index.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 +5 -1
- package/build/esm/wallet/useIframeWallet.js +34 -27
- package/build/esm/wallet/useIframeWallet.js.map +1 -1
- package/package.json +4 -3
package/README.md
CHANGED
|
@@ -46,6 +46,10 @@ Props:
|
|
|
46
46
|
|
|
47
47
|
# Changelog
|
|
48
48
|
|
|
49
|
+
### 2.5.0
|
|
50
|
+
|
|
51
|
+
- Added the `CoinflowCardForm` component which allows merchants to collect credit card information from their users in a PCI compliant way. Tokenize it, and then utilize the remainder of Coinflow's APIs.
|
|
52
|
+
|
|
49
53
|
### 2.4.0
|
|
50
54
|
|
|
51
55
|
- Added support for Ethereum Mainnet
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React, { CSSProperties } from 'react';
|
|
2
|
+
import { CoinflowBlockchain, CoinflowEnvs } from './CoinflowTypes';
|
|
3
|
+
export type CoinflowCardTokenResponse = {
|
|
4
|
+
last4: string;
|
|
5
|
+
type: 'VISA' | 'MSTR' | 'AMEX' | 'DISC';
|
|
6
|
+
token: string;
|
|
7
|
+
};
|
|
8
|
+
export interface CoinflowCardFormProps {
|
|
9
|
+
merchantId: string;
|
|
10
|
+
walletPubkey?: string;
|
|
11
|
+
handleHeightChange?: (height: string) => void;
|
|
12
|
+
env: CoinflowEnvs;
|
|
13
|
+
inputCss?: CSSProperties;
|
|
14
|
+
customCss?: {
|
|
15
|
+
[key: string]: CSSProperties;
|
|
16
|
+
};
|
|
17
|
+
blockchain: CoinflowBlockchain;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 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.
|
|
21
|
+
*
|
|
22
|
+
* Usage:
|
|
23
|
+
* ```tsx
|
|
24
|
+
* const ref = useRef<{getToken(): Promise<{token: string}>}>();
|
|
25
|
+
*
|
|
26
|
+
* <CoinflowCardForm
|
|
27
|
+
* ref={coinflowCardFormRef}
|
|
28
|
+
* ...
|
|
29
|
+
* />
|
|
30
|
+
*
|
|
31
|
+
* <button onClick={() => {
|
|
32
|
+
* ref.current?.getToken()
|
|
33
|
+
* .then(({token}) => console.log(token))
|
|
34
|
+
* .catch(e => console.error('GET TOKEN ERROR', e))
|
|
35
|
+
* }}>Get Token</button>
|
|
36
|
+
*
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare const CoinflowCardForm: React.ForwardRefExoticComponent<CoinflowCardFormProps & React.RefAttributes<unknown>>;
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CoinflowCardForm = void 0;
|
|
4
|
+
var tslib_1 = require("tslib");
|
|
5
|
+
var react_1 = tslib_1.__importStar(require("react"));
|
|
6
|
+
var useIframeWallet_1 = require("./wallet/useIframeWallet");
|
|
7
|
+
var CoinflowIFrame_1 = require("./CoinflowIFrame");
|
|
8
|
+
var useHandleHeightChange_1 = require("./useHandleHeightChange");
|
|
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.
|
|
11
|
+
*
|
|
12
|
+
* Usage:
|
|
13
|
+
* ```tsx
|
|
14
|
+
* const ref = useRef<{getToken(): Promise<{token: string}>}>();
|
|
15
|
+
*
|
|
16
|
+
* <CoinflowCardForm
|
|
17
|
+
* ref={coinflowCardFormRef}
|
|
18
|
+
* ...
|
|
19
|
+
* />
|
|
20
|
+
*
|
|
21
|
+
* <button onClick={() => {
|
|
22
|
+
* ref.current?.getToken()
|
|
23
|
+
* .then(({token}) => console.log(token))
|
|
24
|
+
* .catch(e => console.error('GET TOKEN ERROR', e))
|
|
25
|
+
* }}>Get Token</button>
|
|
26
|
+
*
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
exports.CoinflowCardForm = (0, react_1.forwardRef)(function (_a, ref) {
|
|
30
|
+
var handleHeightChange = _a.handleHeightChange, walletPubkey = _a.walletPubkey, env = _a.env, customCss = _a.customCss, merchantId = _a.merchantId, blockchain = _a.blockchain;
|
|
31
|
+
var IFrameRef = (0, react_1.useRef)(null);
|
|
32
|
+
(0, useHandleHeightChange_1.useHandleHeightChange)(handleHeightChange);
|
|
33
|
+
(0, react_1.useImperativeHandle)(ref, function () { return ({
|
|
34
|
+
getToken: function () {
|
|
35
|
+
var _a;
|
|
36
|
+
return tslib_1.__awaiter(this, void 0, void 0, function () {
|
|
37
|
+
return tslib_1.__generator(this, function (_b) {
|
|
38
|
+
if (!((_a = IFrameRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow))
|
|
39
|
+
throw new Error('content window not found');
|
|
40
|
+
IFrameRef.current.contentWindow.postMessage('getToken', '*');
|
|
41
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
42
|
+
var handler = (0, useIframeWallet_1.getMessageHandler)('getToken', function (data) {
|
|
43
|
+
if (data.startsWith('ERROR')) {
|
|
44
|
+
reject(new Error(data.replace('ERROR', '')));
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
resolve(JSON.parse(data));
|
|
48
|
+
});
|
|
49
|
+
if (!window)
|
|
50
|
+
throw new Error('Window not defined');
|
|
51
|
+
window.addEventListener('message', handler);
|
|
52
|
+
})];
|
|
53
|
+
});
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
}); });
|
|
57
|
+
var merchantCss = (0, react_1.useMemo)(function () {
|
|
58
|
+
if (!customCss)
|
|
59
|
+
return undefined;
|
|
60
|
+
var cssStr = Object.entries(customCss).reduce(function (acc, _a) {
|
|
61
|
+
var key = _a[0], value = _a[1];
|
|
62
|
+
return acc + "".concat(key, " {").concat(CSSPropertiesToComponent(value), "}\n");
|
|
63
|
+
}, '');
|
|
64
|
+
return Buffer.from(cssStr).toString('base64');
|
|
65
|
+
}, [customCss]);
|
|
66
|
+
if (!walletPubkey)
|
|
67
|
+
return null;
|
|
68
|
+
var iFrameProps = {
|
|
69
|
+
walletPubkey: walletPubkey,
|
|
70
|
+
blockchain: blockchain,
|
|
71
|
+
route: "/checkout-form/".concat(merchantId),
|
|
72
|
+
env: env,
|
|
73
|
+
IFrameRef: IFrameRef,
|
|
74
|
+
routePrefix: 'form',
|
|
75
|
+
merchantCss: merchantCss,
|
|
76
|
+
handleHeightChange: handleHeightChange,
|
|
77
|
+
};
|
|
78
|
+
return react_1.default.createElement(CoinflowIFrame_1.CoinflowIFrame, tslib_1.__assign({}, iFrameProps));
|
|
79
|
+
});
|
|
80
|
+
function CSSPropertiesToComponent(dict) {
|
|
81
|
+
var str = '';
|
|
82
|
+
var _loop_1 = function (key, value) {
|
|
83
|
+
var clo = '';
|
|
84
|
+
key.split('').forEach(function (lt) {
|
|
85
|
+
if (lt.toUpperCase() === lt) {
|
|
86
|
+
clo += '-' + lt.toLowerCase();
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
clo += lt;
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
str += clo + ':' + value + ';';
|
|
93
|
+
};
|
|
94
|
+
for (var _i = 0, _a = Object.entries(dict); _i < _a.length; _i++) {
|
|
95
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
96
|
+
_loop_1(key, value);
|
|
97
|
+
}
|
|
98
|
+
return str;
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=CoinflowCardForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoinflowCardForm.js","sourceRoot":"","sources":["../../src/CoinflowCardForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -72,11 +72,13 @@ export interface CoinflowIFrameProps extends Omit<CoinflowTypes, 'merchantId'>,
|
|
|
72
72
|
walletPubkey: string;
|
|
73
73
|
IFrameRef: React.RefObject<HTMLIFrameElement>;
|
|
74
74
|
route: string;
|
|
75
|
+
routePrefix?: string;
|
|
75
76
|
transaction?: string;
|
|
76
77
|
token?: string | PublicKey;
|
|
77
78
|
email?: string;
|
|
78
79
|
supportsVersionedTransactions?: boolean;
|
|
79
80
|
nearDeposit?: string;
|
|
81
|
+
merchantCss?: string;
|
|
80
82
|
}
|
|
81
83
|
/** Transactions **/
|
|
82
84
|
export type NearFtTransferCallAction = {
|
|
@@ -8,7 +8,7 @@ export declare class CoinflowUtils {
|
|
|
8
8
|
getCreditBalance(publicKey: string, blockchain: 'solana' | 'near'): Promise<number>;
|
|
9
9
|
static getCoinflowBaseUrl(env?: CoinflowEnvs): string;
|
|
10
10
|
static getCoinflowApiUrl(env?: CoinflowEnvs): string;
|
|
11
|
-
static getCoinflowUrl({ walletPubkey, route, env, amount, transaction, blockchain, supportsVersionedTransactions, webhookInfo, token, email, loaderBackground, handleHeightChange, useSocket, bankAccountLinkRedirect, additionalWallets, nearDeposit, chargebackProtectionData, }: CoinflowIFrameProps): string;
|
|
11
|
+
static getCoinflowUrl({ walletPubkey, route, routePrefix, env, amount, transaction, blockchain, supportsVersionedTransactions, webhookInfo, token, email, loaderBackground, handleHeightChange, useSocket, bankAccountLinkRedirect, additionalWallets, nearDeposit, chargebackProtectionData, merchantCss, }: CoinflowIFrameProps): string;
|
|
12
12
|
static serializeSolanaTransaction(transaction: Transaction | VersionedTransaction | undefined): string | undefined;
|
|
13
13
|
static solanaWalletSupportsVersionedTransactions(wallet: SolanaWallet): boolean;
|
|
14
14
|
static byBlockchain<T>(blockchain: CoinflowBlockchain, args: {
|
|
@@ -61,8 +61,9 @@ var CoinflowUtils = /** @class */ (function () {
|
|
|
61
61
|
};
|
|
62
62
|
CoinflowUtils.getCoinflowUrl = function (_a) {
|
|
63
63
|
var _b;
|
|
64
|
-
var walletPubkey = _a.walletPubkey, route = _a.route, env = _a.env, amount = _a.amount, transaction = _a.transaction, blockchain = _a.blockchain, supportsVersionedTransactions = _a.supportsVersionedTransactions, webhookInfo = _a.webhookInfo, token = _a.token, email = _a.email, loaderBackground = _a.loaderBackground, handleHeightChange = _a.handleHeightChange, useSocket = _a.useSocket, bankAccountLinkRedirect = _a.bankAccountLinkRedirect, additionalWallets = _a.additionalWallets, nearDeposit = _a.nearDeposit, chargebackProtectionData = _a.chargebackProtectionData;
|
|
65
|
-
var
|
|
64
|
+
var walletPubkey = _a.walletPubkey, route = _a.route, routePrefix = _a.routePrefix, env = _a.env, amount = _a.amount, transaction = _a.transaction, blockchain = _a.blockchain, supportsVersionedTransactions = _a.supportsVersionedTransactions, webhookInfo = _a.webhookInfo, token = _a.token, email = _a.email, loaderBackground = _a.loaderBackground, handleHeightChange = _a.handleHeightChange, useSocket = _a.useSocket, bankAccountLinkRedirect = _a.bankAccountLinkRedirect, additionalWallets = _a.additionalWallets, nearDeposit = _a.nearDeposit, chargebackProtectionData = _a.chargebackProtectionData, merchantCss = _a.merchantCss;
|
|
65
|
+
var prefix = routePrefix ? "/".concat(routePrefix, "/").concat(blockchain) : "/".concat(blockchain);
|
|
66
|
+
var url = new URL(prefix + route, CoinflowUtils.getCoinflowBaseUrl(env));
|
|
66
67
|
url.searchParams.append('pubkey', walletPubkey);
|
|
67
68
|
if (transaction) {
|
|
68
69
|
url.searchParams.append('transaction', transaction);
|
|
@@ -104,6 +105,8 @@ var CoinflowUtils = /** @class */ (function () {
|
|
|
104
105
|
var deviceId = (_b = window === null || window === void 0 ? void 0 : window.nSureSDK) === null || _b === void 0 ? void 0 : _b.getDeviceId();
|
|
105
106
|
if (deviceId)
|
|
106
107
|
url.searchParams.append('deviceId', deviceId);
|
|
108
|
+
if (merchantCss)
|
|
109
|
+
url.searchParams.append('merchantCss', merchantCss);
|
|
107
110
|
return url.toString();
|
|
108
111
|
};
|
|
109
112
|
CoinflowUtils.serializeSolanaTransaction = function (transaction) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinflowUtils.js","sourceRoot":"","sources":["../../src/CoinflowUtils.ts"],"names":[],"mappings":";;;;AACA,sDAA0B;AAQ1B;IAIE,uBAAY,GAAkB;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,MAAM,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM;YAAE,IAAI,CAAC,GAAG,GAAG,2BAA2B,CAAC;aAC3D,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO;YAAE,IAAI,CAAC,GAAG,GAAG,uBAAuB,CAAC;;YAC7D,IAAI,CAAC,GAAG,GAAG,sBAAe,IAAI,CAAC,GAAG,mBAAgB,CAAC;IAC1D,CAAC;IAEK,mCAAW,GAAjB,UAAkB,UAAkB;;;;;4BACjB,qBAAM,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,yBAAkB,UAAU,CAAE,CAAC,EAAA;;wBAAjE,QAAQ,GAAG,SAAsD;wBAC1D,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAA5B,IAAI,GAAG,SAAqB;wBAClC,sBAAO,IAAI,CAAC,iBAAiB,EAAC;;;;KAC/B;IAEK,wCAAgB,GAAtB,UACE,SAAiB,EACjB,UAA6B;;;;;4BAEZ,qBAAM,KAAK,CAC1B,IAAI,CAAC,GAAG,GAAG,wBAAiB,SAAS,cAAI,UAAU,CAAE,CACtD,EAAA;;wBAFK,QAAQ,GAAG,SAEhB;wBACiB,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAAhC,OAAO,GAAI,CAAA,SAAqB,CAAA,QAAzB;wBACd,sBAAO,OAAO,EAAC;;;;KAChB;IAEM,gCAAkB,GAAzB,UAA0B,GAAkB;QAC1C,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,uBAAuB,CAAC;QAC3D,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,uBAAuB,CAAC;QAEpD,OAAO,kBAAW,GAAG,mBAAgB,CAAC;IACxC,CAAC;IAEM,+BAAiB,GAAxB,UAAyB,GAAkB;QACzC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,2BAA2B,CAAC;QAC/D,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,uBAAuB,CAAC;QAEpD,OAAO,sBAAe,GAAG,mBAAgB,CAAC;IAC5C,CAAC;IAEM,4BAAc,GAArB,UAAsB,
|
|
1
|
+
{"version":3,"file":"CoinflowUtils.js","sourceRoot":"","sources":["../../src/CoinflowUtils.ts"],"names":[],"mappings":"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"}
|
package/build/cjs/index.d.ts
CHANGED
package/build/cjs/index.js
CHANGED
|
@@ -10,4 +10,5 @@ tslib_1.__exportStar(require("./CoinflowPurchaseHistory"), exports);
|
|
|
10
10
|
tslib_1.__exportStar(require("./CoinflowWithdrawHistory"), exports);
|
|
11
11
|
tslib_1.__exportStar(require("./CoinflowTypes"), exports);
|
|
12
12
|
tslib_1.__exportStar(require("./CoinflowPurchaseProtection"), exports);
|
|
13
|
+
tslib_1.__exportStar(require("./CoinflowCardForm"), exports);
|
|
13
14
|
//# sourceMappingURL=index.js.map
|
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,6DAAmC;AACnC,0DAAgC;AAChC,mEAAyC;AACzC,2DAAiC;AACjC,oEAA0C;AAC1C,oEAA0C;AAC1C,0DAAgC;AAChC,uEAA6C"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;AAAA,6DAAmC;AACnC,6DAAmC;AACnC,0DAAgC;AAChC,mEAAyC;AACzC,2DAAiC;AACjC,oEAA0C;AAC1C,oEAA0C;AAC1C,0DAAgC;AAChC,uEAA6C;AAC7C,6DAAmC"}
|
|
@@ -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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { IFrameMessageHandlers } from './SolanaIFrameMessageHandlers';
|
|
2
|
+
import { IFrameMessageHandlers, WalletCall } from './SolanaIFrameMessageHandlers';
|
|
3
3
|
import { CoinflowEnvs, OnSuccessMethod } from '../CoinflowTypes';
|
|
4
4
|
export declare function useIframeWallet({ handleSignTransaction, handleSendTransaction, handleSignMessage, }: IFrameMessageHandlers, { onSuccess, handleHeightChange, useSocket, env }: {
|
|
5
5
|
onSuccess?: OnSuccessMethod;
|
|
@@ -9,3 +9,7 @@ export declare function useIframeWallet({ handleSignTransaction, handleSendTrans
|
|
|
9
9
|
}, walletPubkey: string | null | undefined): {
|
|
10
10
|
IFrameRef: import("react").MutableRefObject<HTMLIFrameElement | null>;
|
|
11
11
|
};
|
|
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.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,8 +30,8 @@ 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,
|
|
32
|
-
parsedData =
|
|
33
|
+
_c.trys.push([0, 9, , 10]);
|
|
34
|
+
parsedData = parseIframeMessageJSON(data);
|
|
33
35
|
if (!parsedData)
|
|
34
36
|
return [2 /*return*/];
|
|
35
37
|
_b = parsedData.method;
|
|
@@ -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,13 +97,15 @@ 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
|
}
|
|
116
107
|
exports.useIframeWallet = useIframeWallet;
|
|
117
|
-
function
|
|
108
|
+
function parseIframeMessageJSON(data) {
|
|
118
109
|
try {
|
|
119
110
|
var res = JSON.parse(data);
|
|
120
111
|
if (!res.method)
|
|
@@ -127,4 +118,22 @@ function parseJSON(data) {
|
|
|
127
118
|
return null;
|
|
128
119
|
}
|
|
129
120
|
}
|
|
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;
|
|
130
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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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React, { CSSProperties } from 'react';
|
|
2
|
+
import { CoinflowBlockchain, CoinflowEnvs } from './CoinflowTypes';
|
|
3
|
+
export type CoinflowCardTokenResponse = {
|
|
4
|
+
last4: string;
|
|
5
|
+
type: 'VISA' | 'MSTR' | 'AMEX' | 'DISC';
|
|
6
|
+
token: string;
|
|
7
|
+
};
|
|
8
|
+
export interface CoinflowCardFormProps {
|
|
9
|
+
merchantId: string;
|
|
10
|
+
walletPubkey?: string;
|
|
11
|
+
handleHeightChange?: (height: string) => void;
|
|
12
|
+
env: CoinflowEnvs;
|
|
13
|
+
inputCss?: CSSProperties;
|
|
14
|
+
customCss?: {
|
|
15
|
+
[key: string]: CSSProperties;
|
|
16
|
+
};
|
|
17
|
+
blockchain: CoinflowBlockchain;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* 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.
|
|
21
|
+
*
|
|
22
|
+
* Usage:
|
|
23
|
+
* ```tsx
|
|
24
|
+
* const ref = useRef<{getToken(): Promise<{token: string}>}>();
|
|
25
|
+
*
|
|
26
|
+
* <CoinflowCardForm
|
|
27
|
+
* ref={coinflowCardFormRef}
|
|
28
|
+
* ...
|
|
29
|
+
* />
|
|
30
|
+
*
|
|
31
|
+
* <button onClick={() => {
|
|
32
|
+
* ref.current?.getToken()
|
|
33
|
+
* .then(({token}) => console.log(token))
|
|
34
|
+
* .catch(e => console.error('GET TOKEN ERROR', e))
|
|
35
|
+
* }}>Get Token</button>
|
|
36
|
+
*
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare const CoinflowCardForm: React.ForwardRefExoticComponent<CoinflowCardFormProps & React.RefAttributes<unknown>>;
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
import { __assign, __awaiter, __generator } from "tslib";
|
|
2
|
+
import React, { forwardRef, useImperativeHandle, useMemo, useRef } from 'react';
|
|
3
|
+
import { getMessageHandler } from './wallet/useIframeWallet';
|
|
4
|
+
import { CoinflowIFrame } from './CoinflowIFrame';
|
|
5
|
+
import { useHandleHeightChange } from './useHandleHeightChange';
|
|
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.
|
|
8
|
+
*
|
|
9
|
+
* Usage:
|
|
10
|
+
* ```tsx
|
|
11
|
+
* const ref = useRef<{getToken(): Promise<{token: string}>}>();
|
|
12
|
+
*
|
|
13
|
+
* <CoinflowCardForm
|
|
14
|
+
* ref={coinflowCardFormRef}
|
|
15
|
+
* ...
|
|
16
|
+
* />
|
|
17
|
+
*
|
|
18
|
+
* <button onClick={() => {
|
|
19
|
+
* ref.current?.getToken()
|
|
20
|
+
* .then(({token}) => console.log(token))
|
|
21
|
+
* .catch(e => console.error('GET TOKEN ERROR', e))
|
|
22
|
+
* }}>Get Token</button>
|
|
23
|
+
*
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export var CoinflowCardForm = forwardRef(function (_a, ref) {
|
|
27
|
+
var handleHeightChange = _a.handleHeightChange, walletPubkey = _a.walletPubkey, env = _a.env, customCss = _a.customCss, merchantId = _a.merchantId, blockchain = _a.blockchain;
|
|
28
|
+
var IFrameRef = useRef(null);
|
|
29
|
+
useHandleHeightChange(handleHeightChange);
|
|
30
|
+
useImperativeHandle(ref, function () { return ({
|
|
31
|
+
getToken: function () {
|
|
32
|
+
var _a;
|
|
33
|
+
return __awaiter(this, void 0, void 0, function () {
|
|
34
|
+
return __generator(this, function (_b) {
|
|
35
|
+
if (!((_a = IFrameRef.current) === null || _a === void 0 ? void 0 : _a.contentWindow))
|
|
36
|
+
throw new Error('content window not found');
|
|
37
|
+
IFrameRef.current.contentWindow.postMessage('getToken', '*');
|
|
38
|
+
return [2 /*return*/, new Promise(function (resolve, reject) {
|
|
39
|
+
var handler = getMessageHandler('getToken', function (data) {
|
|
40
|
+
if (data.startsWith('ERROR')) {
|
|
41
|
+
reject(new Error(data.replace('ERROR', '')));
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
resolve(JSON.parse(data));
|
|
45
|
+
});
|
|
46
|
+
if (!window)
|
|
47
|
+
throw new Error('Window not defined');
|
|
48
|
+
window.addEventListener('message', handler);
|
|
49
|
+
})];
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}); });
|
|
54
|
+
var merchantCss = useMemo(function () {
|
|
55
|
+
if (!customCss)
|
|
56
|
+
return undefined;
|
|
57
|
+
var cssStr = Object.entries(customCss).reduce(function (acc, _a) {
|
|
58
|
+
var key = _a[0], value = _a[1];
|
|
59
|
+
return acc + "".concat(key, " {").concat(CSSPropertiesToComponent(value), "}\n");
|
|
60
|
+
}, '');
|
|
61
|
+
return Buffer.from(cssStr).toString('base64');
|
|
62
|
+
}, [customCss]);
|
|
63
|
+
if (!walletPubkey)
|
|
64
|
+
return null;
|
|
65
|
+
var iFrameProps = {
|
|
66
|
+
walletPubkey: walletPubkey,
|
|
67
|
+
blockchain: blockchain,
|
|
68
|
+
route: "/checkout-form/".concat(merchantId),
|
|
69
|
+
env: env,
|
|
70
|
+
IFrameRef: IFrameRef,
|
|
71
|
+
routePrefix: 'form',
|
|
72
|
+
merchantCss: merchantCss,
|
|
73
|
+
handleHeightChange: handleHeightChange,
|
|
74
|
+
};
|
|
75
|
+
return React.createElement(CoinflowIFrame, __assign({}, iFrameProps));
|
|
76
|
+
});
|
|
77
|
+
function CSSPropertiesToComponent(dict) {
|
|
78
|
+
var str = '';
|
|
79
|
+
var _loop_1 = function (key, value) {
|
|
80
|
+
var clo = '';
|
|
81
|
+
key.split('').forEach(function (lt) {
|
|
82
|
+
if (lt.toUpperCase() === lt) {
|
|
83
|
+
clo += '-' + lt.toLowerCase();
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
clo += lt;
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
str += clo + ':' + value + ';';
|
|
90
|
+
};
|
|
91
|
+
for (var _i = 0, _a = Object.entries(dict); _i < _a.length; _i++) {
|
|
92
|
+
var _b = _a[_i], key = _b[0], value = _b[1];
|
|
93
|
+
_loop_1(key, value);
|
|
94
|
+
}
|
|
95
|
+
return str;
|
|
96
|
+
}
|
|
97
|
+
//# sourceMappingURL=CoinflowCardForm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CoinflowCardForm.js","sourceRoot":"","sources":["../../src/CoinflowCardForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -72,11 +72,13 @@ export interface CoinflowIFrameProps extends Omit<CoinflowTypes, 'merchantId'>,
|
|
|
72
72
|
walletPubkey: string;
|
|
73
73
|
IFrameRef: React.RefObject<HTMLIFrameElement>;
|
|
74
74
|
route: string;
|
|
75
|
+
routePrefix?: string;
|
|
75
76
|
transaction?: string;
|
|
76
77
|
token?: string | PublicKey;
|
|
77
78
|
email?: string;
|
|
78
79
|
supportsVersionedTransactions?: boolean;
|
|
79
80
|
nearDeposit?: string;
|
|
81
|
+
merchantCss?: string;
|
|
80
82
|
}
|
|
81
83
|
/** Transactions **/
|
|
82
84
|
export type NearFtTransferCallAction = {
|
|
@@ -8,7 +8,7 @@ export declare class CoinflowUtils {
|
|
|
8
8
|
getCreditBalance(publicKey: string, blockchain: 'solana' | 'near'): Promise<number>;
|
|
9
9
|
static getCoinflowBaseUrl(env?: CoinflowEnvs): string;
|
|
10
10
|
static getCoinflowApiUrl(env?: CoinflowEnvs): string;
|
|
11
|
-
static getCoinflowUrl({ walletPubkey, route, env, amount, transaction, blockchain, supportsVersionedTransactions, webhookInfo, token, email, loaderBackground, handleHeightChange, useSocket, bankAccountLinkRedirect, additionalWallets, nearDeposit, chargebackProtectionData, }: CoinflowIFrameProps): string;
|
|
11
|
+
static getCoinflowUrl({ walletPubkey, route, routePrefix, env, amount, transaction, blockchain, supportsVersionedTransactions, webhookInfo, token, email, loaderBackground, handleHeightChange, useSocket, bankAccountLinkRedirect, additionalWallets, nearDeposit, chargebackProtectionData, merchantCss, }: CoinflowIFrameProps): string;
|
|
12
12
|
static serializeSolanaTransaction(transaction: Transaction | VersionedTransaction | undefined): string | undefined;
|
|
13
13
|
static solanaWalletSupportsVersionedTransactions(wallet: SolanaWallet): boolean;
|
|
14
14
|
static byBlockchain<T>(blockchain: CoinflowBlockchain, args: {
|
|
@@ -58,8 +58,9 @@ var CoinflowUtils = /** @class */ (function () {
|
|
|
58
58
|
};
|
|
59
59
|
CoinflowUtils.getCoinflowUrl = function (_a) {
|
|
60
60
|
var _b;
|
|
61
|
-
var walletPubkey = _a.walletPubkey, route = _a.route, env = _a.env, amount = _a.amount, transaction = _a.transaction, blockchain = _a.blockchain, supportsVersionedTransactions = _a.supportsVersionedTransactions, webhookInfo = _a.webhookInfo, token = _a.token, email = _a.email, loaderBackground = _a.loaderBackground, handleHeightChange = _a.handleHeightChange, useSocket = _a.useSocket, bankAccountLinkRedirect = _a.bankAccountLinkRedirect, additionalWallets = _a.additionalWallets, nearDeposit = _a.nearDeposit, chargebackProtectionData = _a.chargebackProtectionData;
|
|
62
|
-
var
|
|
61
|
+
var walletPubkey = _a.walletPubkey, route = _a.route, routePrefix = _a.routePrefix, env = _a.env, amount = _a.amount, transaction = _a.transaction, blockchain = _a.blockchain, supportsVersionedTransactions = _a.supportsVersionedTransactions, webhookInfo = _a.webhookInfo, token = _a.token, email = _a.email, loaderBackground = _a.loaderBackground, handleHeightChange = _a.handleHeightChange, useSocket = _a.useSocket, bankAccountLinkRedirect = _a.bankAccountLinkRedirect, additionalWallets = _a.additionalWallets, nearDeposit = _a.nearDeposit, chargebackProtectionData = _a.chargebackProtectionData, merchantCss = _a.merchantCss;
|
|
62
|
+
var prefix = routePrefix ? "/".concat(routePrefix, "/").concat(blockchain) : "/".concat(blockchain);
|
|
63
|
+
var url = new URL(prefix + route, CoinflowUtils.getCoinflowBaseUrl(env));
|
|
63
64
|
url.searchParams.append('pubkey', walletPubkey);
|
|
64
65
|
if (transaction) {
|
|
65
66
|
url.searchParams.append('transaction', transaction);
|
|
@@ -101,6 +102,8 @@ var CoinflowUtils = /** @class */ (function () {
|
|
|
101
102
|
var deviceId = (_b = window === null || window === void 0 ? void 0 : window.nSureSDK) === null || _b === void 0 ? void 0 : _b.getDeviceId();
|
|
102
103
|
if (deviceId)
|
|
103
104
|
url.searchParams.append('deviceId', deviceId);
|
|
105
|
+
if (merchantCss)
|
|
106
|
+
url.searchParams.append('merchantCss', merchantCss);
|
|
104
107
|
return url.toString();
|
|
105
108
|
};
|
|
106
109
|
CoinflowUtils.serializeSolanaTransaction = function (transaction) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinflowUtils.js","sourceRoot":"","sources":["../../src/CoinflowUtils.ts"],"names":[],"mappings":";AACA,OAAO,MAAM,MAAM,MAAM,CAAC;AAQ1B;IAIE,uBAAY,GAAkB;QAC5B,IAAI,CAAC,GAAG,GAAG,GAAG,aAAH,GAAG,cAAH,GAAG,GAAI,MAAM,CAAC;QACzB,IAAI,IAAI,CAAC,GAAG,KAAK,MAAM;YAAE,IAAI,CAAC,GAAG,GAAG,2BAA2B,CAAC;aAC3D,IAAI,IAAI,CAAC,GAAG,KAAK,OAAO;YAAE,IAAI,CAAC,GAAG,GAAG,uBAAuB,CAAC;;YAC7D,IAAI,CAAC,GAAG,GAAG,sBAAe,IAAI,CAAC,GAAG,mBAAgB,CAAC;IAC1D,CAAC;IAEK,mCAAW,GAAjB,UAAkB,UAAkB;;;;;4BACjB,qBAAM,KAAK,CAAC,IAAI,CAAC,GAAG,GAAG,yBAAkB,UAAU,CAAE,CAAC,EAAA;;wBAAjE,QAAQ,GAAG,SAAsD;wBAC1D,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAA5B,IAAI,GAAG,SAAqB;wBAClC,sBAAO,IAAI,CAAC,iBAAiB,EAAC;;;;KAC/B;IAEK,wCAAgB,GAAtB,UACE,SAAiB,EACjB,UAA6B;;;;;4BAEZ,qBAAM,KAAK,CAC1B,IAAI,CAAC,GAAG,GAAG,wBAAiB,SAAS,cAAI,UAAU,CAAE,CACtD,EAAA;;wBAFK,QAAQ,GAAG,SAEhB;wBACiB,qBAAM,QAAQ,CAAC,IAAI,EAAE,EAAA;;wBAAhC,OAAO,GAAI,CAAA,SAAqB,CAAA,QAAzB;wBACd,sBAAO,OAAO,EAAC;;;;KAChB;IAEM,gCAAkB,GAAzB,UAA0B,GAAkB;QAC1C,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,uBAAuB,CAAC;QAC3D,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,uBAAuB,CAAC;QAEpD,OAAO,kBAAW,GAAG,mBAAgB,CAAC;IACxC,CAAC;IAEM,+BAAiB,GAAxB,UAAyB,GAAkB;QACzC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,2BAA2B,CAAC;QAC/D,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,uBAAuB,CAAC;QAEpD,OAAO,sBAAe,GAAG,mBAAgB,CAAC;IAC5C,CAAC;IAEM,4BAAc,GAArB,UAAsB,
|
|
1
|
+
{"version":3,"file":"CoinflowUtils.js","sourceRoot":"","sources":["../../src/CoinflowUtils.ts"],"names":[],"mappings":"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"}
|
package/build/esm/index.d.ts
CHANGED
package/build/esm/index.js
CHANGED
package/build/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,oBAAoB,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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { IFrameMessageHandlers } from './SolanaIFrameMessageHandlers';
|
|
2
|
+
import { IFrameMessageHandlers, WalletCall } from './SolanaIFrameMessageHandlers';
|
|
3
3
|
import { CoinflowEnvs, OnSuccessMethod } from '../CoinflowTypes';
|
|
4
4
|
export declare function useIframeWallet({ handleSignTransaction, handleSendTransaction, handleSignMessage, }: IFrameMessageHandlers, { onSuccess, handleHeightChange, useSocket, env }: {
|
|
5
5
|
onSuccess?: OnSuccessMethod;
|
|
@@ -9,3 +9,7 @@ export declare function useIframeWallet({ handleSignTransaction, handleSendTrans
|
|
|
9
9
|
}, walletPubkey: string | null | undefined): {
|
|
10
10
|
IFrameRef: import("react").MutableRefObject<HTMLIFrameElement | null>;
|
|
11
11
|
};
|
|
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,8 +27,8 @@ 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,
|
|
29
|
-
parsedData =
|
|
30
|
+
_c.trys.push([0, 9, , 10]);
|
|
31
|
+
parsedData = parseIframeMessageJSON(data);
|
|
30
32
|
if (!parsedData)
|
|
31
33
|
return [2 /*return*/];
|
|
32
34
|
_b = parsedData.method;
|
|
@@ -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,12 +94,14 @@ 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
|
}
|
|
113
|
-
function
|
|
104
|
+
export function parseIframeMessageJSON(data) {
|
|
114
105
|
try {
|
|
115
106
|
var res = JSON.parse(data);
|
|
116
107
|
if (!res.method)
|
|
@@ -123,4 +114,20 @@ function parseJSON(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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinflowlabs/react",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.5.1",
|
|
4
4
|
"description": "React Component for Coinflow Withdraw",
|
|
5
5
|
"main": "./build/cjs/index.js",
|
|
6
6
|
"module": "./build/esm/index.js",
|
|
@@ -33,10 +33,11 @@
|
|
|
33
33
|
},
|
|
34
34
|
"devDependencies": {
|
|
35
35
|
"@solana/wallet-adapter-react": "^0.15.32",
|
|
36
|
-
"@near-wallet-selector/core": "^8.5.
|
|
36
|
+
"@near-wallet-selector/core": "^8.5.2",
|
|
37
37
|
"@types/react": "^18.2.21",
|
|
38
38
|
"eslint-config-react-app": "^7.0.1",
|
|
39
|
-
"typescript": "^5.0.4"
|
|
39
|
+
"typescript": "^5.0.4",
|
|
40
|
+
"csstype": "^3.1.2"
|
|
40
41
|
},
|
|
41
42
|
"peerDependencies": {
|
|
42
43
|
"@solana/web3.js": ">=1.54.0",
|