@coinflowlabs/react 0.3.0 → 1.0.0

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 +2 -2
  9. package/build/cjs/CoinflowPurchaseHistory.js +30 -5
  10. package/build/cjs/CoinflowPurchaseHistory.js.map +1 -1
  11. package/build/cjs/CoinflowUtils.d.ts +41 -6
  12. package/build/cjs/CoinflowUtils.js +41 -79
  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 +14 -6
  18. package/build/cjs/CoinflowWithdrawHistory.js +30 -5
  19. package/build/cjs/CoinflowWithdrawHistory.js.map +1 -1
  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 +0 -1
  27. package/build/cjs/index.js +0 -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 +2 -2
  39. package/build/esm/CoinflowPurchaseHistory.js +30 -4
  40. package/build/esm/CoinflowPurchaseHistory.js.map +1 -1
  41. package/build/esm/CoinflowUtils.d.ts +41 -6
  42. package/build/esm/CoinflowUtils.js +41 -79
  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 +14 -6
  48. package/build/esm/CoinflowWithdrawHistory.js +30 -4
  49. package/build/esm/CoinflowWithdrawHistory.js.map +1 -1
  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 +0 -1
  57. package/build/esm/index.js +0 -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 -2
  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
@@ -1,11 +1,37 @@
1
+ import { __assign } from "tslib";
1
2
  import { useIframeWallet } from './useIframeWallet';
2
3
  import { CoinflowIFrame } from './CoinflowIFrame';
3
4
  import React from 'react';
4
- export function CoinflowPurchaseHistory(_a) {
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) {
5
15
  var wallet = _a.wallet, merchantId = _a.merchantId, connection = _a.connection, env = _a.env;
6
- var IFrameRef = useIframeWallet({ wallet: wallet, connection: connection }).IFrameRef;
7
- if (!wallet.publicKey || !wallet.connected)
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)
8
33
  return null;
9
- return (React.createElement(CoinflowIFrame, { wallet: wallet, IFrameRef: IFrameRef, route: "/history/purchase/".concat(merchantId), env: env }));
34
+ var walletPubkey = wallet.accountId;
35
+ return (React.createElement(CoinflowIFrame, { walletPubkey: walletPubkey, IFrameRef: IFrameRef, route: "/history/purchase/".concat(merchantId), env: env, blockchain: 'near' }));
10
36
  }
11
37
  //# sourceMappingURL=CoinflowPurchaseHistory.js.map
@@ -1 +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;AAG1B,MAAM,UAAU,uBAAuB,CAAC,EAKjB;QAJrB,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,GAAG,SAAA;IAEI,IAAA,SAAS,GAAI,eAAe,CAAC,EAAC,MAAM,QAAA,EAAE,UAAU,YAAA,EAAC,CAAC,UAAzC,CAA0C;IAE1D,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,4BAAqB,UAAU,CAAE,EACxC,GAAG,EAAE,GAAG,GACR,CACH,CAAC;AACJ,CAAC"}
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
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,8 +1,6 @@
1
1
  import { __awaiter, __generator } from "tslib";
2
2
  import { PublicKey } from '@solana/web3.js';
3
3
  import base58 from 'bs58';
