@coinflowlabs/react 0.2.0 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -34,3 +34,20 @@ Props:
34
34
  - For testing set to `staging`
35
35
  * `onSuccess` (optional): function to run when the purchase process is successful
36
36
  * `transaction` (optional): transaction for the user to run which redeems their credits with your smart contract. Create this transaction just like you would for a normal user who has USDC in their account.
37
+ * `partialSigners` (optional): Keypairs of Partial Signers to sign the transaction with, this is necessary when initializing new accounts as the new account Keypair must sign the transaction.
38
+ * `debugTx` (optional): Setting this to `true` will sign the transaction with the wallet, and send the transaction with no preflight checks allowing for easier debug of any issues.
39
+
40
+
41
+ # Changelog
42
+
43
+ ### 0.2.2
44
+
45
+ - Added the optional debugTx parameter to allow for easier debugging of any redeem transaction related issues.
46
+
47
+ ### 0.2.1
48
+
49
+ - Added the optional partialSigners parameter to CoinflowPurchase component so redeem txs that require partial signers can be supported.
50
+
51
+ ### 0.2.0
52
+
53
+ - Added the transaction optional parameter to CoinflowPurchase component enabling automatic redemption of credits on purchases.
@@ -6,8 +6,8 @@ type CoinflowIFrameProps = {
6
6
  IFrameRef: React.RefObject<HTMLIFrameElement>;
7
7
  env?: CoinflowEnvs;
8
8
  route: string;
9
- transaction?: Transaction;
10
9
  amount?: number;
10
+ transaction?: Transaction;
11
11
  };
12
12
  export declare function CoinflowIFrame({ publicKey, IFrameRef, env, route, transaction, amount, }: CoinflowIFrameProps): JSX.Element;
13
13
  export {};
@@ -26,7 +26,6 @@ function CoinflowIFrame(_a) {
26
26
  if (amount) {
27
27
  url.searchParams.append('amount', amount.toString());
28
28
  }
29
- console.log({ url: url });
30
29
  return url;
31
30
  }, [amount, env, publicKey, route, transaction]);
