@coinflowlabs/react 0.2.11 → 1.0.0-PREVIEW-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.
Files changed (66) hide show
  1. package/README.md +4 -0
  2. package/build/cjs/CoinflowIFrame.d.ts +5 -5
  3. package/build/cjs/CoinflowIFrame.js +5 -4
  4. package/build/cjs/CoinflowIFrame.js.map +1 -1
  5. package/build/cjs/CoinflowPurchase.d.ts +21 -6
  6. package/build/cjs/CoinflowPurchase.js +35 -9
  7. package/build/cjs/CoinflowPurchase.js.map +1 -1
  8. package/build/cjs/CoinflowPurchaseHistory.d.ts +3 -0
  9. package/build/cjs/CoinflowPurchaseHistory.js +41 -0
  10. package/build/cjs/CoinflowPurchaseHistory.js.map +1 -0
  11. package/build/cjs/CoinflowUtils.d.ts +42 -7
  12. package/build/cjs/CoinflowUtils.js +50 -91
  13. package/build/cjs/CoinflowUtils.js.map +1 -1
  14. package/build/cjs/CoinflowWithdraw.d.ts +15 -7
  15. package/build/cjs/CoinflowWithdraw.js +30 -5
  16. package/build/cjs/CoinflowWithdraw.js.map +1 -1
  17. package/build/cjs/CoinflowWithdrawHistory.d.ts +18 -0
  18. package/build/cjs/CoinflowWithdrawHistory.js +41 -0
  19. package/build/cjs/CoinflowWithdrawHistory.js.map +1 -0
  20. package/build/cjs/NearIFrameMessageHandlers.d.ts +5 -0
  21. package/build/cjs/NearIFrameMessageHandlers.js +54 -0
  22. package/build/cjs/NearIFrameMessageHandlers.js.map +1 -0
  23. package/build/cjs/SolanaIFrameMessageHandlers.d.ts +18 -0
  24. package/build/cjs/{IFrameWalletConnector.js → SolanaIFrameMessageHandlers.js} +23 -108
  25. package/build/cjs/SolanaIFrameMessageHandlers.js.map +1 -0
  26. package/build/cjs/index.d.ts +2 -1
  27. package/build/cjs/index.js +2 -1
  28. package/build/cjs/index.js.map +1 -1
  29. package/build/cjs/useIframeWallet.d.ts +3 -11
  30. package/build/cjs/useIframeWallet.js +83 -11
  31. package/build/cjs/useIframeWallet.js.map +1 -1
  32. package/build/esm/CoinflowIFrame.d.ts +5 -5
  33. package/build/esm/CoinflowIFrame.js +6 -5
  34. package/build/esm/CoinflowIFrame.js.map +1 -1
  35. package/build/esm/CoinflowPurchase.d.ts +21 -6
  36. package/build/esm/CoinflowPurchase.js +35 -8
  37. package/build/esm/CoinflowPurchase.js.map +1 -1
  38. package/build/esm/CoinflowPurchaseHistory.d.ts +3 -0
  39. package/build/esm/CoinflowPurchaseHistory.js +37 -0
  40. package/build/esm/CoinflowPurchaseHistory.js.map +1 -0
  41. package/build/esm/CoinflowUtils.d.ts +42 -7
  42. package/build/esm/CoinflowUtils.js +50 -91
  43. package/build/esm/CoinflowUtils.js.map +1 -1
  44. package/build/esm/CoinflowWithdraw.d.ts +15 -7
  45. package/build/esm/CoinflowWithdraw.js +30 -4
  46. package/build/esm/CoinflowWithdraw.js.map +1 -1
  47. package/build/esm/CoinflowWithdrawHistory.d.ts +18 -0
  48. package/build/esm/CoinflowWithdrawHistory.js +37 -0
  49. package/build/esm/CoinflowWithdrawHistory.js.map +1 -0
  50. package/build/esm/NearIFrameMessageHandlers.d.ts +5 -0
  51. package/build/esm/NearIFrameMessageHandlers.js +50 -0
  52. package/build/esm/NearIFrameMessageHandlers.js.map +1 -0
  53. package/build/esm/SolanaIFrameMessageHandlers.d.ts +18 -0
  54. package/build/esm/{IFrameWalletConnector.js → SolanaIFrameMessageHandlers.js} +21 -106
  55. package/build/esm/SolanaIFrameMessageHandlers.js.map +1 -0
  56. package/build/esm/index.d.ts +2 -1
  57. package/build/esm/index.js +2 -1
  58. package/build/esm/index.js.map +1 -1
  59. package/build/esm/useIframeWallet.d.ts +3 -11
  60. package/build/esm/useIframeWallet.js +83 -11
  61. package/build/esm/useIframeWallet.js.map +1 -1
  62. package/package.json +2 -3
  63. package/build/cjs/IFrameWalletConnector.d.ts +0 -21
  64. package/build/cjs/IFrameWalletConnector.js.map +0 -1
  65. package/build/esm/IFrameWalletConnector.d.ts +0 -21
  66. package/build/esm/IFrameWalletConnector.js.map +0 -1