4
- import { Buffer } from 'buffer';
5
- import BN from 'bn.js';
6
4
  var CoinflowUtils = /** @class */ (function () {
7
5
  function CoinflowUtils(env) {
8
6
  this.env = env !== null && env !== void 0 ? env : 'prod';
@@ -29,6 +27,22 @@ var CoinflowUtils = /** @class */ (function () {
29
27
  });
30
28
  });
31
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))];
36
+ case 1:
37
+ response = _a.sent();
38
+ return [4 /*yield*/, response.json()];
39
+ case 2:
40
+ balance = (_a.sent()).balance;
41
+ return [2 /*return*/, balance];
42
+ }
43
+ });
44
+ });
45
+ };
32
46
  CoinflowUtils.getCoinflowBaseUrl = function (env) {
33
47
  if (!env || env === 'prod')
34
48
  return 'https://coinflow.cash';
@@ -37,93 +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 < 74)
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;
94
- return __generator(this, function (_a) {
95
- try {
96
- ata = getCreditAtaAddress(wallet);
97
- return [2 /*return*/, connection.getAccountInfo(ata)];
98
- }
99
- catch (e) {
100
- return [2 /*return*/, null];
101
- }
102
- return [2 /*return*/];
103
- });
104
- });
105
- }
106
- function getCreditAtaAddress(wallet) {
107
- var address = PublicKey.findProgramAddressSync([
108
- wallet.toBuffer(),
109
- new PublicKey('TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA').toBuffer(),
110
- creditsMint().toBuffer(),
111
- ], new PublicKey('ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL'))[0];
112
- return address;
113
- }
114
- function creditsMint() {
115
- return PublicKey.findProgramAddressSync([Buffer.from('usdc-credits-mint-2')], new PublicKey('FD1amxhTsDpwzoVX41dxp2ygAESURV2zdUACzxM1Dfw9'))[0];
116
- }
117
- return __generator(this, function (_a) {
118
- switch (_a.label) {
119
- case 0:
120
- if (!publicKey)
121
- return [2 /*return*/, 0];
122
- return [4 /*yield*/, getCreditBalance(publicKey)];
123
- case 1: return [2 /*return*/, _a.sent()];
124
- }
125
- });
126
- });
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
+ }
127
89
  };
128
90
  return CoinflowUtils;
129
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"}
@@ -1,10 +1,18 @@
1
1
  /// <reference types="react" />
2
- import { CoinflowEnvs, SubsetWalletContextState } from './CoinflowUtils';
2
+ import { CoinflowBlockchain, CoinflowEnvs, NearWallet, SolanaWalletContextState } from './CoinflowUtils';
3
3
  import { Connection } from '@solana/web3.js';
4
- export type CoinflowHistoryProps = {
5
- wallet: SubsetWalletContextState;
4
+ export interface CoinflowHistoryProps {
6
5
  merchantId: string;
7
- connection: Connection;
8
6
  env?: CoinflowEnvs;
9
- };
10
- export declare function CoinflowWithdrawHistory({ wallet, merchantId, connection, env, }: CoinflowHistoryProps): JSX.Element | null;
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;
@@ -1,11 +1,37 @@
1
+ import { __assign } from "tslib";
2
+ import { CoinflowUtils, } from './CoinflowUtils';
1
3
  import { useIframeWallet } from './useIframeWallet';
2
4
  import { CoinflowIFrame } from './CoinflowIFrame';
3
5
  import React from 'react';
4
- export function CoinflowWithdrawHistory(_a) {
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) {
5
15
  var wallet = _a.wallet, merchantId = _a.merchantId, connection = _a.connection, env = _a.env;
6
- var IFrameRef = useIframeWallet({ wallet: wallet, connection: connection }).IFrameRef;
7
- if (!wallet.publicKey || !wallet.connected)
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)
8
33
  return null;
9
- return (React.createElement(CoinflowIFrame, { wallet: wallet, IFrameRef: IFrameRef, route: "/history/withdraw/".concat(merchantId), env: env }));
34
+ var walletPubkey = wallet.accountId;
35
+ return (React.createElement(CoinflowIFrame, { walletPubkey: walletPubkey, IFrameRef: IFrameRef, route: "/history/withdraw/".concat(merchantId), env: env, blockchain: 'near' }));
10
36
  }
11
37
  //# sourceMappingURL=CoinflowWithdrawHistory.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowWithdrawHistory.js","sourceRoot":"","sources":["../../src/CoinflowWithdrawHistory.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,KAAK,MAAM,OAAO,CAAC;AAS1B,MAAM,UAAU,uBAAuB,CAAC,EAKjB;QAJrB,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,UAAU,gBAAA,EACV,GAAG,SAAA;IAEI,IAAA,SAAS,GAAI,eAAe,CAAC,EAAC,MAAM,QAAA,EAAE,UAAU,YAAA,EAAC,CAAC,UAAzC,CAA0C;IAE1D,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,4BAAqB,UAAU,CAAE,EACxC,GAAG,EAAE,GAAG,GACR,CACH,CAAC;AACJ,CAAC"}
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;