32
31
  return (0, react_1.useMemo)(function () { return (react_1["default"].createElement("iframe", { ref: IFrameRef, style: {
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowIFrame.js","sourceRoot":"","sources":["../../src/CoinflowIFrame.tsx"],"names":[],"mappings":";;;;AAAA,qDAAqC;AAErC,sDAA0B;AAa1B,SAAS,cAAc,CAAC,GAAkB;IACxC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,uBAAuB,CAAC;IAC3D,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,uBAAuB,CAAC;IAEpD,OAAO,kBAAW,GAAG,mBAAgB,CAAC;AACxC,CAAC;AAED,SAAgB,cAAc,CAAC,EAOT;QANpB,SAAS,eAAA,EACT,SAAS,eAAA,EACT,GAAG,SAAA,EACH,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,MAAM,YAAA;IAEN,IAAM,GAAG,GAAG,IAAA,eAAO,EAAC;QAClB,IAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,WAAW,EAAE;YACf,IAAM,YAAY,GAAG,iBAAM,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,CAAC,GAAG,CAAC,EAAC,GAAG,KAAA,EAAC,CAAC,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,OAAO,IAAA,eAAO,EACZ,cAAM,OAAA,CACJ,6CACE,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;SACf,EACD,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,GAAG,EACf,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,GACnB,CACH,EAXK,CAWL,EACD,CAAC,SAAS,EAAE,GAAG,CAAC,CACjB,CAAC;AACJ,CAAC;AA1CD,wCA0CC"}
1
+ {"version":3,"file":"CoinflowIFrame.js","sourceRoot":"","sources":["../../src/CoinflowIFrame.tsx"],"names":[],"mappings":";;;;AAAA,qDAAqC;AAErC,sDAA0B;AAa1B,SAAS,cAAc,CAAC,GAAkB;IACxC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,uBAAuB,CAAC;IAC3D,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,uBAAuB,CAAC;IAEpD,OAAO,kBAAW,GAAG,mBAAgB,CAAC;AACxC,CAAC;AAED,SAAgB,cAAc,CAAC,EAOT;QANpB,SAAS,eAAA,EACT,SAAS,eAAA,EACT,GAAG,SAAA,EACH,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,MAAM,YAAA;IAEN,IAAM,GAAG,GAAG,IAAA,eAAO,EAAC;QAClB,IAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,WAAW,EAAE;YACf,IAAM,YAAY,GAAG,iBAAM,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;IACb,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,OAAO,IAAA,eAAO,EACZ,cAAM,OAAA,CACJ,6CACE,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;SACf,EACD,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,GAAG,EACf,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,GACnB,CACH,EAXK,CAWL,EACD,CAAC,SAAS,EAAE,GAAG,CAAC,CACjB,CAAC;AACJ,CAAC;AAzCD,wCAyCC"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { WalletContextState } from '@solana/wallet-adapter-react';
3
- import { Connection, Transaction } from '@solana/web3.js';
3
+ import { Connection, Signer, Transaction } from '@solana/web3.js';
4
4
  import { CoinflowEnvs } from './CoinflowIFrame';
5
5
  import { OnSuccessMethod } from './IFrameWalletConnector';
6
6
  type Props = {
@@ -11,6 +11,8 @@ type Props = {
11
11
  env?: CoinflowEnvs;
12
12
  onSuccess?: OnSuccessMethod;
13
13
  transaction?: Transaction;
14
+ partialSigners?: Signer[];
15
+ debugTx?: boolean;
14
16
  };
15
- export declare function CoinflowPurchase({ wallet, merchantId, env, connection, onSuccess, transaction, amount, }: Props): JSX.Element | null;
17
+ export declare function CoinflowPurchase({ wallet, merchantId, env, connection, onSuccess, transaction, amount, partialSigners, debugTx, }: Props): JSX.Element | null;
16
18
  export {};
@@ -6,8 +6,14 @@ var react_1 = tslib_1.__importDefault(require("react"));
6
6
  var CoinflowIFrame_1 = require("./CoinflowIFrame");
7
7
  var IFrameWalletConnector_1 = require("./IFrameWalletConnector");
8
8
  function CoinflowPurchase(_a) {
9
- var wallet = _a.wallet, merchantId = _a.merchantId, env = _a.env, connection = _a.connection, onSuccess = _a.onSuccess, transaction = _a.transaction, amount = _a.amount;
10
- var IFrameRef = (0, IFrameWalletConnector_1.useIframeWallet)({ wallet: wallet, connection: connection, onSuccess: onSuccess }).IFrameRef;
9
+ var wallet = _a.wallet, merchantId = _a.merchantId, env = _a.env, connection = _a.connection, onSuccess = _a.onSuccess, transaction = _a.transaction, amount = _a.amount, partialSigners = _a.partialSigners, _b = _a.debugTx, debugTx = _b === void 0 ? false : _b;
10
+ var IFrameRef = (0, IFrameWalletConnector_1.useIframeWallet)({
11
+ wallet: wallet,
12
+ connection: connection,
13
+ onSuccess: onSuccess,
14
+ partialSigners: partialSigners,
15
+ debugTx: debugTx
16
+ }).IFrameRef;
11
17
  if (!wallet.publicKey || !wallet.connected)
12
18
  return null;
13
19
  return (react_1["default"].createElement(CoinflowIFrame_1.CoinflowIFrame, { publicKey: wallet.publicKey.toString(), IFrameRef: IFrameRef, route: "/purchase/".concat(merchantId), env: env, transaction: transaction, amount: amount }));
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowPurchase.js","sourceRoot":"","sources":["../../src/CoinflowPurchase.tsx"],"names":[],"mappings":";;;;AACA,wDAA0B;AAE1B,mDAA8D;AAC9D,iEAAyE;AAYzE,SAAgB,gBAAgB,CAAC,EAQzB;QAPN,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,GAAG,SAAA,EACH,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,WAAW,iBAAA,EACX,MAAM,YAAA;IAEC,IAAA,SAAS,GAAI,IAAA,uCAAe,EAAC,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,iCAAC,+BAAc,IACb,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EACtC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,oBAAa,UAAU,CAAE,EAChC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,GACd,CACH,CAAC;AACJ,CAAC;AAvBD,4CAuBC"}
1
+ {"version":3,"file":"CoinflowPurchase.js","sourceRoot":"","sources":["../../src/CoinflowPurchase.tsx"],"names":[],"mappings":";;;;AACA,wDAA0B;AAE1B,mDAA8D;AAC9D,iEAAyE;AAczE,SAAgB,gBAAgB,CAAC,EAUzB;QATN,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,GAAG,SAAA,EACH,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,WAAW,iBAAA,EACX,MAAM,YAAA,EACN,cAAc,oBAAA,EACd,eAAe,EAAf,OAAO,mBAAG,KAAK,KAAA;IAER,IAAA,SAAS,GAAI,IAAA,uCAAe,EAAC;QAClC,MAAM,QAAA;QACN,UAAU,YAAA;QACV,SAAS,WAAA;QACT,cAAc,gBAAA;QACd,OAAO,SAAA;KACR,CAAC,UANc,CAMb;IAEH,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAExD,OAAO,CACL,iCAAC,+BAAc,IACb,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EACtC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,oBAAa,UAAU,CAAE,EAChC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,GACd,CACH,CAAC;AACJ,CAAC;AA/BD,4CA+BC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { Connection } from '@solana/web3.js';
2
+ import { Connection, Signer } from '@solana/web3.js';
3
3
  import { WalletContextState } from '@solana/wallet-adapter-react';
4
4
  export type WalletCall = {
5
5
  method: string;
@@ -10,8 +10,10 @@ type Props = {
10
10
  wallet: WalletContextState;
11
11
  connection: Connection;
12
12
  onSuccess?: OnSuccessMethod;
13
+ partialSigners?: Signer[];
14
+ debugTx?: boolean;
13
15
  };
14
- export declare function useIframeWallet({ wallet, connection, onSuccess }: Props): {
16
+ export declare function useIframeWallet({ wallet, connection, onSuccess, partialSigners, debugTx, }: Props): {
15
17
  IFrameRef: import("react").RefObject<HTMLIFrameElement>;
16
18
  };
17
19
  export {};
@@ -7,7 +7,7 @@ var bs58_1 = tslib_1.__importDefault(require("bs58"));
7
7
  var web3_js_1 = require("@solana/web3.js");
8
8
  function useIframeWallet(_a) {
9
9
  var _this = this;
10
- var wallet = _a.wallet, connection = _a.connection, onSuccess = _a.onSuccess;
10
+ var wallet = _a.wallet, connection = _a.connection, onSuccess = _a.onSuccess, partialSigners = _a.partialSigners, _b = _a.debugTx, debugTx = _b === void 0 ? false : _b;
11
11
  var IFrameRef = (0, react_1.useRef)(null);
12
12
  var sendIFrameMessage = (0, react_1.useCallback)(function (message) {
13
13
  var _a;
@@ -33,7 +33,27 @@ function useIframeWallet(_a) {
33
33
  });
34
34
  });
35
35
  }, [sendIFrameMessage, wallet]);
36
- var handleSignTransaction = (0, react_1.useCallback)(function (_a) {
36
+ var sendTransactionDebug = (0, react_1.useCallback)(function (tx) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
37
+ var signedTx, signature;
38
+ return tslib_1.__generator(this, function (_a) {
39
+ switch (_a.label) {
40
+ case 0:
41
+ if (!wallet.signTransaction)
42
+ throw new Error('Wallet does not support sign transaction');
43
+ return [4 /*yield*/, wallet.signTransaction(tx)];
44
+ case 1:
45
+ signedTx = _a.sent();
46
+ return [4 /*yield*/, connection.sendTransaction(signedTx, [], {
47
+ skipPreflight: true
48
+ })];
49
+ case 2:
50
+ signature = _a.sent();
51
+ sendIFrameMessage(signature);
52
+ return [2 /*return*/];
53
+ }
54
+ });
55
+ }); }, [connection, sendIFrameMessage, wallet]);
56
+ var handleSendTransaction = (0, react_1.useCallback)(function (_a) {
37
57
  var data = _a.data;
38
58
  return tslib_1.__awaiter(_this, void 0, void 0, function () {
39
59
  var tx, _b, signature;
@@ -45,15 +65,30 @@ function useIframeWallet(_a) {
45
65
  return [4 /*yield*/, connection.getLatestBlockhash()];
46
66
  case 1:
47
67
  _b.recentBlockhash = (_c.sent()).blockhash;
48
- return [4 /*yield*/, wallet.sendTransaction(tx, connection)];
68
+ // Partially sign the transaction with any partial signers
69
+ if (partialSigners)
70
+ partialSigners.forEach(function (signer) { return tx.partialSign(signer); });
71
+ if (!debugTx) return [3 /*break*/, 3];
72
+ return [4 /*yield*/, sendTransactionDebug(tx)];
49
73
  case 2:
74
+ _c.sent();
75
+ return [2 /*return*/];
76
+ case 3: return [4 /*yield*/, wallet.sendTransaction(tx, connection)];
77
+ case 4:
50
78
  signature = _c.sent();
51
79
  sendIFrameMessage(signature);
52
80
  return [2 /*return*/];
53
81
  }
54
82
  });
55
83
  });
56
- }, [connection, sendIFrameMessage, wallet]);
84
+ }, [
85
+ connection,
86
+ debugTx,
87
+ partialSigners,
88
+ sendIFrameMessage,
89
+ sendTransactionDebug,
90
+ wallet,
91
+ ]);
57
92
  var handleIframeMessages = (0, react_1.useCallback)(function (_a) {
58
93
  var data = _a.data;
59
94
  return tslib_1.__awaiter(_this, void 0, void 0, function () {
@@ -78,7 +113,7 @@ function useIframeWallet(_a) {
78
113
  case 2:
79
114
  _c.sent();
80
115
  return [3 /*break*/, 7];
81
- case 3: return [4 /*yield*/, handleSignTransaction(parsedData)];
116
+ case 3: return [4 /*yield*/, handleSendTransaction(parsedData)];
82
117
  case 4:
83
118
  _c.sent();
84
119
  return [3 /*break*/, 7];
@@ -106,7 +141,7 @@ function useIframeWallet(_a) {
106
141
  });
107
142
  }, [
108
143
  handleSignMessage,
109
- handleSignTransaction,
144
+ handleSendTransaction,
110
145
  onSuccess,
111
146
  sendIFrameMessage,
112
147
  wallet,
@@ -1 +1 @@
1
- {"version":3,"file":"IFrameWalletConnector.js","sourceRoot":"","sources":["../../src/IFrameWalletConnector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IFrameWalletConnector.js","sourceRoot":"","sources":["../../src/IFrameWalletConnector.ts"],"names":[],"mappings":";;;;AAAA,+BAAqD;AACrD,sDAA0B;AAC1B,2CAAgE;AAehE,SAAgB,eAAe,CAAC,EAMxB;IANR,iBAmHC;QAlHC,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,cAAc,oBAAA,EACd,eAAe,EAAf,OAAO,mBAAG,KAAK,KAAA;IAEf,IAAM,SAAS,GAAG,IAAA,cAAM,EAAoB,IAAI,CAAC,CAAC;IAElD,IAAM,iBAAiB,GAAG,IAAA,mBAAW,EACnC,UAAC,OAAe;;QACd,IAAI,CAAC,CAAA,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,0CAAE,aAAa,CAAA;YACpC,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,SAAS,CAAC,OAAO,CAAC,aAAa,CAAC,WAAW,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,IAAM,iBAAiB,GAAG,IAAA,mBAAW,EACnC,UAAO,EAAkB;YAAjB,IAAI,UAAA;;;;;;wBACV,IAAI,CAAC,MAAM,CAAC,WAAW;4BAAE,sBAAO;wBACd,qBAAM,MAAM,CAAC,WAAW,CAAC,iBAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAA;;wBAAzD,SAAS,GAAG,SAA6C;wBAC/D,iBAAiB,CAAC,iBAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;;;;;KAC7C,EACD,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAC5B,CAAC;IAEF,IAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,UAAO,EAAe;;;;;oBACpB,IAAI,CAAC,MAAM,CAAC,eAAe;wBACzB,MAAM,IAAI,KAAK,CAAC,0CAA0C,CAAC,CAAC;oBAE7C,qBAAM,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC,EAAA;;oBAA3C,QAAQ,GAAG,SAAgC;oBAC/B,qBAAM,UAAU,CAAC,eAAe,CAAC,QAAQ,EAAE,EAAE,EAAE;4BAC/D,aAAa,EAAE,IAAI;yBACpB,CAAC,EAAA;;oBAFI,SAAS,GAAG,SAEhB;oBACF,iBAAiB,CAAC,SAAS,CAAC,CAAC;;;;SAC9B,EACD,CAAC,UAAU,EAAE,iBAAiB,EAAE,MAAM,CAAC,CACxC,CAAC;IAEF,IAAM,qBAAqB,GAAG,IAAA,mBAAW,EACvC,UAAO,EAAkB;YAAjB,IAAI,UAAA;;;;;;wBACJ,EAAE,GAAG,qBAAW,CAAC,IAAI,CAAC,iBAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;wBACjD,KAAA,EAAE,CAAA;wBAAoB,qBAAM,UAAU,CAAC,kBAAkB,EAAE,EAAA;;wBAA3D,GAAG,eAAe,GAAG,CAAC,SAAqC,CAAC,CAAC,SAAS,CAAC;wBAEvE,0DAA0D;wBAC1D,IAAI,cAAc;4BAChB,cAAc,CAAC,OAAO,CAAC,UAAA,MAAM,IAAI,OAAA,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAtB,CAAsB,CAAC,CAAC;6BAEvD,OAAO,EAAP,wBAAO;wBACT,qBAAM,oBAAoB,CAAC,EAAE,CAAC,EAAA;;wBAA9B,SAA8B,CAAC;wBAC/B,sBAAO;4BAGS,qBAAM,MAAM,CAAC,eAAe,CAAC,EAAE,EAAE,UAAU,CAAC,EAAA;;wBAAxD,SAAS,GAAG,SAA4C;wBAC9D,iBAAiB,CAAC,SAAS,CAAC,CAAC;;;;;KAC9B,EACD;QACE,UAAU;QACV,OAAO;QACP,cAAc;QACd,iBAAiB;QACjB,oBAAoB;QACpB,MAAM;KACP,CACF,CAAC;IAEF,IAAM,oBAAoB,GAAG,IAAA,mBAAW,EACtC,UAAO,EAAsB;YAArB,IAAI,UAAA;;;;;;;wBAER,IAAI,CAAC,MAAM;4BAAE,sBAAO;wBAEhB,UAAU,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;wBACjC,IAAI,CAAC,UAAU;4BAAE,sBAAO;wBAEhB,KAAA,UAAU,CAAC,MAAM,CAAA;;iCAClB,aAAa,CAAC,CAAd,wBAAa;iCAIb,iBAAiB,CAAC,CAAlB,wBAAiB;iCAIjB,SAAS,CAAC,CAAV,wBAAS;;;4BAPZ,qBAAM,iBAAiB,CAAC,UAAU,CAAC,EAAA;;wBAAnC,SAAmC,CAAC;wBACpC,wBAAM;4BAGN,qBAAM,qBAAqB,CAAC,UAAU,CAAC,EAAA;;wBAAvC,SAAuC,CAAC;wBACxC,wBAAM;;wBAEQ;4BACd,IAAI,SAAS;gCAAE,SAAS,CAAC,IAAI,CAAC,CAAC;4BAC/B,wBAAM;yBACP;;;wBACQ;4BACP,MAAM,IAAI,KAAK,CACb,oCAA6B,UAAU,CAAC,MAAM,6CAA0C,CACzF,CAAC;yBACH;;;;;wBAGH,OAAO,CAAC,KAAK,CAAC,sBAAsB,EAAE,GAAC,CAAC,CAAC;wBACzC,iBAAiB,CAAC,OAAO,CAAC,CAAC;;;;;;KAE9B,EACD;QACE,iBAAiB;QACjB,qBAAqB;QACrB,SAAS;QACT,iBAAiB;QACjB,MAAM;KACP,CACF,CAAC;IAEF,IAAA,iBAAS,EAAC;QACR,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACnD,MAAM,CAAC,SAAS,GAAG,oBAAoB,CAAC;IAC1C,CAAC,EAAE,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAE3B,OAAO,EAAC,SAAS,WAAA,EAAC,CAAC;AACrB,CAAC;AAnHD,0CAmHC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI;QACF,IAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,MAAM;YAAE,OAAO,IAAI,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO,IAAI,CAAC;QAC3B,OAAO,GAAG,CAAC;KACZ;IAAC,OAAO,CAAC,EAAE;QACV,OAAO,IAAI,CAAC;KACb;AACH,CAAC"}
@@ -6,8 +6,8 @@ type CoinflowIFrameProps = {
6
6
  IFrameRef: React.RefObject<HTMLIFrameElement>;
7
7
  env?: CoinflowEnvs;
8
8
  route: string;
9
- transaction?: Transaction;
10
9
  amount?: number;
10
+ transaction?: Transaction;
11
11
  };
12
12
  export declare function CoinflowIFrame({ publicKey, IFrameRef, env, route, transaction, amount, }: CoinflowIFrameProps): JSX.Element;
13
13
  export {};
@@ -22,7 +22,6 @@ export function CoinflowIFrame(_a) {
22
22
  if (amount) {
23
23
  url.searchParams.append('amount', amount.toString());
24
24
  }
25
- console.log({ url: url });
26
25
  return url;
27
26
  }, [amount, env, publicKey, route, transaction]);
28
27
  return useMemo(function () { return (React.createElement("iframe", { ref: IFrameRef, style: {
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowIFrame.js","sourceRoot":"","sources":["../../src/CoinflowIFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAErC,OAAO,MAAM,MAAM,MAAM,CAAC;AAa1B,SAAS,cAAc,CAAC,GAAkB;IACxC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,uBAAuB,CAAC;IAC3D,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,uBAAuB,CAAC;IAEpD,OAAO,kBAAW,GAAG,mBAAgB,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAOT;QANpB,SAAS,eAAA,EACT,SAAS,eAAA,EACT,GAAG,SAAA,EACH,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,MAAM,YAAA;IAEN,IAAM,GAAG,GAAG,OAAO,CAAC;QAClB,IAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,WAAW,EAAE;YACf,IAAM,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,CAAC,GAAG,CAAC,EAAC,GAAG,KAAA,EAAC,CAAC,CAAC;QACnB,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,OAAO,OAAO,CACZ,cAAM,OAAA,CACJ,gCACE,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;SACf,EACD,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,GAAG,EACf,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,GACnB,CACH,EAXK,CAWL,EACD,CAAC,SAAS,EAAE,GAAG,CAAC,CACjB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CoinflowIFrame.js","sourceRoot":"","sources":["../../src/CoinflowIFrame.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAC,OAAO,EAAC,MAAM,OAAO,CAAC;AAErC,OAAO,MAAM,MAAM,MAAM,CAAC;AAa1B,SAAS,cAAc,CAAC,GAAkB;IACxC,IAAI,CAAC,GAAG,IAAI,GAAG,KAAK,MAAM;QAAE,OAAO,uBAAuB,CAAC;IAC3D,IAAI,GAAG,KAAK,OAAO;QAAE,OAAO,uBAAuB,CAAC;IAEpD,OAAO,kBAAW,GAAG,mBAAgB,CAAC;AACxC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAOT;QANpB,SAAS,eAAA,EACT,SAAS,eAAA,EACT,GAAG,SAAA,EACH,KAAK,WAAA,EACL,WAAW,iBAAA,EACX,MAAM,YAAA;IAEN,IAAM,GAAG,GAAG,OAAO,CAAC;QAClB,IAAM,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;QAChD,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;QAC7C,IAAI,WAAW,EAAE;YACf,IAAM,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;IACb,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC;IAEjD,OAAO,OAAO,CACZ,cAAM,OAAA,CACJ,gCACE,GAAG,EAAE,SAAS,EACd,KAAK,EAAE;YACL,KAAK,EAAE,MAAM;YACb,MAAM,EAAE,MAAM;SACf,EACD,KAAK,EAAC,UAAU,EAChB,WAAW,EAAC,GAAG,EACf,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,GACnB,CACH,EAXK,CAWL,EACD,CAAC,SAAS,EAAE,GAAG,CAAC,CACjB,CAAC;AACJ,CAAC"}
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { WalletContextState } from '@solana/wallet-adapter-react';
3
- import { Connection, Transaction } from '@solana/web3.js';
3
+ import { Connection, Signer, Transaction } from '@solana/web3.js';
4
4
  import { CoinflowEnvs } from './CoinflowIFrame';
5
5
  import { OnSuccessMethod } from './IFrameWalletConnector';
6
6
  type Props = {
@@ -11,6 +11,8 @@ type Props = {
11
11
  env?: CoinflowEnvs;
12
12
  onSuccess?: OnSuccessMethod;
13
13
  transaction?: Transaction;
14
+ partialSigners?: Signer[];
15
+ debugTx?: boolean;
14
16
  };
15
- export declare function CoinflowPurchase({ wallet, merchantId, env, connection, onSuccess, transaction, amount, }: Props): JSX.Element | null;
17
+ export declare function CoinflowPurchase({ wallet, merchantId, env, connection, onSuccess, transaction, amount, partialSigners, debugTx, }: Props): JSX.Element | null;
16
18
  export {};
@@ -2,8 +2,14 @@ import React from 'react';
2
2
  import { CoinflowIFrame } from './CoinflowIFrame';
3
3
  import { useIframeWallet } from './IFrameWalletConnector';
4
4
  export function CoinflowPurchase(_a) {
5
- var wallet = _a.wallet, merchantId = _a.merchantId, env = _a.env, connection = _a.connection, onSuccess = _a.onSuccess, transaction = _a.transaction, amount = _a.amount;
6
- var IFrameRef = useIframeWallet({ wallet: wallet, connection: connection, onSuccess: onSuccess }).IFrameRef;
5
+ var wallet = _a.wallet, merchantId = _a.merchantId, env = _a.env, connection = _a.connection, onSuccess = _a.onSuccess, transaction = _a.transaction, amount = _a.amount, partialSigners = _a.partialSigners, _b = _a.debugTx, debugTx = _b === void 0 ? false : _b;
6
+ var IFrameRef = useIframeWallet({
7
+ wallet: wallet,
8
+ connection: connection,
9
+ onSuccess: onSuccess,
10
+ partialSigners: partialSigners,
11
+ debugTx: debugTx
12
+ }).IFrameRef;
7
13
  if (!wallet.publicKey || !wallet.connected)
8
14
  return null;
9
15
  return (React.createElement(CoinflowIFrame, { publicKey: wallet.publicKey.toString(), IFrameRef: IFrameRef, route: "/purchase/".concat(merchantId), env: env, transaction: transaction, amount: amount }));
@@ -1 +1 @@
1
- {"version":3,"file":"CoinflowPurchase.js","sourceRoot":"","sources":["../../src/CoinflowPurchase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAe,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAkB,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAYzE,MAAM,UAAU,gBAAgB,CAAC,EAQzB;QAPN,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,GAAG,SAAA,EACH,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,WAAW,iBAAA,EACX,MAAM,YAAA;IAEC,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,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EACtC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,oBAAa,UAAU,CAAE,EAChC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,GACd,CACH,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"CoinflowPurchase.js","sourceRoot":"","sources":["../../src/CoinflowPurchase.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAe,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAkB,eAAe,EAAC,MAAM,yBAAyB,CAAC;AAczE,MAAM,UAAU,gBAAgB,CAAC,EAUzB;QATN,MAAM,YAAA,EACN,UAAU,gBAAA,EACV,GAAG,SAAA,EACH,UAAU,gBAAA,EACV,SAAS,eAAA,EACT,WAAW,iBAAA,EACX,MAAM,YAAA,EACN,cAAc,oBAAA,EACd,eAAe,EAAf,OAAO,mBAAG,KAAK,KAAA;IAER,IAAA,SAAS,GAAI,eAAe,CAAC;QAClC,MAAM,QAAA;QACN,UAAU,YAAA;QACV,SAAS,WAAA;QACT,cAAc,gBAAA;QACd,OAAO,SAAA;KACR,CAAC,UANc,CAMb;IAEH,IAAI,CAAC,MAAM,CAAC,SAAS,IAAI,CAAC,MAAM,CAAC,SAAS;QAAE,OAAO,IAAI,CAAC;IAExD,OAAO,CACL,oBAAC,cAAc,IACb,SAAS,EAAE,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EACtC,SAAS,EAAE,SAAS,EACpB,KAAK,EAAE,oBAAa,UAAU,CAAE,EAChC,GAAG,EAAE,GAAG,EACR,WAAW,EAAE,WAAW,EACxB,MAAM,EAAE,MAAM,GACd,CACH,CAAC;AACJ,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { Connection } from '@solana/web3.js';
2
+ import { Connection, Signer } from '@solana/web3.js';
3
3
  import { WalletContextState } from '@solana/wallet-adapter-react';
4
4
  export type WalletCall = {
5
5
  method: string;
@@ -10,8 +10,10 @@ type Props = {
10
10
  wallet: WalletContextState;
11
11
  connection: Connection;
12
12
  onSuccess?: OnSuccessMethod;
13
+ partialSigners?: Signer[];
14
+ debugTx?: boolean;
13
15
  };
14
- export declare function useIframeWallet({ wallet, connection, onSuccess }: Props): {
16
+ export declare function useIframeWallet({ wallet, connection, onSuccess, partialSigners, debugTx, }: Props): {
15
17
  IFrameRef: import("react").RefObject<HTMLIFrameElement>;
16
18
  };
17
19
  export {};
@@ -4,7 +4,7 @@ import base58 from 'bs58';
4
4
  import { Transaction } from '@solana/web3.js';
5
5
  export function useIframeWallet(_a) {
6
6
  var _this = this;
7
- var wallet = _a.wallet, connection = _a.connection, onSuccess = _a.onSuccess;
7
+ var wallet = _a.wallet, connection = _a.connection, onSuccess = _a.onSuccess, partialSigners = _a.partialSigners, _b = _a.debugTx, debugTx = _b === void 0 ? false : _b;
8
8
  var IFrameRef = useRef(null);
9
9
  var sendIFrameMessage = useCallback(function (message) {
10
10
  var _a;
@@ -30,7 +30,27 @@ export function useIframeWallet(_a) {
30
30
  });
31
31
  });
32
32
  }, [sendIFrameMessage, wallet]);
33
- var handleSignTransaction = useCallback(function (_a) {
33
+ var sendTransactionDebug = useCallback(function (tx) { return __awaiter(_this, void 0, void 0, function () {
34
+ var signedTx, signature;
35
+ return __generator(this, function (_a) {
36
+ switch (_a.label) {
37
+ case 0:
38
+ if (!wallet.signTransaction)
39
+ throw new Error('Wallet does not support sign transaction');
40
+ return [4 /*yield*/, wallet.signTransaction(tx)];
41
+ case 1:
42
+ signedTx = _a.sent();
43
+ return [4 /*yield*/, connection.sendTransaction(signedTx, [], {
44
+ skipPreflight: true
45
+ })];
46
+ case 2:
47
+ signature = _a.sent();
48
+ sendIFrameMessage(signature);
49
+ return [2 /*return*/];
50
+ }
51
+ });
52
+ }); }, [connection, sendIFrameMessage, wallet]);
53
+ var handleSendTransaction = useCallback(function (_a) {
34
54
  var data = _a.data;
35
55
  return __awaiter(_this, void 0, void 0, function () {
36
56
  var tx, _b, signature;
@@ -42,15 +62,30 @@ export function useIframeWallet(_a) {
42
62
  return [4 /*yield*/, connection.getLatestBlockhash()];
43
63
  case 1:
44
64
  _b.recentBlockhash = (_c.sent()).blockhash;
45
- return [4 /*yield*/, wallet.sendTransaction(tx, connection)];
65
+ // Partially sign the transaction with any partial signers
66
+ if (partialSigners)
67
+ partialSigners.forEach(function (signer) { return tx.partialSign(signer); });
68
+ if (!debugTx) return [3 /*break*/, 3];
69
+ return [4 /*yield*/, sendTransactionDebug(tx)];
46
70
  case 2:
71
+ _c.sent();
72
+ return [2 /*return*/];
73
+ case 3: return [4 /*yield*/, wallet.sendTransaction(tx, connection)];
74
+ case 4:
47
75
  signature = _c.sent();
48
76
  sendIFrameMessage(signature);
49
77
  return [2 /*return*/];
50
78
  }
51
79
  });
52
80
  });
53
- }, [connection, sendIFrameMessage, wallet]);
81
+ }, [
82
+ connection,
83
+ debugTx,
84
+ partialSigners,
85
+ sendIFrameMessage,
86
+ sendTransactionDebug,
87
+ wallet,
88
+ ]);
54
89
  var handleIframeMessages = useCallback(function (_a) {
55
90
  var data = _a.data;
56
91
  return __awaiter(_this, void 0, void 0, function () {
@@ -75,7 +110,7 @@ export function useIframeWallet(_a) {
75
110
  case 2:
76
111
  _c.sent();
77
112
  return [3 /*break*/, 7];
78
- case 3: return [4 /*yield*/, handleSignTransaction(parsedData)];
113
+ case 3: return [4 /*yield*/, handleSendTransaction(parsedData)];
79
114
  case 4:
80
115
  _c.sent();
81
116
  return [3 /*break*/, 7];
@@ -103,7 +138,7 @@ export function useIframeWallet(_a) {
103
138
  });
104
139
  }, [
105
140
  handleSignMessage,
106
- handleSignTransaction,
141
+ handleSendTransaction,
107
142
  onSuccess,
108
143
  sendIFrameMessage,
109
144
  wallet,
@@ -1 +1 @@
1
- {"version":3,"file":"IFrameWalletConnector.js","sourceRoot":"","sources":["../../src/IFrameWalletConnector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IFrameWalletConnector.js","sourceRoot":"","sources":["../../src/IFrameWalletConnector.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@coinflowlabs/react",
3
- "version": "0.2.0",
3
+ "version": "0.2.2",
4
4
  "description": "React Component for Coinflow Withdraw",
5
5
  "main": "./build/cjs/index.js",
6
6
  "module": "./build/esm/index.js",