@coinflowlabs/react-native 4.2.5-SNAPSHOT1 → 4.2.5-SNAPSHOT2

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 (65) hide show
  1. package/build/CoinflowPurchase.d.ts +4 -0
  2. package/build/CoinflowPurchase.js +20 -0
  3. package/build/CoinflowPurchase.js.map +1 -0
  4. package/build/CoinflowPurchaseHistory.d.ts +4 -0
  5. package/build/CoinflowPurchaseHistory.js +16 -0
  6. package/build/CoinflowPurchaseHistory.js.map +1 -0
  7. package/build/CoinflowSkeleton.d.ts +6 -0
  8. package/build/CoinflowSkeleton.js +96 -0
  9. package/build/CoinflowSkeleton.js.map +1 -0
  10. package/build/CoinflowWebView.d.ts +24 -0
  11. package/build/CoinflowWithdraw.d.ts +4 -0
  12. package/build/CoinflowWithdraw.js +16 -0
  13. package/build/CoinflowWithdraw.js.map +1 -0
  14. package/build/CoinflowWithdrawHistory.d.ts +4 -0
  15. package/build/CoinflowWithdrawHistory.js +16 -0
  16. package/build/CoinflowWithdrawHistory.js.map +1 -0
  17. package/build/common/CoinflowLibMessageHandlers.d.ts +35 -0
  18. package/build/common/CoinflowLibMessageHandlers.js +258 -0
  19. package/build/common/CoinflowLibMessageHandlers.js.map +1 -0
  20. package/build/common/CoinflowTypes.d.ts +514 -0
  21. package/build/common/CoinflowTypes.js +39 -0
  22. package/build/common/CoinflowTypes.js.map +1 -0
  23. package/build/common/CoinflowUtils.d.ts +24 -0
  24. package/build/common/CoinflowUtils.js +246 -0
  25. package/build/common/CoinflowUtils.js.map +1 -0
  26. package/build/common/EventBus.d.ts +6 -0
  27. package/build/common/EventBus.js +16 -0
  28. package/build/common/EventBus.js.map +1 -0
  29. package/build/common/SolanaPeerDeps.d.ts +5 -0
  30. package/build/common/SolanaPeerDeps.js +17 -0
  31. package/build/common/SolanaPeerDeps.js.map +1 -0
  32. package/build/common/card-form/TokenEx.d.ts +171 -0
  33. package/build/common/card-form/TokenEx.js +12 -0
  34. package/build/common/card-form/TokenEx.js.map +1 -0
  35. package/build/common/card-form/tokenexHelpers.d.ts +35 -0
  36. package/build/common/card-form/tokenexHelpers.js +210 -0
  37. package/build/common/card-form/tokenexHelpers.js.map +1 -0
  38. package/build/common/index.d.ts +11 -0
  39. package/build/common/index.js +12 -0
  40. package/build/common/index.js.map +1 -0
  41. package/build/common/types/AnyObject.d.ts +5 -0
  42. package/build/common/types/AnyObject.js +2 -0
  43. package/build/common/types/AnyObject.js.map +1 -0
  44. package/build/common/types/CartitemCommon.d.ts +163 -0
  45. package/build/common/types/CartitemCommon.js +2 -0
  46. package/build/common/types/CartitemCommon.js.map +1 -0
  47. package/build/common/types/Subtotal.d.ts +189 -0
  48. package/build/common/types/Subtotal.js +310 -0
  49. package/build/common/types/Subtotal.js.map +1 -0
  50. package/build/common/types/cryptoCartItem.d.ts +63 -0
  51. package/build/common/types/cryptoCartItem.js +2 -0
  52. package/build/common/types/cryptoCartItem.js.map +1 -0
  53. package/build/common/types/giftCardCartItem.d.ts +58 -0
  54. package/build/common/types/giftCardCartItem.js +2 -0
  55. package/build/common/types/giftCardCartItem.js.map +1 -0
  56. package/build/common/types/moneyTopUpCartItem.d.ts +44 -0
  57. package/build/common/types/moneyTopUpCartItem.js +2 -0
  58. package/build/common/types/moneyTopUpCartItem.js.map +1 -0
  59. package/build/common/types/nftCartItem.d.ts +99 -0
  60. package/build/common/types/nftCartItem.js +44 -0
  61. package/build/common/types/nftCartItem.js.map +1 -0
  62. package/build/index.d.ts +6 -0
  63. package/build/index.js +7 -0
  64. package/build/index.js.map +1 -0
  65. package/package.json +1 -1
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { WithOnLoad, WithStyles } from './CoinflowWebView';
3
+ import { CoinflowPurchaseProps } from './common';
4
+ export declare function CoinflowPurchase(purchaseProps: CoinflowPurchaseProps & WithStyles & WithOnLoad): React.JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { __assign } from "tslib";
2
+ import React, { useMemo } from 'react';
3
+ import { CoinflowWebView, useRandomHandleHeightChangeId, } from './CoinflowWebView';
4
+ import { CoinflowUtils, getHandlers, getWalletPubkey, } from './common';
5
+ function useCoinflowPurchase(purchaseProps, version) {
6
+ var handleHeightChangeId = useRandomHandleHeightChangeId();
7
+ var webviewProps = useMemo(function () {
8
+ var walletPubkey = getWalletPubkey(purchaseProps);
9
+ return __assign(__assign({}, purchaseProps), { walletPubkey: walletPubkey, route: "/purchase".concat(version, "/").concat(purchaseProps.merchantId), transaction: CoinflowUtils.getTransaction(purchaseProps), onLoad: purchaseProps.onLoad, handleHeightChangeId: handleHeightChangeId });
10
+ }, [handleHeightChangeId, purchaseProps, version]);
11
+ var messageHandlers = useMemo(function () {
12
+ return __assign(__assign({}, getHandlers(purchaseProps)), { handleHeightChange: purchaseProps.handleHeightChange });
13
+ }, [purchaseProps]);
14
+ return { webviewProps: webviewProps, messageHandlers: messageHandlers };
15
+ }
16
+ export function CoinflowPurchase(purchaseProps) {
17
+ var _a = useCoinflowPurchase(purchaseProps, '-v2'), webviewProps = _a.webviewProps, messageHandlers = _a.messageHandlers;
18
+ return (React.createElement(CoinflowWebView, __assign({}, webviewProps, messageHandlers, { waitForWebviewLoadedMessage: true })));
19
+ }
20
+ //# sourceMappingURL=CoinflowPurchase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoinflowPurchase.js","sourceRoot":"","sources":["../src/CoinflowPurchase.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EACL,eAAe,EAEf,6BAA6B,GAG9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAEL,aAAa,EACb,WAAW,EACX,eAAe,GAEhB,MAAM,UAAU,CAAC;AAElB,SAAS,mBAAmB,CAC1B,aAA8D,EAC9D,OAAe;IAEf,IAAM,oBAAoB,GAAG,6BAA6B,EAAE,CAAC;IAC7D,IAAM,YAAY,GAAG,OAAO,CAAuB;QACjD,IAAM,YAAY,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;QACpD,6BACK,aAAa,KAChB,YAAY,cAAA,EACZ,KAAK,EAAE,mBAAY,OAAO,cAAI,aAAa,CAAC,UAAU,CAAE,EACxD,WAAW,EAAE,aAAa,CAAC,cAAc,CAAC,aAAa,CAAC,EACxD,MAAM,EAAE,aAAa,CAAC,MAAM,EAC5B,oBAAoB,sBAAA,IACpB;IACJ,CAAC,EAAE,CAAC,oBAAoB,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,CAAC;IAEnD,IAAM,eAAe,GAAG,OAAO,CAAwB;QACrD,6BACK,WAAW,CAAC,aAAa,CAAC,KAC7B,kBAAkB,EAAE,aAAa,CAAC,kBAAkB,IACpD;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,EAAC,YAAY,cAAA,EAAE,eAAe,iBAAA,EAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,aAA8D;IAExD,IAAA,KAAkC,mBAAmB,CACzD,aAAa,EACb,KAAK,CACN,EAHM,YAAY,kBAAA,EAAE,eAAe,qBAGnC,CAAC;IACF,OAAO,CACL,oBAAC,eAAe,eACV,YAAY,EACZ,eAAe,IACnB,2BAA2B,UAC3B,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { WithOnLoad, WithStyles } from './CoinflowWebView';
3
+ import { CoinflowHistoryProps } from './common';
4
+ export declare function CoinflowPurchaseHistory(props: CoinflowHistoryProps & WithStyles & WithOnLoad): React.JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { __assign } from "tslib";
2
+ import React, { useMemo } from 'react';
3
+ import { CoinflowWebView, useRandomHandleHeightChangeId, } from './CoinflowWebView';
4
+ import { getWalletPubkey, getHandlers, } from './common';
5
+ export function CoinflowPurchaseHistory(props) {
6
+ var handleHeightChangeId = useRandomHandleHeightChangeId();
7
+ var webviewProps = useMemo(function () {
8
+ var walletPubkey = getWalletPubkey(props);
9
+ return __assign(__assign({}, props), { walletPubkey: walletPubkey, route: "/history/purchase/".concat(props.merchantId), onLoad: props.onLoad, handleHeightChangeId: handleHeightChangeId });
10
+ }, [props, handleHeightChangeId]);
11
+ var messageHandlers = useMemo(function () {
12
+ return __assign(__assign({}, getHandlers(props)), { handleHeightChange: props.handleHeightChange });
13
+ }, [props]);
14
+ return React.createElement(CoinflowWebView, __assign({}, webviewProps, messageHandlers));
15
+ }
16
+ //# sourceMappingURL=CoinflowPurchaseHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoinflowPurchaseHistory.js","sourceRoot":"","sources":["../src/CoinflowPurchaseHistory.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EACL,eAAe,EAEf,6BAA6B,GAG9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,WAAW,GAGZ,MAAM,UAAU,CAAC;AAElB,MAAM,UAAU,uBAAuB,CACrC,KAAqD;IAErD,IAAM,oBAAoB,GAAG,6BAA6B,EAAE,CAAC;IAC7D,IAAM,YAAY,GAAG,OAAO,CAAuB;QACjD,IAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,6BACK,KAAK,KACR,YAAY,cAAA,EACZ,KAAK,EAAE,4BAAqB,KAAK,CAAC,UAAU,CAAE,EAC9C,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,oBAAoB,sBAAA,IACpB;IACJ,CAAC,EAAE,CAAC,KAAK,EAAE,oBAAoB,CAAC,CAAC,CAAC;IAElC,IAAM,eAAe,GAAG,OAAO,CAAwB;QACrD,6BACK,WAAW,CAAC,KAAK,CAAC,KACrB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAC5C;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,oBAAC,eAAe,eAAK,YAAY,EAAM,eAAe,EAAI,CAAC;AACpE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import React from 'react';
2
+ import { StyleProp, ViewStyle } from 'react-native';
3
+ export declare function CoinflowSkeleton({ style, loaderBackground, }: {
4
+ style?: StyleProp<ViewStyle>;
5
+ loaderBackground?: string;
6
+ }): React.JSX.Element;
@@ -0,0 +1,96 @@
1
+ import React from 'react';
2
+ import { Animated, Easing, SafeAreaView, StyleSheet, View, } from 'react-native';
3
+ export function CoinflowSkeleton(_a) {
4
+ var style = _a.style, _b = _a.loaderBackground, loaderBackground = _b === void 0 ? '#ffffff' : _b;
5
+ var animatedValue = React.useRef(new Animated.Value(0)).current;
6
+ React.useEffect(function () {
7
+ var animation = Animated.loop(Animated.timing(animatedValue, {
8
+ toValue: 1,
9
+ duration: 1500,
10
+ easing: Easing.linear,
11
+ useNativeDriver: true,
12
+ }));
13
+ animation.start();
14
+ return function () { return animation.stop(); };
15
+ }, []);
16
+ var opacity = animatedValue.interpolate({
17
+ inputRange: [0, 0.5, 1],
18
+ outputRange: [0.05, 0.1, 0.05],
19
+ });
20
+ var invertedColor = invertHexColor(loaderBackground);
21
+ var skeletonStyle = {
22
+ backgroundColor: invertedColor,
23
+ opacity: opacity,
24
+ width: '100%',
25
+ };
26
+ return (React.createElement(SafeAreaView, { style: [{ flex: 1, backgroundColor: loaderBackground }, style] },
27
+ React.createElement(View, { style: styles.container },
28
+ React.createElement(View, { style: styles.row },
29
+ React.createElement(Animated.View, { style: [styles.skeleton, skeletonStyle, { flex: 1 }] }),
30
+ React.createElement(Animated.View, { style: [styles.skeleton, skeletonStyle, { flex: 1 }] })),
31
+ React.createElement(Animated.View, { style: [styles.skeleton, skeletonStyle, { height: 80 }] }),
32
+ React.createElement(View, { style: [styles.row, { justifyContent: 'space-between' }] },
33
+ React.createElement(Animated.View, { style: [
34
+ styles.skeleton,
35
+ skeletonStyle,
36
+ { width: 100, height: 25, borderRadius: 8 },
37
+ ] }),
38
+ React.createElement(Animated.View, { style: [
39
+ styles.skeleton,
40
+ skeletonStyle,
41
+ { width: 100, height: 25, borderRadius: 8 },
42
+ ] })),
43
+ React.createElement(View, { style: [styles.row, { justifyContent: 'space-between' }] },
44
+ React.createElement(Animated.View, { style: [
45
+ styles.skeleton,
46
+ skeletonStyle,
47
+ { width: 100, height: 25, borderRadius: 8 },
48
+ ] }),
49
+ React.createElement(Animated.View, { style: [
50
+ styles.skeleton,
51
+ skeletonStyle,
52
+ { width: 100, height: 25, borderRadius: 8 },
53
+ ] })),
54
+ React.createElement(View, { style: [styles.row, { justifyContent: 'space-between' }] },
55
+ React.createElement(Animated.View, { style: [
56
+ styles.skeleton,
57
+ skeletonStyle,
58
+ { width: 125, height: 30, borderRadius: 8 },
59
+ ] }),
60
+ React.createElement(Animated.View, { style: [
61
+ styles.skeleton,
62
+ skeletonStyle,
63
+ { width: 125, height: 30, borderRadius: 8 },
64
+ ] })),
65
+ React.createElement(Animated.View, { style: [styles.skeleton, skeletonStyle, { height: 80 }] }),
66
+ React.createElement(Animated.View, { style: [
67
+ styles.skeleton,
68
+ skeletonStyle,
69
+ { height: 10, marginHorizontal: 'auto', width: '80%' },
70
+ ] }))));
71
+ }
72
+ var styles = StyleSheet.create({
73
+ container: {
74
+ padding: 16,
75
+ gap: 20,
76
+ flexWrap: 'wrap',
77
+ flexDirection: 'row',
78
+ },
79
+ row: {
80
+ flexDirection: 'row',
81
+ gap: 8,
82
+ width: '100%',
83
+ },
84
+ skeleton: {
85
+ height: 40,
86
+ backgroundColor: '#E1E9EE',
87
+ borderRadius: 12,
88
+ },
89
+ });
90
+ function invertHexColor(hex) {
91
+ var _a;
92
+ hex = hex.replace(/^#/, '');
93
+ var rgb = ((_a = hex.match(/.{2}/g)) === null || _a === void 0 ? void 0 : _a.map(function (val) { return 255 - parseInt(val, 16); })) || [];
94
+ return "#".concat(rgb.map(function (val) { return val.toString(16).padStart(2, '0'); }).join(''));
95
+ }
96
+ //# sourceMappingURL=CoinflowSkeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoinflowSkeleton.js","sourceRoot":"","sources":["../src/CoinflowSkeleton.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+ import { StyleProp, ViewStyle } from 'react-native';
3
+ import { ShouldStartLoadRequest } from 'react-native-webview/lib/WebViewTypes';
4
+ import { CoinflowIFrameProps, IFrameMessageHandlers } from './common';
5
+ export type WithStyles = {
6
+ style?: StyleProp<ViewStyle>;
7
+ };
8
+ export type WithOnLoad = {
9
+ onLoad?: () => void;
10
+ /**
11
+ * Override the onShouldStartLoadWithRequest with your own function
12
+ *
13
+ * Function that allows custom handling of any web view requests. Return true from the function to continue loading the request and false to stop loading.
14
+ */
15
+ onShouldStartLoadWithRequest?: (request: ShouldStartLoadRequest) => boolean;
16
+ };
17
+ export type CoinflowWebViewProps = Omit<CoinflowIFrameProps, 'IFrameRef'> & WithOnLoad & {
18
+ /**
19
+ * If set, the webview will only render the content after the webview sends a "loaded" message
20
+ */
21
+ waitForWebviewLoadedMessage?: boolean;
22
+ };
23
+ export declare function useRandomHandleHeightChangeId(): string;
24
+ export declare function CoinflowWebView(props: CoinflowWebViewProps & WithStyles & IFrameMessageHandlers): React.JSX.Element;
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { WithOnLoad, WithStyles } from './CoinflowWebView';
3
+ import { CoinflowWithdrawProps } from './common';
4
+ export declare function CoinflowWithdraw(withdrawProps: CoinflowWithdrawProps & WithStyles & WithOnLoad): React.JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { __assign } from "tslib";
2
+ import React, { useMemo } from 'react';
3
+ import { CoinflowWebView, useRandomHandleHeightChangeId, } from './CoinflowWebView';
4
+ import { getWalletPubkey, getHandlers, } from './common';
5
+ export function CoinflowWithdraw(withdrawProps) {
6
+ var handleHeightChangeId = useRandomHandleHeightChangeId();
7
+ var webviewProps = useMemo(function () {
8
+ var walletPubkey = getWalletPubkey(withdrawProps);
9
+ return __assign(__assign({}, withdrawProps), { walletPubkey: walletPubkey, route: "/withdraw/".concat(withdrawProps.merchantId), onLoad: withdrawProps.onLoad, handleHeightChangeId: handleHeightChangeId });
10
+ }, [withdrawProps, handleHeightChangeId, withdrawProps]);
11
+ var messageHandlers = useMemo(function () {
12
+ return __assign(__assign({}, getHandlers(withdrawProps)), { handleHeightChange: withdrawProps.handleHeightChange });
13
+ }, [withdrawProps]);
14
+ return React.createElement(CoinflowWebView, __assign({}, webviewProps, messageHandlers));
15
+ }
16
+ //# sourceMappingURL=CoinflowWithdraw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoinflowWithdraw.js","sourceRoot":"","sources":["../src/CoinflowWithdraw.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EACL,eAAe,EAEf,6BAA6B,GAG9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,WAAW,GAGZ,MAAM,UAAU,CAAC;AAElB,MAAM,UAAU,gBAAgB,CAC9B,aAA8D;IAE9D,IAAM,oBAAoB,GAAG,6BAA6B,EAAE,CAAC;IAC7D,IAAM,YAAY,GAAG,OAAO,CAAuB;QACjD,IAAM,YAAY,GAAG,eAAe,CAAC,aAAa,CAAC,CAAC;QACpD,6BACK,aAAa,KAChB,YAAY,cAAA,EACZ,KAAK,EAAE,oBAAa,aAAa,CAAC,UAAU,CAAE,EAC9C,MAAM,EAAE,aAAa,CAAC,MAAM,EAC5B,oBAAoB,sBAAA,IACpB;IACJ,CAAC,EAAE,CAAC,aAAa,EAAE,oBAAoB,EAAE,aAAa,CAAC,CAAC,CAAC;IAEzD,IAAM,eAAe,GAAG,OAAO,CAAwB;QACrD,6BACK,WAAW,CAAC,aAAa,CAAC,KAC7B,kBAAkB,EAAE,aAAa,CAAC,kBAAkB,IACpD;IACJ,CAAC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAEpB,OAAO,oBAAC,eAAe,eAAK,YAAY,EAAM,eAAe,EAAI,CAAC;AACpE,CAAC"}
@@ -0,0 +1,4 @@
1
+ import React from 'react';
2
+ import { WithOnLoad, WithStyles } from './CoinflowWebView';
3
+ import { CoinflowHistoryProps } from './common';
4
+ export declare function CoinflowWithdrawHistory(props: CoinflowHistoryProps & WithStyles & WithOnLoad): React.JSX.Element;
@@ -0,0 +1,16 @@
1
+ import { __assign } from "tslib";
2
+ import React, { useMemo } from 'react';
3
+ import { CoinflowWebView, useRandomHandleHeightChangeId, } from './CoinflowWebView';
4
+ import { getWalletPubkey, getHandlers, } from './common';
5
+ export function CoinflowWithdrawHistory(props) {
6
+ var handleHeightChangeId = useRandomHandleHeightChangeId();
7
+ var webviewProps = useMemo(function () {
8
+ var walletPubkey = getWalletPubkey(props);
9
+ return __assign(__assign({}, props), { walletPubkey: walletPubkey, route: "/history/withdraw/".concat(props.merchantId), onLoad: props.onLoad, handleHeightChangeId: handleHeightChangeId });
10
+ }, [props]);
11
+ var messageHandlers = useMemo(function () {
12
+ return __assign(__assign({}, getHandlers(props)), { handleHeightChange: props.handleHeightChange });
13
+ }, [props]);
14
+ return React.createElement(CoinflowWebView, __assign({}, webviewProps, messageHandlers));
15
+ }
16
+ //# sourceMappingURL=CoinflowWithdrawHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoinflowWithdrawHistory.js","sourceRoot":"","sources":["../src/CoinflowWithdrawHistory.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AACrC,OAAO,EACL,eAAe,EAEf,6BAA6B,GAG9B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,eAAe,EACf,WAAW,GAGZ,MAAM,UAAU,CAAC;AAElB,MAAM,UAAU,uBAAuB,CACrC,KAAqD;IAErD,IAAM,oBAAoB,GAAG,6BAA6B,EAAE,CAAC;IAC7D,IAAM,YAAY,GAAG,OAAO,CAAuB;QACjD,IAAM,YAAY,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;QAC5C,6BACK,KAAK,KACR,YAAY,cAAA,EACZ,KAAK,EAAE,4BAAqB,KAAK,CAAC,UAAU,CAAE,EAC9C,MAAM,EAAE,KAAK,CAAC,MAAM,EACpB,oBAAoB,sBAAA,IACpB;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,IAAM,eAAe,GAAG,OAAO,CAAwB;QACrD,6BACK,WAAW,CAAC,KAAK,CAAC,KACrB,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,IAC5C;IACJ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,oBAAC,eAAe,eAAK,YAAY,EAAM,eAAe,EAAI,CAAC;AACpE,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { CoinflowPurchaseProps, OnAuthDeclinedMethod, OnSuccessMethod } from './CoinflowTypes';
2
+ export type WalletCall = {
3
+ method: IFrameMessageMethods;
4
+ data: string;
5
+ } | SuccessWalletCall;
6
+ type SuccessWalletCall = {
7
+ method: IFrameMessageMethods.Success;
8
+ data: string;
9
+ info: {
10
+ paymentId: string;
11
+ hash?: string;
12
+ };
13
+ };
14
+ export interface IFrameMessageHandlers {
15
+ handleSendTransaction: (transaction: string) => Promise<string>;
16
+ handleSignMessage?: (message: string) => Promise<string>;
17
+ handleSignTransaction?: (transaction: string) => Promise<string>;
18
+ handleHeightChange?: (height: string) => void;
19
+ onSuccess: OnSuccessMethod | undefined;
20
+ onAuthDeclined: OnAuthDeclinedMethod | undefined;
21
+ }
22
+ export declare enum IFrameMessageMethods {
23
+ SignMessage = "signMessage",
24
+ SignTransaction = "signTransaction",
25
+ SendTransaction = "sendTransaction",
26
+ HeightChange = "heightChange",
27
+ Success = "success",
28
+ AuthDeclined = "authDeclined",
29
+ Loaded = "loaded",
30
+ AccountLinked = "accountLinked"
31
+ }
32
+ export declare function getWalletPubkey(input: Pick<CoinflowPurchaseProps, 'wallet' | 'blockchain'>): string | null | undefined;
33
+ export declare function handleIFrameMessage(rawMessage: string, handlers: IFrameMessageHandlers, handleHeightChangeId: string | number): Promise<string> | void;
34
+ export declare function getHandlers(props: Pick<CoinflowPurchaseProps, 'wallet' | 'blockchain' | 'onSuccess' | 'onAuthDeclined'>): Omit<IFrameMessageHandlers, 'handleHeightChange'>;
35
+ export {};
@@ -0,0 +1,258 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ import { CoinflowUtils } from './CoinflowUtils';
3
+ import { web3, base58 } from './SolanaPeerDeps';
4
+ export var IFrameMessageMethods;
5
+ (function (IFrameMessageMethods) {
6
+ IFrameMessageMethods["SignMessage"] = "signMessage";
7
+ IFrameMessageMethods["SignTransaction"] = "signTransaction";
8
+ IFrameMessageMethods["SendTransaction"] = "sendTransaction";
9
+ IFrameMessageMethods["HeightChange"] = "heightChange";
10
+ IFrameMessageMethods["Success"] = "success";
11
+ IFrameMessageMethods["AuthDeclined"] = "authDeclined";
12
+ IFrameMessageMethods["Loaded"] = "loaded";
13
+ IFrameMessageMethods["AccountLinked"] = "accountLinked";
14
+ })(IFrameMessageMethods || (IFrameMessageMethods = {}));
15
+ export function getWalletPubkey(input) {
16
+ var wallet;
17
+ if ('signer' in input &&
18
+ typeof input.signer === 'object' &&
19
+ input.signer &&
20
+ 'wallet' in input.signer)
21
+ wallet = input.signer.wallet;
22
+ else if ('wallet' in input && input.wallet)
23
+ wallet = input.wallet;
24
+ if (!wallet)
25
+ return;
26
+ if (typeof wallet === 'string')
27
+ return wallet;
28
+ if (typeof wallet === 'object') {
29
+ if ('publicKey' in wallet)
30
+ return wallet.publicKey ? wallet.publicKey.toString() : undefined;
31
+ if ('address' in wallet)
32
+ return wallet.address ? wallet.address : undefined;
33
+ }
34
+ return null;
35
+ }
36
+ export function handleIFrameMessage(rawMessage, handlers, handleHeightChangeId) {
37
+ var walletCall;
38
+ try {
39
+ walletCall = JSON.parse(rawMessage);
40
+ if (!('method' in walletCall) || !('data' in walletCall))
41
+ return;
42
+ }
43
+ catch (e) {
44
+ console.error('handleIFrameMessage JSON parse', e);
45
+ return;
46
+ }
47
+ var data = walletCall.data, method = walletCall.method;
48
+ switch (method) {
49
+ case IFrameMessageMethods.SignMessage:
50
+ if (!handlers.handleSignMessage)
51
+ return;
52
+ return handlers.handleSignMessage(data);
53
+ case IFrameMessageMethods.SignTransaction:
54
+ if (!handlers.handleSignTransaction)
55
+ return;
56
+ return handlers.handleSignTransaction(data);
57
+ case IFrameMessageMethods.SendTransaction:
58
+ return handlers.handleSendTransaction(data);
59
+ case IFrameMessageMethods.HeightChange + ':' + handleHeightChangeId:
60
+ if (!handlers.handleHeightChange)
61
+ return;
62
+ return handlers.handleHeightChange(data);
63
+ case IFrameMessageMethods.Success:
64
+ if (!handlers.onSuccess)
65
+ return;
66
+ handlers.onSuccess(walletCall.info);
67
+ return;
68
+ case IFrameMessageMethods.AuthDeclined:
69
+ if (!handlers.onAuthDeclined)
70
+ return;
71
+ handlers.onAuthDeclined(walletCall.info);
72
+ return;
73
+ case IFrameMessageMethods.Loaded:
74
+ return;
75
+ case IFrameMessageMethods.AccountLinked:
76
+ return;
77
+ }
78
+ console.warn("Didn't expect to get here, handleIFrameMessage method:".concat(method, " is not one of ").concat(Object.values(IFrameMessageMethods)));
79
+ }
80
+ export function getHandlers(props) {
81
+ var chain;
82
+ var wallet;
83
+ if ('signer' in props &&
84
+ typeof props.signer === 'object' &&
85
+ props.signer &&
86
+ 'blockchain' in props.signer &&
87
+ 'wallet' in props.signer) {
88
+ chain = props.signer.blockchain;
89
+ wallet = props.signer.wallet;
90
+ }
91
+ else if ('blockchain' in props && props.blockchain) {
92
+ chain = props.blockchain;
93
+ wallet = props.wallet;
94
+ }
95
+ if (!chain) {
96
+ return {
97
+ handleSendTransaction: function () {
98
+ throw new Error('handleSendTransaction Not Implemented');
99
+ },
100
+ handleSignMessage: function () {
101
+ throw new Error('handleSendTransaction Not Implemented');
102
+ },
103
+ handleSignTransaction: function () {
104
+ throw new Error('handleSendTransaction Not Implemented');
105
+ },
106
+ onSuccess: props.onSuccess,
107
+ onAuthDeclined: props.onAuthDeclined,
108
+ };
109
+ }
110
+ return CoinflowUtils.byBlockchain(chain, {
111
+ solana: function () {
112
+ return getSolanaWalletHandlers({
113
+ wallet: wallet,
114
+ onSuccess: props.onSuccess,
115
+ onAuthDeclined: props.onAuthDeclined,
116
+ });
117
+ },
118
+ eth: function () {
119
+ return getEvmWalletHandlers({
120
+ wallet: wallet,
121
+ onSuccess: props.onSuccess,
122
+ onAuthDeclined: props.onAuthDeclined,
123
+ });
124
+ },
125
+ polygon: function () {
126
+ return getEvmWalletHandlers({
127
+ wallet: wallet,
128
+ onSuccess: props.onSuccess,
129
+ onAuthDeclined: props.onAuthDeclined,
130
+ });
131
+ },
132
+ base: function () {
133
+ return getEvmWalletHandlers({
134
+ wallet: wallet,
135
+ onSuccess: props.onSuccess,
136
+ onAuthDeclined: props.onAuthDeclined,
137
+ });
138
+ },
139
+ arbitrum: function () {
140
+ return getEvmWalletHandlers({
141
+ wallet: wallet,
142
+ onSuccess: props.onSuccess,
143
+ onAuthDeclined: props.onAuthDeclined,
144
+ });
145
+ },
146
+ user: function () { return getSessionKeyHandlers(props); },
147
+ })();
148
+ }
149
+ function getSolanaWalletHandlers(_a) {
150
+ var _this = this;
151
+ var wallet = _a.wallet, onSuccess = _a.onSuccess, onAuthDeclined = _a.onAuthDeclined;
152
+ return {
153
+ handleSendTransaction: function (transaction) { return __awaiter(_this, void 0, void 0, function () {
154
+ var tx;
155
+ return __generator(this, function (_a) {
156
+ switch (_a.label) {
157
+ case 0:
158
+ tx = getSolanaTransaction(transaction);
159
+ return [4 /*yield*/, wallet.sendTransaction(tx)];
160
+ case 1: return [2 /*return*/, _a.sent()];
161
+ }
162
+ });
163
+ }); },
164
+ handleSignMessage: function (message) { return __awaiter(_this, void 0, void 0, function () {
165
+ var signMessage, signedMessage;
166
+ return __generator(this, function (_a) {
167
+ switch (_a.label) {
168
+ case 0:
169
+ signMessage = wallet.signMessage;
170
+ if (!signMessage) {
171
+ throw new Error('signMessage is not supported by this wallet');
172
+ }
173
+ return [4 /*yield*/, signMessage(new TextEncoder().encode(message))];
174
+ case 1:
175
+ signedMessage = _a.sent();
176
+ if (!base58)
177
+ throw new Error('bs58 dependency is required');
178
+ return [2 /*return*/, base58.encode(signedMessage)];
179
+ }
180
+ });
181
+ }); },
182
+ handleSignTransaction: function (transaction) { return __awaiter(_this, void 0, void 0, function () {
183
+ var signTransaction, tx, signedTransaction;
184
+ return __generator(this, function (_a) {
185
+ switch (_a.label) {
186
+ case 0:
187
+ signTransaction = wallet.signTransaction;
188
+ if (!signTransaction) {
189
+ throw new Error('signTransaction is not supported by this wallet');
190
+ }
191
+ tx = getSolanaTransaction(transaction);
192
+ return [4 /*yield*/, signTransaction(tx)];
193
+ case 1:
194
+ signedTransaction = _a.sent();
195
+ if (!base58)
196
+ throw new Error('bs58 dependency is required');
197
+ return [2 /*return*/, base58.encode(signedTransaction.serialize({
198
+ requireAllSignatures: false,
199
+ verifySignatures: false,
200
+ }))];
201
+ }
202
+ });
203
+ }); },
204
+ onSuccess: onSuccess,
205
+ onAuthDeclined: onAuthDeclined,
206
+ };
207
+ }
208
+ function getSolanaTransaction(data) {
209
+ if (!web3)
210
+ throw new Error('@solana/web3.js is not defined. Please install @solana/web3.js into your project');
211
+ if (!base58)
212
+ throw new Error('bs58 is not defined. Please install bs58 into your project');
213
+ var parsedUInt8Array = base58.decode(data);
214
+ var vtx = web3.VersionedTransaction.deserialize(parsedUInt8Array);
215
+ if (vtx.version === 'legacy')
216
+ return web3.Transaction.from(parsedUInt8Array);
217
+ return vtx;
218
+ }
219
+ function getEvmWalletHandlers(_a) {
220
+ var _this = this;
221
+ var wallet = _a.wallet, onSuccess = _a.onSuccess, onAuthDeclined = _a.onAuthDeclined;
222
+ return {
223
+ handleSendTransaction: function (transaction) { return __awaiter(_this, void 0, void 0, function () {
224
+ var tx, hash;
225
+ return __generator(this, function (_a) {
226
+ switch (_a.label) {
227
+ case 0:
228
+ tx = JSON.parse(Buffer.from(transaction, 'base64').toString());
229
+ return [4 /*yield*/, wallet.sendTransaction(tx)];
230
+ case 1:
231
+ hash = (_a.sent()).hash;
232
+ return [2 /*return*/, hash];
233
+ }
234
+ });
235
+ }); },
236
+ handleSignMessage: function (message) { return __awaiter(_this, void 0, void 0, function () {
237
+ return __generator(this, function (_a) {
238
+ return [2 /*return*/, wallet.signMessage(message)];
239
+ });
240
+ }); },
241
+ onSuccess: onSuccess,
242
+ onAuthDeclined: onAuthDeclined,
243
+ };
244
+ }
245
+ function getSessionKeyHandlers(_a) {
246
+ var _this = this;
247
+ var onSuccess = _a.onSuccess, onAuthDeclined = _a.onAuthDeclined;
248
+ return {
249
+ handleSendTransaction: function () { return __awaiter(_this, void 0, void 0, function () {
250
+ return __generator(this, function (_a) {
251
+ return [2 /*return*/, Promise.resolve('')];
252
+ });
253
+ }); },
254
+ onSuccess: onSuccess,
255
+ onAuthDeclined: onAuthDeclined,
256
+ };
257
+ }
258
+ //# sourceMappingURL=CoinflowLibMessageHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoinflowLibMessageHandlers.js","sourceRoot":"","sources":["../../src/common/CoinflowLibMessageHandlers.ts"],"names":[],"mappings":"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"}