@@ -0,0 +1,37 @@
1
+ import { __assign } from "tslib";
2
+ import { useIframeWallet } from './useIframeWallet';
3
+ import { CoinflowIFrame } from './CoinflowIFrame';
4
+ import React from 'react';
5
+ import { useSolanaIFrameMessageHandlers } from './SolanaIFrameMessageHandlers';
6
+ import { useNearIFrameMessageHandlers } from './NearIFrameMessageHandlers';
7
+ import { CoinflowUtils } from './CoinflowUtils';
8
+ export function CoinflowPurchaseHistory(props) {
9
+ return CoinflowUtils.byBlockchain(props.blockchain, {
10
+ solana: (React.createElement(SolanaPurchaseHistory, __assign({}, props))),
11
+ near: React.createElement(NearPurchaseHistory, __assign({}, props))
12
+ });
13
+ }
14
+ function SolanaPurchaseHistory(_a) {
15
+ var wallet = _a.wallet, merchantId = _a.merchantId, connection = _a.connection, env = _a.env;
16
+ var handlers = useSolanaIFrameMessageHandlers({
17
+ wallet: wallet,
18
+ connection: connection
19
+ });
20
+ var IFrameRef = useIframeWallet(handlers).IFrameRef;
21
+ if (!wallet.publicKey)
22
+ return null;
23
+ var walletPubkey = wallet.publicKey.toString();
24
+ return (React.createElement(CoinflowIFrame, { walletPubkey: walletPubkey, IFrameRef: IFrameRef, route: "/history/purchase/".concat(merchantId), env: env, blockchain: 'solana' }));
25
+ }
26
+ function NearPurchaseHistory(_a) {
27
+ var wallet = _a.wallet, merchantId = _a.merchantId, env = _a.env;
28
+ var handlers = useNearIFrameMessageHandlers({
29
+ wallet: wallet
30
+ });
31
+ var IFrameRef = useIframeWallet(handlers).IFrameRef;
32
+ if (!wallet)
33
+ return null;
34
+ var walletPubkey = wallet.accountId;
35
+ return (React.createElement(CoinflowIFrame, { walletPubkey: walletPubkey, IFrameRef: IFrameRef, route: "/history/purchase/".concat(merchantId), env: env, blockchain: 'near' }));
36
+ }
37
+ //# sourceMappingURL=CoinflowPurchaseHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoinflowPurchaseHistory.js","sourceRoot":"","sources":["../../src/CoinflowPurchaseHistory.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,EAAC,8BAA8B,EAAC,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAC,4BAA4B,EAAC,MAAM,6BAA6B,CAAC;AACzE,OAAO,EAAC,aAAa,EAAC,MAAM,iBAAiB,CAAC;AAE9C,MAAM,UAAU,uBAAuB,CACrC,KAA4D;IAE5D,OAAO,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE;QAClD,MAAM,EAAE,CACN,oBAAC,qBAAqB,eAAM,KAAoC,EAAI,CACrE;QACD,IAAI,EAAE,oBAAC,mBAAmB,eAAM,KAAkC,EAAI;KACvE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,EAKF;QAJ3B,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,GAAG,SAAA;IAEH,IAAM,QAAQ,GAAG,8BAA8B,CAAC;QAC9C,MAAM,QAAA;QACN,UAAU,YAAA;KACX,CAAC,CAAC;IACI,IAAA,SAAS,GAAI,eAAe,CAAC,QAAQ,CAAC,UAA7B,CAA8B;IAE9C,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAEjD,OAAO,CACL,oBAAC,cAAc,IACb,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,4BAAqB,UAAU,CAAE,EACxC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,QAAQ,GACpB,CACH,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,EAIF;QAHzB,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,GAAG,SAAA;IAEH,IAAM,QAAQ,GAAG,4BAA4B,CAAC;QAC5C,MAAM,QAAA;KACP,CAAC,CAAC;IACI,IAAA,SAAS,GAAI,eAAe,CAAC,QAAQ,CAAC,UAA7B,CAA8B;IAE9C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;IAEtC,OAAO,CACL,oBAAC,cAAc,IACb,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,4BAAqB,UAAU,CAAE,EACxC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAM,GAClB,CACH,CAAC;AACJ,CAAC"}
@@ -1,19 +1,54 @@
1
- import { Connection, PublicKey, Transaction } from '@solana/web3.js';
1
+ import { PublicKey, Transaction } from '@solana/web3.js';
2
2
  import { WalletContextState } from '@solana/wallet-adapter-react';
3
+ export type CoinflowBlockchain = 'solana' | 'near';
3
4
  export type CoinflowEnvs = 'prod' | 'staging' | 'sandbox' | 'local';
