@daimo/pay 1.12.0 → 1.12.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.
@@ -1,5 +1,5 @@
1
1
  var name = "@daimo/pay";
2
- var version = "1.12.0";
2
+ var version = "1.12.2";
3
3
  var author = "Daimo";
4
4
  var homepage = "https://pay.daimo.com";
5
5
  var license = "BSD-2-Clause license";
@@ -44,7 +44,7 @@ var keywords = [
44
44
  "crypto"
45
45
  ];
46
46
  var dependencies = {
47
- "@daimo/pay-common": "1.12.0",
47
+ "@daimo/pay-common": "1.12.2",
48
48
  "@rollup/plugin-typescript": "^12.1.2",
49
49
  "@solana/wallet-adapter-base": "^0.9.23",
50
50
  "@solana/wallet-adapter-react": "^0.15.35",
@@ -1,5 +1,5 @@
1
1
  import { http } from 'wagmi';
2
- import { mainnet, base, polygon, optimism, arbitrum, linea, bsc, sepolia, baseSepolia, worldchain, mantle, celo } from 'wagmi/chains';
2
+ import { mainnet, base, polygon, optimism, arbitrum, linea, bsc, sepolia, worldchain, mantle, celo } from 'wagmi/chains';
3
3
  import defaultConnectors from './defaultConnectors.js';
4
4
 
5
5
  // TODO: Move these to a provider rather than global variable
@@ -14,7 +14,6 @@ const REQUIRED_CHAINS = [
14
14
  linea,
15
15
  bsc,
16
16
  sepolia,
17
- baseSepolia,
18
17
  worldchain,
19
18
  mantle,
20
19
  celo,
@@ -1 +1 @@
1
- {"version":3,"file":"defaultConfig.js","sources":["../../src/defaultConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAqBA;AACA,IAAI,aAAqB,CAAC;MAEb,UAAU,GAAG,MAAM,cAAc;AAgBjC,MAAA,eAAe,GAAqC;IAC/D,OAAO;IACP,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,GAAG;IACH,OAAO;IACP,WAAW;IACX,UAAU;IACV,MAAM;IACN,IAAI;EACJ;AAEF;AACA,MAAM,aAAa,GAAG,CAAC,EACrB,OAAO,GAAG,WAAW,EACrB,OAAO,EACP,cAAc,EACd,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,MAAM,GAAG,eAAe,EACxB,MAAM,EACN,GAAG,KAAK,EACW,KAA4B;IAC/C,aAAa,GAAG,OAAO,CAAC;AAGxB,IAAA,MAAM,YAAY,GAAwB,CAAC,GAAG,MAAM,CAAC,CAAC;AACtD,IAAA,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE;QACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACjC,YAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;KACF;IAED,MAAM,gBAAgB,GAAyC,EAAE,CAAC;AAClE,IAAA,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;QAChC,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE;;YAElC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;SACrC;aAAM;AACL,YAAA,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACzD;KACF;AAED,IAAA,MAAM,UAAU,GACd,KAAK,EAAE,UAAU;AACjB,QAAA,iBAAiB,CAAC;AAChB,YAAA,GAAG,EAAE;AACH,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,WAAW,EAAE,cAAc;AAC3B,gBAAA,GAAG,EAAE,MAAM;AACZ,aAAA;YACD,wBAAwB;YACxB,oBAAoB;AACrB,SAAA,CAAC,CAAC;AAEL,IAAA,MAAM,MAAM,GAAqC;AAC/C,QAAA,GAAG,KAAK;AACR,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,UAAU,EAAE,gBAAgB;QAC5B,UAAU;KACX,CAAC;AAEF,IAAA,OAAO,MAAM,CAAC;AAChB;;;;"}
1
+ {"version":3,"file":"defaultConfig.js","sources":["../../src/defaultConfig.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;AAoBA;AACA,IAAI,aAAqB,CAAC;MAEb,UAAU,GAAG,MAAM,cAAc;AAgBjC,MAAA,eAAe,GAAqC;IAC/D,OAAO;IACP,IAAI;IACJ,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,KAAK;IACL,GAAG;IACH,OAAO;IACP,UAAU;IACV,MAAM;IACN,IAAI;EACJ;AAEF;AACA,MAAM,aAAa,GAAG,CAAC,EACrB,OAAO,GAAG,WAAW,EACrB,OAAO,EACP,cAAc,EACd,MAAM,EACN,wBAAwB,EACxB,oBAAoB,EACpB,MAAM,GAAG,eAAe,EACxB,MAAM,EACN,GAAG,KAAK,EACW,KAA4B;IAC/C,aAAa,GAAG,OAAO,CAAC;AAGxB,IAAA,MAAM,YAAY,GAAwB,CAAC,GAAG,MAAM,CAAC,CAAC;AACtD,IAAA,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE;QACnC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE;AACjC,YAAA,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SAC1B;KACF;IAED,MAAM,gBAAgB,GAAyC,EAAE,CAAC;AAClE,IAAA,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE;QAChC,IAAI,CAAC,KAAK,EAAE,UAAU,GAAG,KAAK,CAAC,EAAE,CAAC,EAAE;;YAElC,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC;SACrC;aAAM;AACL,YAAA,gBAAgB,CAAC,KAAK,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;SACzD;KACF;AAED,IAAA,MAAM,UAAU,GACd,KAAK,EAAE,UAAU;AACjB,QAAA,iBAAiB,CAAC;AAChB,YAAA,GAAG,EAAE;AACH,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,WAAW,EAAE,cAAc;AAC3B,gBAAA,GAAG,EAAE,MAAM;AACZ,aAAA;YACD,wBAAwB;YACxB,oBAAoB;AACrB,SAAA,CAAC,CAAC;AAEL,IAAA,MAAM,MAAM,GAAqC;AAC/C,QAAA,GAAG,KAAK;AACR,QAAA,MAAM,EAAE,YAAY;AACpB,QAAA,UAAU,EAAE,gBAAgB;QAC5B,UAAU;KACX,CAAC;AAEF,IAAA,OAAO,MAAM,CAAC;AAChB;;;;"}
@@ -1,10 +1,23 @@
1
1
  import { supportedChains } from '@daimo/pay-common';
2
- import { useState, useEffect } from 'react';
2
+ import { useState, useMemo, useEffect } from 'react';
3
3
 
4
4
  /** Wallet payment options. User picks one. */
5
5
  function useWalletPaymentOptions({ trpc, address, usdRequired, destChainId, preferredChains, preferredTokens, evmChains, isDepositFlow, log, }) {
6
6
  const [options, setOptions] = useState(null);
7
7
  const [isLoading, setIsLoading] = useState(false);
8
+ // Memoize array dependencies to prevent unnecessary re-fetches
9
+ // TODO: this is an ugly way to handle polling/refresh
10
+ // Notice the load-bearing JSON.stringify() to prevent a visible infinite
11
+ // refresh glitch on the SelectMethod screen. Replace this useEffect().
12
+ const memoizedPreferredChains = useMemo(() => preferredChains,
13
+ // eslint-disable-next-line react-hooks/exhaustive-deps
14
+ [JSON.stringify(preferredChains)]);
15
+ const memoizedPreferredTokens = useMemo(() => preferredTokens,
16
+ // eslint-disable-next-line react-hooks/exhaustive-deps
17
+ [JSON.stringify(preferredTokens)]);
18
+ const memoizedEvmChains = useMemo(() => evmChains,
19
+ // eslint-disable-next-line react-hooks/exhaustive-deps
20
+ [JSON.stringify(evmChains)]);
8
21
  useEffect(() => {
9
22
  const refreshWalletPaymentOptions = async () => {
10
23
  if (address == null || usdRequired == null || destChainId == null)
@@ -17,9 +30,9 @@ function useWalletPaymentOptions({ trpc, address, usdRequired, destChainId, pref
17
30
  // API expects undefined for deposit flow.
18
31
  usdRequired: isDepositFlow ? undefined : usdRequired,
19
32
  destChainId,
20
- preferredChains,
21
- preferredTokens,
22
- evmChains,
33
+ preferredChains: memoizedPreferredChains,
34
+ preferredTokens: memoizedPreferredTokens,
35
+ evmChains: memoizedEvmChains,
23
36
  });
24
37
  // Filter out chains we don't support yet.
25
38
  const isSupported = (o) => supportedChains.some((c) => c.chainId === o.balance.token.chainId);
@@ -45,9 +58,9 @@ function useWalletPaymentOptions({ trpc, address, usdRequired, destChainId, pref
45
58
  usdRequired,
46
59
  destChainId,
47
60
  isDepositFlow,
48
- preferredChains,
49
- preferredTokens,
50
- evmChains,
61
+ memoizedPreferredChains,
62
+ memoizedPreferredTokens,
63
+ memoizedEvmChains,
51
64
  ]);
52
65
  return {
53
66
  options,
@@ -1 +1 @@
1
- {"version":3,"file":"useWalletPaymentOptions.js","sources":["../../../src/hooks/useWalletPaymentOptions.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;AACM,SAAU,uBAAuB,CAAC,EACtC,IAAI,EACJ,OAAO,EACP,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,SAAS,EACT,aAAa,EACb,GAAG,GAWJ,EAAA;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA+B,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAElD,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,2BAA2B,GAAG,YAAW;YAC7C,IAAI,OAAO,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI;gBAAE,OAAO;YAE1E,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,CAAC;AACnB,YAAA,IAAI;gBACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;AAC1D,oBAAA,YAAY,EAAE,OAAO;;oBAErB,WAAW,EAAE,aAAa,GAAG,SAAS,GAAG,WAAW;oBACpD,WAAW;oBACX,eAAe;oBACf,eAAe;oBACf,SAAS;AACV,iBAAA,CAAC,CAAC;;AAGH,gBAAA,MAAM,WAAW,GAAG,CAAC,CAAsB,KACzC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrE,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACvD,IAAI,eAAe,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE;AAC9C,oBAAA,GAAG,CACD,CAAA,mBAAA,EAAsB,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAA,+BAAA,EAAkC,OAAO,CAAA,CAAE,CAC5G,CAAC;iBACH;gBAED,UAAU,CAAC,eAAe,CAAC,CAAC;aAC7B;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;oBAAS;gBACR,YAAY,CAAC,KAAK,CAAC,CAAC;aACrB;AACH,SAAC,CAAC;AAEF,QAAA,IAAI,OAAO,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE;AACjE,YAAA,2BAA2B,EAAE,CAAC;SAC/B;;AAEH,KAAC,EAAE;QACD,OAAO;QACP,WAAW;QACX,WAAW;QACX,aAAa;QACb,eAAe;QACf,eAAe;QACf,SAAS;AACV,KAAA,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,SAAS;KACV,CAAC;AACJ;;;;"}
1
+ {"version":3,"file":"useWalletPaymentOptions.js","sources":["../../../src/hooks/useWalletPaymentOptions.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAIA;AACM,SAAU,uBAAuB,CAAC,EACtC,IAAI,EACJ,OAAO,EACP,WAAW,EACX,WAAW,EACX,eAAe,EACf,eAAe,EACf,SAAS,EACT,aAAa,EACb,GAAG,GAWJ,EAAA;IACC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAA+B,IAAI,CAAC,CAAC;IAC3E,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;;;;;AAMlD,IAAA,MAAM,uBAAuB,GAAG,OAAO,CACrC,MAAM,eAAe;;IAErB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAClC,CAAC;AACF,IAAA,MAAM,uBAAuB,GAAG,OAAO,CACrC,MAAM,eAAe;;IAErB,CAAC,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,CAAC,CAClC,CAAC;AACF,IAAA,MAAM,iBAAiB,GAAG,OAAO,CAC/B,MAAM,SAAS;;IAEf,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAC5B,CAAC;IAEF,SAAS,CAAC,MAAK;AACb,QAAA,MAAM,2BAA2B,GAAG,YAAW;YAC7C,IAAI,OAAO,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI;gBAAE,OAAO;YAE1E,UAAU,CAAC,IAAI,CAAC,CAAC;YACjB,YAAY,CAAC,IAAI,CAAC,CAAC;AACnB,YAAA,IAAI;gBACF,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC;AAC1D,oBAAA,YAAY,EAAE,OAAO;;oBAErB,WAAW,EAAE,aAAa,GAAG,SAAS,GAAG,WAAW;oBACpD,WAAW;AACX,oBAAA,eAAe,EAAE,uBAAuB;AACxC,oBAAA,eAAe,EAAE,uBAAuB;AACxC,oBAAA,SAAS,EAAE,iBAAiB;AAC7B,iBAAA,CAAC,CAAC;;AAGH,gBAAA,MAAM,WAAW,GAAG,CAAC,CAAsB,KACzC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBACrE,MAAM,eAAe,GAAG,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;gBACvD,IAAI,eAAe,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,EAAE;AAC9C,oBAAA,GAAG,CACD,CAAA,mBAAA,EAAsB,UAAU,CAAC,MAAM,GAAG,eAAe,CAAC,MAAM,CAAA,+BAAA,EAAkC,OAAO,CAAA,CAAE,CAC5G,CAAC;iBACH;gBAED,UAAU,CAAC,eAAe,CAAC,CAAC;aAC7B;YAAC,OAAO,KAAK,EAAE;AACd,gBAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aACtB;oBAAS;gBACR,YAAY,CAAC,KAAK,CAAC,CAAC;aACrB;AACH,SAAC,CAAC;AAEF,QAAA,IAAI,OAAO,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,IAAI,WAAW,IAAI,IAAI,EAAE;AACjE,YAAA,2BAA2B,EAAE,CAAC;SAC/B;;AAEH,KAAC,EAAE;QACD,OAAO;QACP,WAAW;QACX,WAAW;QACX,aAAa;QACb,uBAAuB;QACvB,uBAAuB;QACvB,iBAAiB;AAClB,KAAA,CAAC,CAAC;IAEH,OAAO;QACL,OAAO;QACP,SAAS;KACV,CAAC;AACJ;;;;"}
@@ -1,5 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { useState, useEffect, useCallback } from 'react';
2
+ import { getOrderSourceChainId, DaimoPayEventType, writeDaimoPayOrderID, getDaimoPayOrderView, getOrderDestChainId, assertNotNull } from '@daimo/pay-common';
3
+ import { useState, useEffect, useRef, useCallback } from 'react';
3
4
  import ThemedButton from '../components/Common/ThemedButton/index.js';
4
5
  import { DaimoPayButtonInner } from '../components/DaimoPayButton/index.js';
5
6
  import { ROUTES } from '../constants/routes.js';
@@ -20,6 +21,8 @@ function WorldPayButtonCustom(props) {
20
21
  const context = usePayContext();
21
22
  const { log } = context;
22
23
  const [isMiniKitReady, setIsMiniKitReady] = useState(false);
24
+ // Payment events: call these three event handlers.
25
+ const { onPaymentStarted, onPaymentCompleted, onPaymentBounced } = props;
23
26
  useEffect(() => {
24
27
  log("[WORLD] Installing MiniKit");
25
28
  const result = MiniKit.install();
@@ -33,6 +36,57 @@ function WorldPayButtonCustom(props) {
33
36
  pay.createPreviewOrder(props);
34
37
  // eslint-disable-next-line react-hooks/exhaustive-deps
35
38
  }, [pay, JSON.stringify(props)]);
39
+ // Emit onPaymentStart handler when payment state changes to payment_started
40
+ const sentStart = useRef(false);
41
+ useEffect(() => {
42
+ if (sentStart.current)
43
+ return;
44
+ if (pay.paymentState !== "payment_started")
45
+ return;
46
+ // TODO: Populate source payment details immediately when the user pays.
47
+ // Use this hack because source chain id is not immediately populated when
48
+ // payment_started
49
+ const sourceChainId = getOrderSourceChainId(pay.order);
50
+ if (sourceChainId == null)
51
+ return;
52
+ sentStart.current = true;
53
+ onPaymentStarted?.({
54
+ type: DaimoPayEventType.PaymentStarted,
55
+ paymentId: writeDaimoPayOrderID(pay.order.id),
56
+ chainId: sourceChainId,
57
+ txHash: pay.order.sourceInitiateTxHash,
58
+ payment: getDaimoPayOrderView(pay.order),
59
+ });
60
+ // eslint-disable-next-line react-hooks/exhaustive-deps
61
+ }, [pay.order, pay.paymentState]);
62
+ // Emit onPaymentComplete or onPaymentBounced handler when payment state
63
+ // changes to payment_completed or payment_bounced
64
+ const sentComplete = useRef(false);
65
+ useEffect(() => {
66
+ if (sentComplete.current)
67
+ return;
68
+ if (pay.paymentState !== "payment_completed" &&
69
+ pay.paymentState !== "payment_bounced")
70
+ return;
71
+ sentComplete.current = true;
72
+ const eventType = pay.paymentState === "payment_completed"
73
+ ? DaimoPayEventType.PaymentCompleted
74
+ : DaimoPayEventType.PaymentBounced;
75
+ const event = {
76
+ type: eventType,
77
+ paymentId: writeDaimoPayOrderID(pay.order.id),
78
+ chainId: getOrderDestChainId(pay.order),
79
+ txHash: assertNotNull(pay.order.destFastFinishTxHash ?? pay.order.destClaimTxHash, `[WORLD PAY BUTTON] dest tx hash null on order ${pay.order.id} when intent status is ${pay.order.intentStatus}`),
80
+ payment: getDaimoPayOrderView(pay.order),
81
+ };
82
+ if (pay.paymentState === "payment_completed") {
83
+ onPaymentCompleted?.(event);
84
+ }
85
+ else if (pay.paymentState === "payment_bounced") {
86
+ onPaymentBounced?.(event);
87
+ }
88
+ // eslint-disable-next-line react-hooks/exhaustive-deps
89
+ }, [pay.order, pay.paymentState]);
36
90
  const showSpinner = useCallback(() => {
37
91
  log(`[WORLD] showing spinner ${pay.order?.id}`);
38
92
  const modalOptions = {
@@ -1 +1 @@
1
- {"version":3,"file":"WorldPayButton.js","sources":["../../../src/world-mini-app/WorldPayButton.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"WorldPayButton.js","sources":["../../../src/world-mini-app/WorldPayButton.tsx"],"sourcesContent":[null],"names":["_jsx"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { DaimoPayUserMetadata } from "@daimo/pay-common";
1
+ import { DaimoPayUserMetadata, PaymentBouncedEvent, PaymentCompletedEvent, PaymentStartedEvent } from "@daimo/pay-common";
2
2
  import { ReactElement } from "react";
3
3
  import { Address, Hex } from "viem";
4
4
  import { CustomTheme, Mode, Theme } from "../types";
@@ -46,6 +46,12 @@ export type WorldPayButtonPaymentProps = {
46
46
  refundAddress?: Address;
47
47
  };
48
48
  type WorldPayButtonCommonProps = WorldPayButtonPaymentProps & {
49
+ /** Called when user sends payment and transaction is seen on chain */
50
+ onPaymentStarted?: (event: PaymentStartedEvent) => void;
51
+ /** Called when destination transfer or call completes successfully */
52
+ onPaymentCompleted?: (event: PaymentCompletedEvent) => void;
53
+ /** Called when destination call reverts and funds are refunded */
54
+ onPaymentBounced?: (event: PaymentBouncedEvent) => void;
49
55
  /** Automatically close the modal after a successful payment. */
50
56
  closeOnSuccess?: boolean;
51
57
  /** Reset the payment after a successful payment. */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@daimo/pay",
3
3
  "private": false,
4
- "version": "1.12.0",
4
+ "version": "1.12.2",
5
5
  "author": "Daimo",
6
6
  "homepage": "https://pay.daimo.com",
7
7
  "license": "BSD-2-Clause license",
@@ -46,7 +46,7 @@
46
46
  "crypto"
47
47
  ],
48
48
  "dependencies": {
49
- "@daimo/pay-common": "1.12.0",
49
+ "@daimo/pay-common": "1.12.2",
50
50
  "@rollup/plugin-typescript": "^12.1.2",
51
51
  "@solana/wallet-adapter-base": "^0.9.23",
52
52
  "@solana/wallet-adapter-react": "^0.15.35",