@coinflowlabs/react-native 0.2.0 → 0.2.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/CoinflowPurchase.d.ts +6 -9
- package/build/CoinflowPurchase.js +2 -10
- package/build/CoinflowPurchase.js.map +1 -1
- package/build/CoinflowPurchaseHistory.d.ts +1 -1
- package/build/CoinflowPurchaseHistory.js +1 -6
- package/build/CoinflowPurchaseHistory.js.map +1 -1
- package/build/CoinflowWithdraw.d.ts +5 -7
- package/build/CoinflowWithdraw.js +2 -8
- package/build/CoinflowWithdraw.js.map +1 -1
- package/build/CoinflowWithdrawHistory.d.ts +9 -4
- package/build/CoinflowWithdrawHistory.js +1 -6
- package/build/CoinflowWithdrawHistory.js.map +1 -1
- package/build/ReactNativeCoinflowUtils.d.ts +0 -2
- package/build/ReactNativeCoinflowUtils.js.map +1 -1
- package/package.json +2 -3
- package/build/IFrameWalletConnector.d.ts +0 -21
- package/build/IFrameWalletConnector.js +0 -133
- package/build/IFrameWalletConnector.js.map +0 -1
- package/build/useIframeWallet.d.ts +0 -19
- package/build/useIframeWallet.js +0 -20
- package/build/useIframeWallet.js.map +0 -1
|
@@ -1,18 +1,15 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { WithStyles } from './CoinflowWebView';
|
|
3
|
-
import {
|
|
4
|
-
import { CoinflowEnvs
|
|
5
|
-
import { OnSuccessMethod } from './IFrameWalletConnector';
|
|
2
|
+
import { CoinflowWebViewProps, WithStyles } from './CoinflowWebView';
|
|
3
|
+
import { Signer, Transaction } from '@solana/web3.js';
|
|
4
|
+
import { CoinflowEnvs } from './ReactNativeCoinflowUtils';
|
|
6
5
|
type CoinflowPurchaseProps = {
|
|
7
|
-
wallet:
|
|
6
|
+
wallet: any;
|
|
8
7
|
merchantId: string;
|
|
9
|
-
connection: Connection;
|
|
10
8
|
amount?: number;
|
|
11
9
|
env?: CoinflowEnvs;
|
|
12
|
-
onSuccess?: OnSuccessMethod;
|
|
13
10
|
transaction?: Transaction;
|
|
14
11
|
partialSigners?: Signer[];
|
|
15
12
|
debugTx?: boolean;
|
|
16
|
-
};
|
|
17
|
-
export declare function CoinflowPurchase({ wallet, merchantId, env,
|
|
13
|
+
} & CoinflowWebViewProps;
|
|
14
|
+
export declare function CoinflowPurchase({ wallet, merchantId, env, transaction, amount, style, WebViewRef, handleIframeMessages, }: CoinflowPurchaseProps & WithStyles): JSX.Element | null;
|
|
18
15
|
export {};
|
|
@@ -1,14 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { CoinflowWebView } from './CoinflowWebView';
|
|
3
|
-
|
|
4
|
-
export function CoinflowPurchase({ wallet, merchantId, env, connection, onSuccess, transaction, amount, partialSigners, debugTx = false, style, }) {
|
|
5
|
-
const { WebViewRef, handleIframeMessages } = useIframeWallet({
|
|
6
|
-
wallet,
|
|
7
|
-
connection,
|
|
8
|
-
onSuccess,
|
|
9
|
-
partialSigners,
|
|
10
|
-
debugTx,
|
|
11
|
-
});
|
|
2
|
+
import { CoinflowWebView, } from './CoinflowWebView';
|
|
3
|
+
export function CoinflowPurchase({ wallet, merchantId, env, transaction, amount, style, WebViewRef, handleIframeMessages, }) {
|
|
12
4
|
if (!wallet.publicKey || !wallet.connected)
|
|
13
5
|
return null;
|
|
14
6
|
return (React.createElement(CoinflowWebView, { publicKey: wallet.publicKey.toString(), WebViewRef: WebViewRef, route: `/purchase/${merchantId}`, env: env, transaction: transaction, amount: amount, handleIframeMessages: handleIframeMessages, style: style }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinflowPurchase.js","sourceRoot":"","sources":["../src/CoinflowPurchase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"CoinflowPurchase.js","sourceRoot":"","sources":["../src/CoinflowPurchase.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAc3B,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,EACN,UAAU,EACV,GAAG,EACH,WAAW,EACX,MAAM,EACN,KAAK,EACL,UAAU,EACV,oBAAoB,GACe;IACnC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAExD,OAAO,CACL,oBAAC,eAAe,IACd,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EACtC,UAAU,EAAE,UAAU,EACtB,KAAK,EAAE,aAAa,UAAU,EAAE,EAChC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,EACd,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import { WithStyles } from './CoinflowWebView';
|
|
3
3
|
import { CoinflowHistoryProps } from './CoinflowWithdrawHistory';
|
|
4
|
-
export declare function CoinflowPurchaseHistory({ wallet, merchantId,
|
|
4
|
+
export declare function CoinflowPurchaseHistory({ wallet, merchantId, env, style, WebViewRef, handleIframeMessages, }: CoinflowHistoryProps & WithStyles): JSX.Element | null;
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { useIframeWallet } from './useIframeWallet';
|
|
3
2
|
import { CoinflowWebView } from './CoinflowWebView';
|
|
4
|
-
export function CoinflowPurchaseHistory({ wallet, merchantId,
|
|
5
|
-
const { WebViewRef, handleIframeMessages } = useIframeWallet({
|
|
6
|
-
wallet,
|
|
7
|
-
connection,
|
|
8
|
-
});
|
|
3
|
+
export function CoinflowPurchaseHistory({ wallet, merchantId, env, style, WebViewRef, handleIframeMessages, }) {
|
|
9
4
|
if (!wallet.publicKey || !wallet.connected)
|
|
10
5
|
return null;
|
|
11
6
|
return (React.createElement(CoinflowWebView, { publicKey: wallet.publicKey.toString(), WebViewRef: WebViewRef, handleIframeMessages: handleIframeMessages, style: style, route: `/history/purchase/${merchantId}`, env: env }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinflowPurchaseHistory.js","sourceRoot":"","sources":["../src/CoinflowPurchaseHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"CoinflowPurchaseHistory.js","sourceRoot":"","sources":["../src/CoinflowPurchaseHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAa,MAAM,mBAAmB,CAAC;AAG9D,MAAM,UAAU,uBAAuB,CAAC,EACtC,MAAM,EACN,UAAU,EACV,GAAG,EACH,KAAK,EACL,UAAU,EACV,oBAAoB,GACc;IAClC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAExD,OAAO,CACL,oBAAC,eAAe,IACd,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EACtC,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,qBAAqB,UAAU,EAAE,EACxC,GAAG,EAAE,GAAG,GACR,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,14 +1,12 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { WithStyles } from './CoinflowWebView';
|
|
2
|
+
import { CoinflowWebViewProps, WithStyles } from './CoinflowWebView';
|
|
3
3
|
import { Connection } from '@solana/web3.js';
|
|
4
|
-
import { CoinflowEnvs
|
|
5
|
-
import { OnSuccessMethod } from './IFrameWalletConnector';
|
|
4
|
+
import { CoinflowEnvs } from './ReactNativeCoinflowUtils';
|
|
6
5
|
type CoinflowWithdrawProps = {
|
|
7
|
-
wallet:
|
|
6
|
+
wallet: any;
|
|
8
7
|
merchantId: string;
|
|
9
8
|
connection: Connection;
|
|
10
9
|
env?: CoinflowEnvs;
|
|
11
|
-
|
|
12
|
-
};
|
|
13
|
-
export declare function CoinflowWithdraw({ wallet, merchantId, env, connection, onSuccess, style, }: CoinflowWithdrawProps & WithStyles): JSX.Element | null;
|
|
10
|
+
} & CoinflowWebViewProps;
|
|
11
|
+
export declare function CoinflowWithdraw({ wallet, merchantId, env, style, WebViewRef, handleIframeMessages, }: CoinflowWithdrawProps & WithStyles): JSX.Element | null;
|
|
14
12
|
export {};
|
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
import { CoinflowWebView } from './CoinflowWebView';
|
|
1
|
+
import { CoinflowWebView, } from './CoinflowWebView';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
|
|
4
|
-
export function CoinflowWithdraw({ wallet, merchantId, env, connection, onSuccess, style, }) {
|
|
5
|
-
const { WebViewRef, handleIframeMessages } = useIframeWallet({
|
|
6
|
-
wallet,
|
|
7
|
-
connection,
|
|
8
|
-
onSuccess,
|
|
9
|
-
});
|
|
3
|
+
export function CoinflowWithdraw({ wallet, merchantId, env, style, WebViewRef, handleIframeMessages, }) {
|
|
10
4
|
if (!wallet.publicKey || !wallet.connected)
|
|
11
5
|
return null;
|
|
12
6
|
return (React.createElement(CoinflowWebView, { publicKey: wallet.publicKey.toString(), WebViewRef: WebViewRef, handleIframeMessages: handleIframeMessages, route: `/withdraw/${merchantId}`, env: env, style: style }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinflowWithdraw.js","sourceRoot":"","sources":["../src/CoinflowWithdraw.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"CoinflowWithdraw.js","sourceRoot":"","sources":["../src/CoinflowWithdraw.tsx"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,GAGhB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,MAAM,OAAO,CAAC;AAW1B,MAAM,UAAU,gBAAgB,CAAC,EAC/B,MAAM,EACN,UAAU,EACV,GAAG,EACH,KAAK,EACL,UAAU,EACV,oBAAoB,GACe;IACnC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAExD,OAAO,CACL,oBAAC,eAAe,IACd,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EACtC,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,aAAa,UAAU,EAAE,EAChC,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,GACZ,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
import { WithStyles } from './CoinflowWebView';
|
|
3
|
-
import { CoinflowEnvs
|
|
3
|
+
import { CoinflowEnvs } from './ReactNativeCoinflowUtils';
|
|
4
4
|
import { Connection } from '@solana/web3.js';
|
|
5
|
+
import { WebView } from 'react-native-webview';
|
|
5
6
|
export type CoinflowHistoryProps = {
|
|
6
|
-
wallet:
|
|
7
|
+
wallet: any;
|
|
7
8
|
merchantId: string;
|
|
8
9
|
connection: Connection;
|
|
9
10
|
env?: CoinflowEnvs;
|
|
11
|
+
WebViewRef: React.RefObject<WebView>;
|
|
12
|
+
handleIframeMessages: ({ data }: {
|
|
13
|
+
data: string;
|
|
14
|
+
}) => Promise<void>;
|
|
10
15
|
};
|
|
11
|
-
export declare function CoinflowWithdrawHistory({ wallet, merchantId,
|
|
16
|
+
export declare function CoinflowWithdrawHistory({ wallet, merchantId, env, style, WebViewRef, handleIframeMessages, }: CoinflowHistoryProps & WithStyles): JSX.Element | null;
|
|
@@ -1,11 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { CoinflowWebView } from './CoinflowWebView';
|
|
3
|
-
|
|
4
|
-
export function CoinflowWithdrawHistory({ wallet, merchantId, connection, env, style, }) {
|
|
5
|
-
const { WebViewRef, handleIframeMessages } = useIframeWallet({
|
|
6
|
-
wallet,
|
|
7
|
-
connection,
|
|
8
|
-
});
|
|
3
|
+
export function CoinflowWithdrawHistory({ wallet, merchantId, env, style, WebViewRef, handleIframeMessages, }) {
|
|
9
4
|
if (!wallet.publicKey || !wallet.connected)
|
|
10
5
|
return null;
|
|
11
6
|
return (React.createElement(CoinflowWebView, { publicKey: wallet.publicKey.toString(), WebViewRef: WebViewRef, handleIframeMessages: handleIframeMessages, style: style, route: `/history/withdraw/${merchantId}`, env: env }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CoinflowWithdrawHistory.js","sourceRoot":"","sources":["../src/CoinflowWithdrawHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAa,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"CoinflowWithdrawHistory.js","sourceRoot":"","sources":["../src/CoinflowWithdrawHistory.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,eAAe,EAAa,MAAM,mBAAmB,CAAC;AAc9D,MAAM,UAAU,uBAAuB,CAAC,EACtC,MAAM,EACN,UAAU,EACV,GAAG,EACH,KAAK,EACL,UAAU,EACV,oBAAoB,GACc;IAClC,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAExD,OAAO,CACL,oBAAC,eAAe,IACd,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EACtC,UAAU,EAAE,UAAU,EACtB,oBAAoB,EAAE,oBAAoB,EAC1C,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,qBAAqB,UAAU,EAAE,EACxC,GAAG,EAAE,GAAG,GACR,CACH,CAAC;AACJ,CAAC"}
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
import { Transaction } from '@solana/web3.js';
|
|
2
|
-
import { WalletContextState } from '@solana/wallet-adapter-react';
|
|
3
2
|
export type CoinflowEnvs = 'prod' | 'staging' | 'sandbox' | 'local';
|
|
4
|
-
export type SubsetWalletContextState = Pick<WalletContextState, 'signTransaction' | 'signMessage' | 'connected' | 'publicKey' | 'sendTransaction'>;
|
|
5
3
|
export declare class ReactNativeCoinflowUtils {
|
|
6
4
|
env: CoinflowEnvs;
|
|
7
5
|
url: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNativeCoinflowUtils.js","sourceRoot":"","sources":["../src/ReactNativeCoinflowUtils.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"ReactNativeCoinflowUtils.js","sourceRoot":"","sources":["../src/ReactNativeCoinflowUtils.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,MAAM,CAAC;AAI1B,MAAM,OAAO,wBAAwB;IAInC,YAAY,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,eAAe,IAAI,CAAC,GAAG,gBAAgB,CAAC;IAC1D,CAAC;IAED,MAAM,CAAC,kBAAkB,CAAC,GAAkB;QAC1C,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;YAAE,OAAO,uBAAuB,CAAC;QAC3D,IAAI,GAAG,KAAK,OAAO;YAAE,OAAO,uBAAuB,CAAC;QAEpD,OAAO,WAAW,GAAG,gBAAgB,CAAC;IACxC,CAAC;IAED,MAAM,CAAC,cAAc,CAAC,EACpB,KAAK,EACL,GAAG,EACH,MAAM,EACN,SAAS,EACT,WAAW,GAOZ;QACC,MAAM,GAAG,GAAG,IAAI,GAAG,CACjB,KAAK,EACL,wBAAwB,CAAC,kBAAkB,CAAC,GAAG,CAAC,CACjD,CAAC;QACF,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,WAAW,EAAE;YACf,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAChC,WAAW,CAAC,SAAS,CAAC;gBACpB,oBAAoB,EAAE,KAAK;gBAC3B,gBAAgB,EAAE,KAAK;aACxB,CAAC,CACH,CAAC;YACF,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;SACtD;QACD,IAAI,MAAM,EAAE;YACV,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;SACtD;QACD,OAAO,GAAG,CAAC,QAAQ,EAAE,CAAC;IACxB,CAAC;CACF"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coinflowlabs/react-native",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.1",
|
|
4
4
|
"description": "React Native Component for Coinflow Withdraw",
|
|
5
5
|
"main": "build/index.js",
|
|
6
6
|
"types": "build/index.d.ts",
|
|
@@ -26,8 +26,7 @@
|
|
|
26
26
|
"react-native-webview": ">=11.16.0"
|
|
27
27
|
},
|
|
28
28
|
"dependencies": {
|
|
29
|
-
"bs58": "^5.0.0"
|
|
30
|
-
"@solana/web3.js": "^1.70.1"
|
|
29
|
+
"bs58": "^5.0.0"
|
|
31
30
|
},
|
|
32
31
|
"devDependencies": {
|
|
33
32
|
"@types/react": "^18.0.26",
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { Connection, Signer } from '@solana/web3.js';
|
|
2
|
-
import { SubsetWalletContextState } from './ReactNativeCoinflowUtils';
|
|
3
|
-
export type WalletCall = {
|
|
4
|
-
method: string;
|
|
5
|
-
data: string;
|
|
6
|
-
};
|
|
7
|
-
export type OnSuccessMethod = (params: string) => void | Promise<void>;
|
|
8
|
-
type Props = {
|
|
9
|
-
wallet: SubsetWalletContextState;
|
|
10
|
-
connection: Connection;
|
|
11
|
-
onSuccess?: OnSuccessMethod;
|
|
12
|
-
partialSigners?: Signer[];
|
|
13
|
-
debugTx?: boolean;
|
|
14
|
-
sendIFrameMessage: (message: string) => void;
|
|
15
|
-
};
|
|
16
|
-
export declare function useHandleIFrameMessages({ wallet, connection, onSuccess, partialSigners, debugTx, sendIFrameMessage, }: Props): {
|
|
17
|
-
handleIframeMessages: ({ data }: {
|
|
18
|
-
data: string;
|
|
19
|
-
}) => Promise<void>;
|
|
20
|
-
};
|
|
21
|
-
export {};
|
|
@@ -1,133 +0,0 @@
|
|
|
1
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
-
});
|
|
9
|
-
};
|
|
10
|
-
import { useCallback } from 'react';
|
|
11
|
-
import base58 from 'bs58';
|
|
12
|
-
import { Transaction } from '@solana/web3.js';
|
|
13
|
-
export function useHandleIFrameMessages({ wallet, connection, onSuccess, partialSigners, debugTx = false, sendIFrameMessage, }) {
|
|
14
|
-
const handleSignMessage = useCallback(({ data }) => __awaiter(this, void 0, void 0, function* () {
|
|
15
|
-
if (!wallet.signMessage)
|
|
16
|
-
return;
|
|
17
|
-
const signature = yield wallet.signMessage(base58.decode(data));
|
|
18
|
-
sendIFrameMessage(base58.encode(signature));
|
|
19
|
-
}), [sendIFrameMessage, wallet]);
|
|
20
|
-
const sendTransactionDebug = useCallback((tx) => __awaiter(this, void 0, void 0, function* () {
|
|
21
|
-
if (!wallet.signTransaction)
|
|
22
|
-
throw new Error('Wallet does not support sign transaction');
|
|
23
|
-
const signedTx = yield wallet.signTransaction(tx);
|
|
24
|
-
const serializedTx = signedTx.serialize();
|
|
25
|
-
const signature = yield connection.sendRawTransaction(serializedTx, {
|
|
26
|
-
skipPreflight: true,
|
|
27
|
-
});
|
|
28
|
-
sendIFrameMessage(signature);
|
|
29
|
-
}), [connection, sendIFrameMessage, wallet]);
|
|
30
|
-
const handleSendTransaction = useCallback(({ data }) => __awaiter(this, void 0, void 0, function* () {
|
|
31
|
-
const tx = Transaction.from(base58.decode(data));
|
|
32
|
-
// Partially sign the transaction with any partial signers if needed
|
|
33
|
-
const partiallySign = (signer) => {
|
|
34
|
-
const requiredSignatures = tx.signatures.map(sig => sig.publicKey.toString());
|
|
35
|
-
const shouldSign = requiredSignatures.includes(signer.publicKey.toString());
|
|
36
|
-
if (shouldSign)
|
|
37
|
-
tx.partialSign(signer);
|
|
38
|
-
};
|
|
39
|
-
if (partialSigners) {
|
|
40
|
-
partialSigners.forEach(partiallySign);
|
|
41
|
-
}
|
|
42
|
-
if (debugTx) {
|
|
43
|
-
yield sendTransactionDebug(tx);
|
|
44
|
-
return;
|
|
45
|
-
}
|
|
46
|
-
const signature = yield wallet.sendTransaction(tx, connection);
|
|
47
|
-
sendIFrameMessage(signature);
|
|
48
|
-
}), [
|
|
49
|
-
connection,
|
|
50
|
-
debugTx,
|
|
51
|
-
partialSigners,
|
|
52
|
-
sendIFrameMessage,
|
|
53
|
-
sendTransactionDebug,
|
|
54
|
-
wallet,
|
|
55
|
-
]);
|
|
56
|
-
const handleSignTransaction = useCallback(({ data }) => __awaiter(this, void 0, void 0, function* () {
|
|
57
|
-
if (!wallet.signTransaction) {
|
|
58
|
-
throw new Error('signTransaction is not supported by this wallet');
|
|
59
|
-
}
|
|
60
|
-
const tx = Transaction.from(base58.decode(data));
|
|
61
|
-
// Partially sign the transaction with any partial signers if needed
|
|
62
|
-
const partiallySign = (signer) => {
|
|
63
|
-
const requiredSignatures = tx.signatures.map(sig => sig.publicKey.toString());
|
|
64
|
-
const shouldSign = requiredSignatures.includes(signer.publicKey.toString());
|
|
65
|
-
if (shouldSign)
|
|
66
|
-
tx.partialSign(signer);
|
|
67
|
-
};
|
|
68
|
-
if (partialSigners) {
|
|
69
|
-
partialSigners.forEach(partiallySign);
|
|
70
|
-
}
|
|
71
|
-
const signedTransaction = yield wallet.signTransaction(tx);
|
|
72
|
-
sendIFrameMessage(base58.encode(signedTransaction.serialize({
|
|
73
|
-
requireAllSignatures: false,
|
|
74
|
-
verifySignatures: false,
|
|
75
|
-
})));
|
|
76
|
-
}), [partialSigners, sendIFrameMessage, wallet]);
|
|
77
|
-
const handleIframeMessages = useCallback(({ data }) => __awaiter(this, void 0, void 0, function* () {
|
|
78
|
-
try {
|
|
79
|
-
if (!wallet)
|
|
80
|
-
return;
|
|
81
|
-
const parsedData = parseJSON(data);
|
|
82
|
-
if (!parsedData)
|
|
83
|
-
return;
|
|
84
|
-
switch (parsedData.method) {
|
|
85
|
-
case 'signMessage': {
|
|
86
|
-
yield handleSignMessage(parsedData);
|
|
87
|
-
break;
|
|
88
|
-
}
|
|
89
|
-
case 'sendTransaction': {
|
|
90
|
-
yield handleSendTransaction(parsedData);
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
case 'signTransaction': {
|
|
94
|
-
yield handleSignTransaction(parsedData);
|
|
95
|
-
break;
|
|
96
|
-
}
|
|
97
|
-
case 'success': {
|
|
98
|
-
if (onSuccess)
|
|
99
|
-
onSuccess(data);
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
default: {
|
|
103
|
-
throw new Error(`Unsupported Wallet Method ${parsedData.method}, must be signMessage or signTransaction`);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
catch (e) {
|
|
108
|
-
console.error('handleIframeMessages', e);
|
|
109
|
-
sendIFrameMessage('ERROR');
|
|
110
|
-
}
|
|
111
|
-
}), [
|
|
112
|
-
handleSignMessage,
|
|
113
|
-
handleSendTransaction,
|
|
114
|
-
onSuccess,
|
|
115
|
-
sendIFrameMessage,
|
|
116
|
-
wallet,
|
|
117
|
-
]);
|
|
118
|
-
return { handleIframeMessages };
|
|
119
|
-
}
|
|
120
|
-
function parseJSON(data) {
|
|
121
|
-
try {
|
|
122
|
-
const res = JSON.parse(data);
|
|
123
|
-
if (!res.method)
|
|
124
|
-
return null;
|
|
125
|
-
if (!res.data)
|
|
126
|
-
return null;
|
|
127
|
-
return res;
|
|
128
|
-
}
|
|
129
|
-
catch (e) {
|
|
130
|
-
return null;
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
//# sourceMappingURL=IFrameWalletConnector.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"IFrameWalletConnector.js","sourceRoot":"","sources":["../src/IFrameWalletConnector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/// <reference types="react" />
|
|
2
|
-
import { WebView } from 'react-native-webview';
|
|
3
|
-
import { OnSuccessMethod } from './IFrameWalletConnector';
|
|
4
|
-
import { Connection, Signer } from '@solana/web3.js';
|
|
5
|
-
import { SubsetWalletContextState } from './ReactNativeCoinflowUtils';
|
|
6
|
-
type IFrameWalletProps = {
|
|
7
|
-
wallet: SubsetWalletContextState;
|
|
8
|
-
connection: Connection;
|
|
9
|
-
onSuccess?: OnSuccessMethod;
|
|
10
|
-
partialSigners?: Signer[];
|
|
11
|
-
debugTx?: boolean;
|
|
12
|
-
};
|
|
13
|
-
export declare function useIframeWallet({ wallet, connection, onSuccess, partialSigners, debugTx, }: IFrameWalletProps): {
|
|
14
|
-
WebViewRef: import("react").RefObject<WebView<{}>>;
|
|
15
|
-
handleIframeMessages: ({ data }: {
|
|
16
|
-
data: string;
|
|
17
|
-
}) => Promise<void>;
|
|
18
|
-
};
|
|
19
|
-
export {};
|
package/build/useIframeWallet.js
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { useCallback, useRef } from 'react';
|
|
2
|
-
import { useHandleIFrameMessages, } from './IFrameWalletConnector';
|
|
3
|
-
export function useIframeWallet({ wallet, connection, onSuccess, partialSigners, debugTx = false, }) {
|
|
4
|
-
const WebViewRef = useRef(null);
|
|
5
|
-
const sendIFrameMessage = useCallback((message) => {
|
|
6
|
-
if (!(WebViewRef === null || WebViewRef === void 0 ? void 0 : WebViewRef.current))
|
|
7
|
-
throw new Error('WebViewRef not defined');
|
|
8
|
-
WebViewRef.current.postMessage(message);
|
|
9
|
-
}, [WebViewRef]);
|
|
10
|
-
const { handleIframeMessages } = useHandleIFrameMessages({
|
|
11
|
-
wallet,
|
|
12
|
-
connection,
|
|
13
|
-
onSuccess,
|
|
14
|
-
partialSigners,
|
|
15
|
-
debugTx,
|
|
16
|
-
sendIFrameMessage,
|
|
17
|
-
});
|
|
18
|
-
return { WebViewRef, handleIframeMessages };
|
|
19
|
-
}
|
|
20
|
-
//# sourceMappingURL=useIframeWallet.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useIframeWallet.js","sourceRoot":"","sources":["../src/useIframeWallet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,WAAW,EAAE,MAAM,EAAC,MAAM,OAAO,CAAC;AAE1C,OAAO,EAEL,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAYjC,MAAM,UAAU,eAAe,CAAC,EAC9B,MAAM,EACN,UAAU,EACV,SAAS,EACT,cAAc,EACd,OAAO,GAAG,KAAK,GACG;IAClB,MAAM,UAAU,GAAG,MAAM,CAAU,IAAI,CAAC,CAAC;IAEzC,MAAM,iBAAiB,GAAG,WAAW,CACnC,CAAC,OAAe,EAAE,EAAE;QAClB,IAAI,CAAC,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,OAAO,CAAA;YAAE,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QACpE,UAAU,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,EACD,CAAC,UAAU,CAAC,CACb,CAAC;IAEF,MAAM,EAAC,oBAAoB,EAAC,GAAG,uBAAuB,CAAC;QACrD,MAAM;QACN,UAAU;QACV,SAAS;QACT,cAAc;QACd,OAAO;QACP,iBAAiB;KAClB,CAAC,CAAC;IAEH,OAAO,EAAC,UAAU,EAAE,oBAAoB,EAAC,CAAC;AAC5C,CAAC"}
|