4
- export type SubsetWalletContextState = Pick<WalletContextState, 'wallet' | 'signTransaction' | 'signMessage' | 'connected' | 'publicKey' | 'sendTransaction'>;
5
+ export type SolanaWalletContextState = Pick<WalletContextState, 'wallet' | 'signTransaction' | 'signMessage' | 'connected' | 'publicKey' | 'sendTransaction'>;
6
+ export type NearWallet = {
7
+ accountId: string;
8
+ verifyOwner: (params: {
9
+ message: string;
10
+ }) => Promise<{
11
+ accountId: string;
12
+ message: string;
13
+ blockId: string;
14
+ publicKey: string;
15
+ signature: string;
16
+ keyType: number;
17
+ }>;
18
+ signAndSendTransaction: (params: {
19
+ signerId?: string;
20
+ receiverId?: string;
21
+ actions: Array<{
22
+ type: string;
23
+ params: object;
24
+ }>;
25
+ }) => Promise<{
26
+ status: any;
27
+ transaction: any;
28
+ transaction_outcome: any;
29
+ receipts_outcome: any;
30
+ }>;
31
+ };
5
32
  export declare class CoinflowUtils {
6
33
  env: CoinflowEnvs;
7
34
  url: string;
8
35
  constructor(env?: CoinflowEnvs);
9
- getFeePayer(): Promise<PublicKey>;
36
+ getFeePayer(merchantId: string): Promise<PublicKey>;
37
+ getCreditBalance(publicKey: string, blockchain: 'solana' | 'near'): Promise<number>;
10
38
  static getCoinflowBaseUrl(env?: CoinflowEnvs): string;
11
- static getCoinflowUrl({ wallet, route, env, amount, transaction, }: {
12
- wallet: SubsetWalletContextState;
39
+ static getCoinflowUrl({ walletPubkey, route, env, amount, transaction, blockchain, supportsVersionedTransactions, }: {
40
+ walletPubkey: string;
13
41
  route: string;
14
42
  env?: CoinflowEnvs;
15
43
  amount?: number;
16
- transaction?: Transaction;
44
+ transaction?: string;
45
+ supportsVersionedTransactions?: boolean;
46
+ blockchain: CoinflowBlockchain;
17
47
  }): string;
18
- getCoinflowCreditsBalance(publicKey: PublicKey, connection: Connection): Promise<number>;
48
+ static serializeSolanaTransaction(transaction: Transaction | undefined): string | undefined;
49
+ static solanaWalletSupportsVersionedTransactions(wallet: SolanaWalletContextState): boolean;
50
+ static byBlockchain<T>(blockchain: CoinflowBlockchain, args: {
51
+ solana: T;
52
+ near: T;
53
+ }): T;
19
54
  }
@@ -1,9 +1,6 @@
1
1
  import { __awaiter, __generator } from "tslib";
2
2
  import { PublicKey } from '@solana/web3.js';
3
- import { ACCOUNT_SIZE, getAssociatedTokenAddress } from '@solana/spl-token';
4
3
  import base58 from 'bs58';
5
- import { Buffer } from 'buffer';
6
- import BN from 'bn.js';
7
4
  var CoinflowUtils = /** @class */ (function () {
8
5
  function CoinflowUtils(env) {
9
6
  this.env = env !== null && env !== void 0 ? env : 'prod';
@@ -14,17 +11,34 @@ var CoinflowUtils = /** @class */ (function () {
14
11
  else
15
12
  this.url = "https://api-".concat(this.env, ".coinflow.cash");
16
13
  }
17
- CoinflowUtils.prototype.getFeePayer = function () {
14
+ CoinflowUtils.prototype.getFeePayer = function (merchantId) {
18
15
  return __awaiter(this, void 0, void 0, function () {
19
- var response, _a;
20
- return __generator(this, function (_b) {
21
- switch (_b.label) {
22
- case 0: return [4 /*yield*/, fetch(this.url + '/v1/redeem/fee-payer')];
16
+ var response, json;
17
+ return __generator(this, function (_a) {
18
+ switch (_a.label) {
19
+ case 0: return [4 /*yield*/, fetch(this.url + "/merchant/view/".concat(merchantId))];
20
+ case 1:
21
+ response = _a.sent();
22
+ return [4 /*yield*/, response.json()];
23
+ case 2:
24
+ json = _a.sent();
25
+ return [2 /*return*/, new PublicKey(json.feePayerPublicKey)];
26
+ }
27
+ });
28
+ });
29
+ };
30
+ CoinflowUtils.prototype.getCreditBalance = function (publicKey, blockchain) {
31
+ return __awaiter(this, void 0, void 0, function () {
32
+ var response, balance;
33
+ return __generator(this, function (_a) {
34
+ switch (_a.label) {
35
+ case 0: return [4 /*yield*/, fetch(this.url + "/mint/balance/".concat(publicKey, "/").concat(blockchain))];
23
36
  case 1:
24
- response = _b.sent();
25
- _a = PublicKey.bind;
37
+ response = _a.sent();
26
38
  return [4 /*yield*/, response.json()];
27
- case 2: return [2 /*return*/, new (_a.apply(PublicKey, [void 0, _b.sent()]))()];
39
+ case 2:
40
+ balance = (_a.sent()).balance;
41
+ return [2 /*return*/, balance];
28
42
  }
29
43
  });
30
44
  });
@@ -37,96 +51,41 @@ var CoinflowUtils = /** @class */ (function () {
37
51
  return "https://".concat(env, ".coinflow.cash");
38
52
  };
39
53
  CoinflowUtils.getCoinflowUrl = function (_a) {
40
- var _b, _c, _d, _e, _f;
41
- var wallet = _a.wallet, route = _a.route, env = _a.env, amount = _a.amount, transaction = _a.transaction;
42
- var url = new URL(route, CoinflowUtils.getCoinflowBaseUrl(env));
43
- url.searchParams.append('pubkey', (_c = (_b = wallet.publicKey) === null || _b === void 0 ? void 0 : _b.toString()) !== null && _c !== void 0 ? _c : '');
54
+ var walletPubkey = _a.walletPubkey, route = _a.route, env = _a.env, amount = _a.amount, transaction = _a.transaction, blockchain = _a.blockchain, supportsVersionedTransactions = _a.supportsVersionedTransactions;
55
+ var url = new URL("/".concat(blockchain) + route, CoinflowUtils.getCoinflowBaseUrl(env));
56
+ url.searchParams.append('pubkey', walletPubkey);
44
57
  if (transaction) {
45
- var serializedTx = base58.encode(transaction.serialize({
46
- requireAllSignatures: false,
47
- verifySignatures: false
48
- }));
49
- url.searchParams.append('transaction', serializedTx);
58
+ url.searchParams.append('transaction', transaction);
50
59
  }
51
60
  if (amount) {
52
61
  url.searchParams.append('amount', amount.toString());
53
62
  }
54
- var supportsVersionedTransactions = !!((_f = (_e = (_d = wallet.wallet) === null || _d === void 0 ? void 0 : _d.adapter) === null || _e === void 0 ? void 0 : _e.supportedTransactionVersions) === null || _f === void 0 ? void 0 : _f.has(0));
55
63
  if (supportsVersionedTransactions) {
56
64
  url.searchParams.append('supportsVersionedTransactions', 'true');
57
65
  }
58
66
  return url.toString();
59
67
  };
60
- CoinflowUtils.prototype.getCoinflowCreditsBalance = function (publicKey, connection) {
61
- return __awaiter(this, void 0, void 0, function () {
62
- function parseTokenAccountAmount(account) {
63
- try {
64
- if (!account)
65
- return 0;
66
- if (account.data.length !== ACCOUNT_SIZE)
67
- return 0;
68
- var slice = account.data.slice(64, 64 + 8);
69
- var rawAmount = Number(new BN(slice.reverse()));
70
- var uiAmount = rawAmount / Math.pow(10, 6);
71
- return Number((Math.floor(uiAmount * 100) / 100).toFixed(2));
72
- }
73
- catch (e) {
74
- console.error('Error parsing token account amount', e);
75
- return 0;
76
- }
77
- }
78
- function getCreditBalance(wallet) {
79
- return __awaiter(this, void 0, void 0, function () {
80
- var ataInfo;
81
- return __generator(this, function (_a) {
82
- switch (_a.label) {
83
- case 0: return [4 /*yield*/, getCreditAtaInfo(wallet)];
84
- case 1:
85
- ataInfo = _a.sent();
86
- return [2 /*return*/, parseTokenAccountAmount(ataInfo)];
87
- }
88
- });
89
- });
90
- }
91
- function getCreditAtaInfo(wallet) {
92
- return __awaiter(this, void 0, void 0, function () {
93
- var ata, e_1;
94
- return __generator(this, function (_a) {
95
- switch (_a.label) {
96
- case 0:
97
- _a.trys.push([0, 2, , 3]);
98
- return [4 /*yield*/, getCreditAtaAddress(wallet)];
99
- case 1:
100
- ata = _a.sent();
101
- return [2 /*return*/, connection.getAccountInfo(ata)];
102
- case 2:
103
- e_1 = _a.sent();
104
- return [2 /*return*/, null];
105
- case 3: return [2 /*return*/];
106
- }
107
- });
108
- });
109
- }
110
- function getCreditAtaAddress(wallet) {
111
- return __awaiter(this, void 0, void 0, function () {
112
- return __generator(this, function (_a) {
113
- return [2 /*return*/, getAssociatedTokenAddress(creditsMint(), wallet)];
114
- });
115
- });
116
- }
117
- function creditsMint() {
118
- return PublicKey.findProgramAddressSync([Buffer.from('usdc-credits-mint-2')], new PublicKey('FD1amxhTsDpwzoVX41dxp2ygAESURV2zdUACzxM1Dfw9'))[0];
119
- }
120
- return __generator(this, function (_a) {
121
- switch (_a.label) {
122
- case 0:
123
- if (!publicKey)
124
- return [2 /*return*/, 0];
125
- return [4 /*yield*/, getCreditBalance(publicKey)];
126
- case 1: return [2 /*return*/, _a.sent()];
127
- }
128
- });
129
- });
68
+ CoinflowUtils.serializeSolanaTransaction = function (transaction) {
69
+ if (!transaction)
70
+ return undefined;
71
+ return base58.encode(transaction.serialize({
72
+ requireAllSignatures: false,
73
+ verifySignatures: false
74
+ }));
75
+ };
76
+ CoinflowUtils.solanaWalletSupportsVersionedTransactions = function (wallet) {
77
+ var _a, _b, _c;
78
+ return !!((_c = (_b = (_a = wallet.wallet) === null || _a === void 0 ? void 0 : _a.adapter) === null || _b === void 0 ? void 0 : _b.supportedTransactionVersions) === null || _c === void 0 ? void 0 : _c.has(0));
79
+ };
80
+ CoinflowUtils.byBlockchain = function (blockchain, args) {
81
+ switch (blockchain) {
82
+ case 'solana':
83
+ return args.solana;
84
+ case 'near':
85
+ return args.near;
86
+ default:
87
+ throw new Error('blockchain not supported!');
88
+ }
130
89
  };
131
90
  return CoinflowUtils;
132
91
  }());
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowUtils.js","sourceRoot":"","sources":["../../src/CoinflowUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoinflowUtils.js","sourceRoot":"","sources":["../../src/CoinflowUtils.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,20 @@
1
1
  /// <reference types="react" />
2
2
  import { Connection } from '@solana/web3.js';
3
- import { CoinflowEnvs, SubsetWalletContextState } from './CoinflowUtils';
4
- import { OnSuccessMethod } from './IFrameWalletConnector';
5
- export type CoinflowWithdrawProps = {
6
- wallet: SubsetWalletContextState;
3
+ import { CoinflowBlockchain, CoinflowEnvs, NearWallet, SolanaWalletContextState } from './CoinflowUtils';
4
+ import { OnSuccessMethod } from './useIframeWallet';
5
+ export interface CoinflowCommonWithdrawProps {
7
6
  merchantId: string;
8
- connection: Connection;
9
7
  env?: CoinflowEnvs;
10
8
  onSuccess?: OnSuccessMethod;
11
- };
12
- export declare function CoinflowWithdraw({ wallet, merchantId, env, connection, onSuccess, }: CoinflowWithdrawProps): JSX.Element | null;
9
+ blockchain: CoinflowBlockchain;
10
+ }
11
+ export interface CoinflowSolanaWithdrawProps extends CoinflowCommonWithdrawProps {
12
+ wallet: SolanaWalletContextState;
13
+ connection: Connection;
14
+ blockchain: 'solana';
15
+ }
16
+ export interface CoinflowNearWithdrawProps extends CoinflowCommonWithdrawProps {
17
+ wallet: NearWallet;
18
+ blockchain: 'near';
19
+ }
20
+ export declare function CoinflowWithdraw(props: CoinflowSolanaWithdrawProps | CoinflowNearWithdrawProps): JSX.Element;
@@ -1,11 +1,37 @@
1
+ import { __assign } from "tslib";
1
2
  import React from 'react';
2
3
  import { CoinflowIFrame } from './CoinflowIFrame';
4
+ import { CoinflowUtils, } from './CoinflowUtils';
3
5
  import { useIframeWallet } from './useIframeWallet';
4
- export function CoinflowWithdraw(_a) {
6
+ import { useSolanaIFrameMessageHandlers } from './SolanaIFrameMessageHandlers';
7
+ import { useNearIFrameMessageHandlers } from './NearIFrameMessageHandlers';
8
+ export function CoinflowWithdraw(props) {
9
+ return CoinflowUtils.byBlockchain(props.blockchain, {
10
+ solana: (React.createElement(CoinflowSolanaWithdraw, __assign({}, props))),
11
+ near: React.createElement(CoinflowNearWithdraw, __assign({}, props))
12
+ });
13
+ }
14
+ function CoinflowSolanaWithdraw(_a) {
5
15
  var wallet = _a.wallet, merchantId = _a.merchantId, env = _a.env, connection = _a.connection, onSuccess = _a.onSuccess;
6
- var IFrameRef = useIframeWallet({ wallet: wallet, connection: connection, onSuccess: onSuccess }).IFrameRef;
7
- if (!wallet.publicKey || !wallet.connected)
16
+ var handlers = useSolanaIFrameMessageHandlers({
17
+ wallet: wallet,
18
+ connection: connection
19
+ });
20
+ var IFrameRef = useIframeWallet(handlers, onSuccess).IFrameRef;
21
+ if (!wallet.publicKey)
22
+ return null;
23
+ var walletPubkey = wallet.publicKey.toString();
24
+ return (React.createElement(CoinflowIFrame, { walletPubkey: walletPubkey, IFrameRef: IFrameRef, route: "/withdraw/".concat(merchantId), env: env, blockchain: 'solana' }));
25
+ }
26
+ function CoinflowNearWithdraw(_a) {
27
+ var wallet = _a.wallet, merchantId = _a.merchantId, env = _a.env, onSuccess = _a.onSuccess;
28
+ var handlers = useNearIFrameMessageHandlers({
29
+ wallet: wallet
30
+ });
31
+ var IFrameRef = useIframeWallet(handlers, onSuccess).IFrameRef;
32
+ if (!wallet)
8
33
  return null;
9
- return (React.createElement(CoinflowIFrame, { wallet: wallet, IFrameRef: IFrameRef, route: "/withdraw/".concat(merchantId), env: env }));
34
+ var walletPubkey = wallet.accountId;
35
+ return (React.createElement(CoinflowIFrame, { walletPubkey: walletPubkey, IFrameRef: IFrameRef, route: "/withdraw/".concat(merchantId), env: env, blockchain: 'near' }));
10
36
  }
11
37
  //# sourceMappingURL=CoinflowWithdraw.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowWithdraw.js","sourceRoot":"","sources":["../../src/CoinflowWithdraw.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAGhD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAUlD,MAAM,UAAU,gBAAgB,CAAC,EAMT;QALtB,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,GAAG,SAAA,EACH,UAAU,gBAAA,EACV,SAAS,eAAA;IAEF,IAAA,SAAS,GAAI,eAAe,CAAC,EAAC,MAAM,QAAA,EAAE,UAAU,YAAA,EAAE,SAAS,WAAA,EAAC,CAAC,UAApD,CAAqD;IAErE,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAExD,OAAO,CACL,oBAAC,cAAc,IACb,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,oBAAa,UAAU,CAAE,EAChC,GAAG,EAAE,GAAG,GACR,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CoinflowWithdraw.js","sourceRoot":"","sources":["../../src/CoinflowWithdraw.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAGL,aAAa,GAGd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAkB,eAAe,EAAC,MAAM,mBAAmB,CAAC;AACnE,OAAO,EAAC,8BAA8B,EAAC,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAC,4BAA4B,EAAC,MAAM,6BAA6B,CAAC;AAqBzE,MAAM,UAAU,gBAAgB,CAC9B,KAA8D;IAE9D,OAAO,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE;QAClD,MAAM,EAAE,CACN,oBAAC,sBAAsB,eAAM,KAAqC,EAAI,CACvE;QACD,IAAI,EAAE,oBAAC,oBAAoB,eAAM,KAAmC,EAAI;KACzE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB,CAAC,EAMF;QAL5B,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,GAAG,SAAA,EACH,UAAU,gBAAA,EACV,SAAS,eAAA;IAET,IAAM,QAAQ,GAAG,8BAA8B,CAAC;QAC9C,MAAM,QAAA;QACN,UAAU,YAAA;KACX,CAAC,CAAC;IACI,IAAA,SAAS,GAAI,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAxC,CAAyC;IAEzD,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAEjD,OAAO,CACL,oBAAC,cAAc,IACb,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,oBAAa,UAAU,CAAE,EAChC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,QAAQ,GACpB,CACH,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,EAKF;QAJ1B,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,GAAG,SAAA,EACH,SAAS,eAAA;IAET,IAAM,QAAQ,GAAG,4BAA4B,CAAC;QAC5C,MAAM,QAAA;KACP,CAAC,CAAC;IACI,IAAA,SAAS,GAAI,eAAe,CAAC,QAAQ,EAAE,SAAS,CAAC,UAAxC,CAAyC;IAEzD,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;IAEtC,OAAO,CACL,oBAAC,cAAc,IACb,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,oBAAa,UAAU,CAAE,EAChC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAM,GAClB,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ /// <reference types="react" />
2
+ import { CoinflowBlockchain, CoinflowEnvs, NearWallet, SolanaWalletContextState } from './CoinflowUtils';
3
+ import { Connection } from '@solana/web3.js';
4
+ export interface CoinflowHistoryProps {
5
+ merchantId: string;
6
+ env?: CoinflowEnvs;
7
+ blockchain: CoinflowBlockchain;
8
+ }
9
+ export interface CoinflowSolanaHistoryProps extends CoinflowHistoryProps {
10
+ wallet: SolanaWalletContextState;
11
+ connection: Connection;
12
+ blockchain: 'solana';
13
+ }
14
+ export interface CoinflowNearHistoryProps extends CoinflowHistoryProps {
15
+ wallet: NearWallet;
16
+ blockchain: 'near';
17
+ }
18
+ export declare function CoinflowWithdrawHistory(props: CoinflowSolanaHistoryProps | CoinflowNearHistoryProps): JSX.Element;
@@ -0,0 +1,37 @@
1
+ import { __assign } from "tslib";
2
+ import { CoinflowUtils, } from './CoinflowUtils';
3
+ import { useIframeWallet } from './useIframeWallet';
4
+ import { CoinflowIFrame } from './CoinflowIFrame';
5
+ import React from 'react';
6
+ import { useSolanaIFrameMessageHandlers } from './SolanaIFrameMessageHandlers';
7
+ import { useNearIFrameMessageHandlers } from './NearIFrameMessageHandlers';
8
+ export function CoinflowWithdrawHistory(props) {
9
+ return CoinflowUtils.byBlockchain(props.blockchain, {
10
+ solana: (React.createElement(SolanaWithdrawHistory, __assign({}, props))),
11
+ near: React.createElement(NearWithdrawHistory, __assign({}, props))
12
+ });
13
+ }
14
+ function SolanaWithdrawHistory(_a) {
15
+ var wallet = _a.wallet, merchantId = _a.merchantId, connection = _a.connection, env = _a.env;
16
+ var handlers = useSolanaIFrameMessageHandlers({
17
+ wallet: wallet,
18
+ connection: connection
19
+ });
20
+ var IFrameRef = useIframeWallet(handlers).IFrameRef;
21
+ if (!wallet.publicKey)
22
+ return null;
23
+ var walletPubkey = wallet.publicKey.toString();
24
+ return (React.createElement(CoinflowIFrame, { walletPubkey: walletPubkey, IFrameRef: IFrameRef, route: "/history/withdraw/".concat(merchantId), env: env, blockchain: 'solana' }));
25
+ }
26
+ function NearWithdrawHistory(_a) {
27
+ var wallet = _a.wallet, merchantId = _a.merchantId, env = _a.env;
28
+ var handlers = useNearIFrameMessageHandlers({
29
+ wallet: wallet
30
+ });
31
+ var IFrameRef = useIframeWallet(handlers).IFrameRef;
32
+ if (!wallet)
33
+ return null;
34
+ var walletPubkey = wallet.accountId;
35
+ return (React.createElement(CoinflowIFrame, { walletPubkey: walletPubkey, IFrameRef: IFrameRef, route: "/history/withdraw/".concat(merchantId), env: env, blockchain: 'near' }));
36
+ }
37
+ //# sourceMappingURL=CoinflowWithdrawHistory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CoinflowWithdrawHistory.js","sourceRoot":"","sources":["../../src/CoinflowWithdrawHistory.tsx"],"names":[],"mappings":";AAAA,OAAO,EAGL,aAAa,GAGd,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,8BAA8B,EAAC,MAAM,+BAA+B,CAAC;AAC7E,OAAO,EAAC,4BAA4B,EAAC,MAAM,6BAA6B,CAAC;AAmBzE,MAAM,UAAU,uBAAuB,CACrC,KAA4D;IAE5D,OAAO,aAAa,CAAC,YAAY,CAAC,KAAK,CAAC,UAAU,EAAE;QAClD,MAAM,EAAE,CACN,oBAAC,qBAAqB,eAAM,KAAoC,EAAI,CACrE;QACD,IAAI,EAAE,oBAAC,mBAAmB,eAAM,KAAkC,EAAI;KACvE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,EAKF;QAJ3B,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,GAAG,SAAA;IAEH,IAAM,QAAQ,GAAG,8BAA8B,CAAC;QAC9C,MAAM,QAAA;QACN,UAAU,YAAA;KACX,CAAC,CAAC;IACI,IAAA,SAAS,GAAI,eAAe,CAAC,QAAQ,CAAC,UAA7B,CAA8B;IAE9C,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IACnC,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,CAAC;IAEjD,OAAO,CACL,oBAAC,cAAc,IACb,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,4BAAqB,UAAU,CAAE,EACxC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,QAAQ,GACpB,CACH,CAAC;AACJ,CAAC;AAED,SAAS,mBAAmB,CAAC,EAIF;QAHzB,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,GAAG,SAAA;IAEH,IAAM,QAAQ,GAAG,4BAA4B,CAAC;QAC5C,MAAM,QAAA;KACP,CAAC,CAAC;IACI,IAAA,SAAS,GAAI,eAAe,CAAC,QAAQ,CAAC,UAA7B,CAA8B;IAE9C,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAM,YAAY,GAAG,MAAM,CAAC,SAAS,CAAC;IAEtC,OAAO,CACL,oBAAC,cAAc,IACb,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,4BAAqB,UAAU,CAAE,EACxC,GAAG,EAAE,GAAG,EACR,UAAU,EAAE,MAAM,GAClB,CACH,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { IFrameMessageHandlers } from './SolanaIFrameMessageHandlers';
2
+ import { NearWallet } from './CoinflowUtils';
3
+ export declare function useNearIFrameMessageHandlers({ wallet, }: {
4
+ wallet: NearWallet;
5
+ }): IFrameMessageHandlers;
@@ -0,0 +1,50 @@
1
+ import { __awaiter, __generator } from "tslib";
2
+ import { useCallback } from 'react';
3
+ export function useNearIFrameMessageHandlers(_a) {
4
+ var _this = this;
5
+ var wallet = _a.wallet;
6
+ var handleSignMessage = useCallback(function (_a) {
7
+ var data = _a.data;
8
+ return __awaiter(_this, void 0, void 0, function () {
9
+ var message, owner;
10
+ return __generator(this, function (_b) {
11
+ switch (_b.label) {
12
+ case 0:
13
+ message = data;
14
+ return [4 /*yield*/, wallet.verifyOwner({
15
+ message: message
16
+ })];
17
+ case 1:
18
+ owner = _b.sent();
19
+ if (!owner)
20
+ throw new Error('Wallet did not sign');
21
+ return [2 /*return*/, JSON.stringify(owner)];
22
+ }
23
+ });
24
+ });
25
+ }, [wallet]);
26
+ var handleSendTransaction = useCallback(function (_a) {
27
+ var data = _a.data;
28
+ return __awaiter(_this, void 0, void 0, function () {
29
+ var action, executionOutcome, transactionResult;
30
+ return __generator(this, function (_b) {
31
+ switch (_b.label) {
32
+ case 0:
33
+ action = JSON.parse(Buffer.from(data, 'base64').toString());
34
+ return [4 /*yield*/, wallet.signAndSendTransaction(action)];
35
+ case 1:
36
+ executionOutcome = _b.sent();
37
+ if (!executionOutcome)
38
+ throw new Error('Transaction did not send');
39
+ transactionResult = executionOutcome.transaction;
40
+ return [2 /*return*/, transactionResult.hash];
41
+ }
42
+ });
43
+ });
44
+ }, [wallet]);
45
+ return {
46
+ handleSendTransaction: handleSendTransaction,
47
+ handleSignMessage: handleSignMessage
48
+ };
49
+ }
50
+ //# sourceMappingURL=NearIFrameMessageHandlers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NearIFrameMessageHandlers.js","sourceRoot":"","sources":["../../src/NearIFrameMessageHandlers.ts"],"names":[],"mappings":";AAAA,OAAO,EAAC,WAAW,EAAC,MAAM,OAAO,CAAC;AAIlC,MAAM,UAAU,4BAA4B,CAAC,EAI5C;IAJD,iBAgCC;QA/BC,MAAM,YAAA;IAIN,IAAM,iBAAiB,GAAG,WAAW,CACnC,UAAO,EAAkB;YAAjB,IAAI,UAAA;;;;;;wBACJ,OAAO,GAAG,IAAI,CAAC;wBACP,qBAAM,MAAM,CAAC,WAAW,CAAC;gCACrC,OAAO,SAAA;6BACR,CAAC,EAAA;;wBAFI,KAAK,GAAG,SAEZ;wBACF,IAAI,CAAC,KAAK;4BAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAC;wBACnD,sBAAO,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAC;;;;KAC9B,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,IAAM,qBAAqB,GAAG,WAAW,CACvC,UAAO,EAAkB;YAAjB,IAAI,UAAA;;;;;;wBACJ,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;wBACzC,qBAAM,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,EAAA;;wBAA9D,gBAAgB,GAAG,SAA2C;wBACpE,IAAI,CAAC,gBAAgB;4BAAE,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;wBAC/C,iBAAiB,GAAI,gBAAgB,YAApB,CAAqB;wBAC1D,sBAAO,iBAAiB,CAAC,IAAI,EAAC;;;;KAC/B,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,OAAO;QACL,qBAAqB,uBAAA;QACrB,iBAAiB,mBAAA;KAClB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Connection, Signer } from '@solana/web3.js';
2
+ import { SolanaWalletContextState } from './CoinflowUtils';
3
+ export type WalletCall = {
4
+ method: string;
5
+ data: string;
6
+ };
7
+ export type SolanaIFrameWalletProps = {
8
+ wallet: SolanaWalletContextState;
9
+ connection: Connection;
10
+ partialSigners?: Signer[];
11
+ debugTx?: boolean;
12
+ };
13
+ export type IFrameMessageHandlers = {
14
+ handleSignTransaction?: ({ data }: WalletCall) => Promise<string>;
15
+ handleSendTransaction: ({ data }: WalletCall) => Promise<string>;
16
+ handleSignMessage: ({ data }: WalletCall) => Promise<string>;
17
+ };
18
+ export declare function useSolanaIFrameMessageHandlers({ wallet, connection, partialSigners, debugTx, }: SolanaIFrameWalletProps): IFrameMessageHandlers;