@daimo/pay 1.17.3 → 1.17.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/build/package.json.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
var name = "@daimo/pay";
|
|
2
|
-
var version = "1.17.
|
|
2
|
+
var version = "1.17.4";
|
|
3
3
|
var author = "Daimo";
|
|
4
4
|
var homepage = "https://pay.daimo.com";
|
|
5
5
|
var license = "BSD-2-Clause license";
|
|
@@ -31,7 +31,7 @@ var scripts = {
|
|
|
31
31
|
lint: "eslint 'src/**/*.{js,jsx,ts,tsx}' --max-warnings=0"
|
|
32
32
|
};
|
|
33
33
|
var dependencies = {
|
|
34
|
-
"@daimo/pay-common": "1.17.
|
|
34
|
+
"@daimo/pay-common": "1.17.4",
|
|
35
35
|
"@solana/wallet-adapter-base": "^0.9.23",
|
|
36
36
|
"@solana/wallet-adapter-react": "^0.15.35",
|
|
37
37
|
"@solana/web3.js": "^1.95.4",
|
|
@@ -119,6 +119,15 @@ function WorldPayButtonCustom(props) {
|
|
|
119
119
|
);
|
|
120
120
|
return;
|
|
121
121
|
}
|
|
122
|
+
if (pay.paymentState === "error") {
|
|
123
|
+
log("[WORLD] showing payment error page");
|
|
124
|
+
const modalOptions = {
|
|
125
|
+
closeOnSuccess: props.closeOnSuccess,
|
|
126
|
+
resetOnSuccess: props.resetOnSuccess
|
|
127
|
+
};
|
|
128
|
+
context.showPayment(modalOptions);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
122
131
|
if (["payment_started", "payment_completed", "payment_bounced"].includes(
|
|
123
132
|
pay.paymentState
|
|
124
133
|
)) {
|
|
@@ -138,7 +147,15 @@ function WorldPayButtonCustom(props) {
|
|
|
138
147
|
log(`[WORLD] triggering payment search on ${pay.order?.id}`);
|
|
139
148
|
pay.paySource();
|
|
140
149
|
showSpinner();
|
|
141
|
-
}, [
|
|
150
|
+
}, [
|
|
151
|
+
pay,
|
|
152
|
+
showSpinner,
|
|
153
|
+
context.trpc,
|
|
154
|
+
isMiniKitReady,
|
|
155
|
+
log,
|
|
156
|
+
props.closeOnSuccess,
|
|
157
|
+
props.resetOnSuccess
|
|
158
|
+
]);
|
|
142
159
|
return props.children({ show, isMiniKitReady });
|
|
143
160
|
}
|
|
144
161
|
WorldPayButtonCustom.displayName = "WorldPayButton.Custom";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorldPayButton.js","sources":["../../../src/world-mini-app/WorldPayButton.tsx"],"sourcesContent":["import {\n assertNotNull,\n DaimoPayEventType,\n DaimoPayUserMetadata,\n getDaimoPayOrderView,\n getOrderDestChainId,\n getOrderSourceChainId,\n PaymentBouncedEvent,\n PaymentCompletedEvent,\n PaymentStartedEvent,\n writeDaimoPayOrderID,\n} from \"@daimo/pay-common\";\nimport { ReactElement, useCallback, useEffect, useRef, useState } from \"react\";\nimport { Address, Hex } from \"viem\";\nimport ThemedButton, {\n ThemeContainer,\n} from \"../components/Common/ThemedButton\";\nimport { DaimoPayButtonInner } from \"../components/DaimoPayButton\";\nimport { ROUTES } from \"../constants/routes\";\nimport { useDaimoPay } from \"../hooks/useDaimoPay\";\nimport { usePayContext } from \"../hooks/usePayContext\";\nimport { ResetContainer } from \"../styles\";\nimport { CustomTheme, Mode, Theme } from \"../types\";\nimport { promptWorldcoinPayment } from \"./promptWorldPayment\";\n\nimport { MiniKit } from \"@worldcoin/minikit-js\";\nimport useIsMobile from \"../hooks/useIsMobile\";\n\nexport type WorldPayButtonPaymentProps =\n | {\n /**\n * Your public app ID. Specify either (payId) or (appId + parameters).\n */\n appId: string;\n /**\n * Destination chain ID.\n */\n toChain: number;\n /**\n * The destination token to send, completing payment. Must be an ERC-20\n * token or the zero address, indicating the native token / ETH.\n */\n toToken: Address;\n /**\n * The amount of destination token to send (transfer or approve).\n */\n toUnits: string;\n /**\n * The destination address to transfer to, or contract to call.\n */\n toAddress: Address;\n /**\n * Optional calldata to call an arbitrary function on `toAddress`.\n */\n toCallData?: Hex;\n /**\n * The intent verb, such as \"Pay\", \"Deposit\", or \"Purchase\".\n */\n intent?: string;\n /**\n * External ID. E.g. a correlation ID.\n */\n externalId?: string;\n /**\n * Developer metadata. E.g. correlation ID.\n * */\n metadata?: DaimoPayUserMetadata;\n /**\n * The address to refund to if the payment bounces.\n */\n refundAddress?: Address;\n }\n | {\n /** The payment ID, generated via the Daimo Pay API. Replaces params above. */\n payId: string;\n };\n\ntype WorldPayButtonCommonProps = WorldPayButtonPaymentProps & {\n /** Called when user sends payment and transaction is seen on chain */\n onPaymentStarted?: (event: PaymentStartedEvent) => void;\n /** Called when destination transfer or call completes successfully */\n onPaymentCompleted?: (event: PaymentCompletedEvent) => void;\n /** Called when destination call reverts and funds are refunded */\n onPaymentBounced?: (event: PaymentBouncedEvent) => void;\n /** Open the modal by default. */\n defaultOpen?: boolean;\n /** Automatically close the modal after a successful payment. */\n closeOnSuccess?: boolean;\n /** Reset the payment after a successful payment. */\n resetOnSuccess?: boolean;\n};\n\nexport type WorldPayButtonProps = WorldPayButtonCommonProps & {\n /** Light mode, dark mode, or auto. */\n mode?: Mode;\n /** Named theme. See docs for options. */\n theme?: Theme;\n /** Custom theme. See docs for options. */\n customTheme?: CustomTheme;\n /** Disable interaction. */\n disabled?: boolean;\n};\n\nexport type WorldPayButtonCustomProps = WorldPayButtonCommonProps & {\n children: (renderProps: {\n show: () => void;\n isMiniKitReady: boolean;\n }) => ReactElement;\n};\n\nexport function WorldPayButton(props: WorldPayButtonProps) {\n const { theme, mode, customTheme } = props;\n const context = usePayContext();\n\n return (\n <WorldPayButtonCustom {...props}>\n {({ show, isMiniKitReady }) => (\n <ResetContainer\n $useTheme={theme ?? context.theme}\n $useMode={mode ?? context.mode}\n $customTheme={customTheme ?? context.customTheme}\n >\n <ThemeContainer\n onClick={props.disabled || !isMiniKitReady ? undefined : show}\n >\n <ThemedButton>\n <DaimoPayButtonInner />\n </ThemedButton>\n </ThemeContainer>\n </ResetContainer>\n )}\n </WorldPayButtonCustom>\n );\n}\n\nfunction WorldPayButtonCustom(props: WorldPayButtonCustomProps) {\n const pay = useDaimoPay();\n const context = usePayContext();\n const { paymentState, log } = context;\n const [isMiniKitReady, setIsMiniKitReady] = useState(false);\n const { isIOS } = useIsMobile();\n\n // Payment events: call these three event handlers.\n const { onPaymentStarted, onPaymentCompleted, onPaymentBounced } = props;\n\n // Install Minikit if not already installed\n useEffect(() => {\n log(\"[WORLD] Installing MiniKit\");\n const result = MiniKit.install();\n log(\"[WORLD] MiniKit install result\", result);\n log(\"[WORLD] MiniKit is installed\", MiniKit.isInstalled());\n setIsMiniKitReady(MiniKit.isInstalled());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Set the payParams\n useEffect(() => {\n if (\"payId\" in props) {\n log(\"[WORLD] Using payId from props: \", props.payId);\n paymentState.setPayId(props.payId);\n } else {\n log(\"[WORLD] Creating preview order\");\n paymentState.setPayParams(props);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(props || {})]);\n\n // Set the showContactSupport flag\n useEffect(() => {\n // Links are broken on iOS in World App, so hide the contact support button\n context.setShowContactSupport(!isIOS);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isIOS]);\n\n // Open the modal by default if the defaultOpen prop is true\n const hasAutoOpened = useRef(false);\n useEffect(() => {\n if (!props.defaultOpen || hasAutoOpened.current) return;\n if (pay.order == null) return;\n show();\n hasAutoOpened.current = true;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pay.order, props.defaultOpen, hasAutoOpened.current]);\n\n // Emit onPaymentStart handler when payment state changes to payment_started\n const sentStart = useRef(false);\n useEffect(() => {\n if (sentStart.current) return;\n if (pay.paymentState !== \"payment_started\") return;\n\n // TODO: Populate source payment details immediately when the user pays.\n // Use this hack because source chain id is not immediately populated when\n // payment_started\n const sourceChainId = getOrderSourceChainId(pay.order);\n if (sourceChainId == null) return;\n\n sentStart.current = true;\n onPaymentStarted?.({\n type: DaimoPayEventType.PaymentStarted,\n paymentId: writeDaimoPayOrderID(pay.order.id),\n chainId: sourceChainId,\n txHash: pay.order.sourceInitiateTxHash,\n payment: getDaimoPayOrderView(pay.order),\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pay.order, pay.paymentState]);\n\n // Emit onPaymentComplete or onPaymentBounced handler when payment state\n // changes to payment_completed or payment_bounced\n const sentComplete = useRef(false);\n useEffect(() => {\n if (sentComplete.current) return;\n if (\n pay.paymentState !== \"payment_completed\" &&\n pay.paymentState !== \"payment_bounced\"\n )\n return;\n\n sentComplete.current = true;\n const eventType =\n pay.paymentState === \"payment_completed\"\n ? DaimoPayEventType.PaymentCompleted\n : DaimoPayEventType.PaymentBounced;\n const event = {\n type: eventType,\n paymentId: writeDaimoPayOrderID(pay.order.id),\n chainId: getOrderDestChainId(pay.order),\n txHash: assertNotNull(\n pay.order.destFastFinishTxHash ?? pay.order.destClaimTxHash,\n `[WORLD PAY BUTTON] dest tx hash null on order ${pay.order.id} when intent status is ${pay.order.intentStatus}`,\n ),\n payment: getDaimoPayOrderView(pay.order),\n };\n\n if (pay.paymentState === \"payment_completed\") {\n onPaymentCompleted?.(event as PaymentCompletedEvent);\n } else if (pay.paymentState === \"payment_bounced\") {\n onPaymentBounced?.(event as PaymentBouncedEvent);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pay.order, pay.paymentState]);\n\n // Navigate to the confirmation page in the modal to show the spinner\n const showSpinner = useCallback(() => {\n log(`[WORLD] showing spinner ${pay.order?.id}`);\n const modalOptions = {\n closeOnSuccess: props.closeOnSuccess,\n resetOnSuccess: props.resetOnSuccess,\n };\n context.showPayment(modalOptions);\n context.setRoute(ROUTES.CONFIRMATION);\n }, [context, pay.order?.id, log, props.closeOnSuccess, props.resetOnSuccess]);\n\n // Show the Worldcoin payment drawer and pop open the Daimo Pay modal\n const show = useCallback(async () => {\n log(`[WORLD] showing payment ${pay.order?.id}`);\n if (!isMiniKitReady) {\n console.error(\n \"[WORLD] MiniKit is not installed. Please install @worldcoin/minikit-js to use this feature.\",\n );\n return;\n }\n\n if (\n [\"payment_started\", \"payment_completed\", \"payment_bounced\"].includes(\n pay.paymentState,\n )\n ) {\n showSpinner();\n return;\n }\n\n log(`[WORLD] hydrating order ${pay.order?.id}`);\n const { order } = await pay.hydrateOrder();\n log(\n `[WORLD] hydrated order ${pay.order?.id}. Prompting payment with MiniKit`,\n );\n const payRes = await promptWorldcoinPayment(order, context.trpc);\n if (payRes == null || payRes.finalPayload.status == \"error\") {\n log(\"[WORLD] Failed to prompt Worldcoin payment: \", payRes);\n return;\n }\n\n log(`[WORLD] triggering payment search on ${pay.order?.id}`);\n pay.paySource();\n\n // Optimistically assume the source payment is correct and show the\n // confirmation spinner\n showSpinner();\n }, [pay, showSpinner, context.trpc, isMiniKitReady, log]);\n\n return props.children({ show, isMiniKitReady });\n}\n\nWorldPayButtonCustom.displayName = \"WorldPayButton.Custom\";\n\nWorldPayButton.Custom = WorldPayButtonCustom;\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorldPayButton.js","sources":["../../../src/world-mini-app/WorldPayButton.tsx"],"sourcesContent":["import {\n assertNotNull,\n DaimoPayEventType,\n DaimoPayUserMetadata,\n getDaimoPayOrderView,\n getOrderDestChainId,\n getOrderSourceChainId,\n PaymentBouncedEvent,\n PaymentCompletedEvent,\n PaymentStartedEvent,\n writeDaimoPayOrderID,\n} from \"@daimo/pay-common\";\nimport { ReactElement, useCallback, useEffect, useRef, useState } from \"react\";\nimport { Address, Hex } from \"viem\";\nimport ThemedButton, {\n ThemeContainer,\n} from \"../components/Common/ThemedButton\";\nimport { DaimoPayButtonInner } from \"../components/DaimoPayButton\";\nimport { ROUTES } from \"../constants/routes\";\nimport { useDaimoPay } from \"../hooks/useDaimoPay\";\nimport { usePayContext } from \"../hooks/usePayContext\";\nimport { ResetContainer } from \"../styles\";\nimport { CustomTheme, Mode, Theme } from \"../types\";\nimport { promptWorldcoinPayment } from \"./promptWorldPayment\";\n\nimport { MiniKit } from \"@worldcoin/minikit-js\";\nimport useIsMobile from \"../hooks/useIsMobile\";\n\nexport type WorldPayButtonPaymentProps =\n | {\n /**\n * Your public app ID. Specify either (payId) or (appId + parameters).\n */\n appId: string;\n /**\n * Destination chain ID.\n */\n toChain: number;\n /**\n * The destination token to send, completing payment. Must be an ERC-20\n * token or the zero address, indicating the native token / ETH.\n */\n toToken: Address;\n /**\n * The amount of destination token to send (transfer or approve).\n */\n toUnits: string;\n /**\n * The destination address to transfer to, or contract to call.\n */\n toAddress: Address;\n /**\n * Optional calldata to call an arbitrary function on `toAddress`.\n */\n toCallData?: Hex;\n /**\n * The intent verb, such as \"Pay\", \"Deposit\", or \"Purchase\".\n */\n intent?: string;\n /**\n * External ID. E.g. a correlation ID.\n */\n externalId?: string;\n /**\n * Developer metadata. E.g. correlation ID.\n * */\n metadata?: DaimoPayUserMetadata;\n /**\n * The address to refund to if the payment bounces.\n */\n refundAddress?: Address;\n }\n | {\n /** The payment ID, generated via the Daimo Pay API. Replaces params above. */\n payId: string;\n };\n\ntype WorldPayButtonCommonProps = WorldPayButtonPaymentProps & {\n /** Called when user sends payment and transaction is seen on chain */\n onPaymentStarted?: (event: PaymentStartedEvent) => void;\n /** Called when destination transfer or call completes successfully */\n onPaymentCompleted?: (event: PaymentCompletedEvent) => void;\n /** Called when destination call reverts and funds are refunded */\n onPaymentBounced?: (event: PaymentBouncedEvent) => void;\n /** Open the modal by default. */\n defaultOpen?: boolean;\n /** Automatically close the modal after a successful payment. */\n closeOnSuccess?: boolean;\n /** Reset the payment after a successful payment. */\n resetOnSuccess?: boolean;\n};\n\nexport type WorldPayButtonProps = WorldPayButtonCommonProps & {\n /** Light mode, dark mode, or auto. */\n mode?: Mode;\n /** Named theme. See docs for options. */\n theme?: Theme;\n /** Custom theme. See docs for options. */\n customTheme?: CustomTheme;\n /** Disable interaction. */\n disabled?: boolean;\n};\n\nexport type WorldPayButtonCustomProps = WorldPayButtonCommonProps & {\n children: (renderProps: {\n show: () => void;\n isMiniKitReady: boolean;\n }) => ReactElement;\n};\n\nexport function WorldPayButton(props: WorldPayButtonProps) {\n const { theme, mode, customTheme } = props;\n const context = usePayContext();\n\n return (\n <WorldPayButtonCustom {...props}>\n {({ show, isMiniKitReady }) => (\n <ResetContainer\n $useTheme={theme ?? context.theme}\n $useMode={mode ?? context.mode}\n $customTheme={customTheme ?? context.customTheme}\n >\n <ThemeContainer\n onClick={props.disabled || !isMiniKitReady ? undefined : show}\n >\n <ThemedButton>\n <DaimoPayButtonInner />\n </ThemedButton>\n </ThemeContainer>\n </ResetContainer>\n )}\n </WorldPayButtonCustom>\n );\n}\n\nfunction WorldPayButtonCustom(props: WorldPayButtonCustomProps) {\n const pay = useDaimoPay();\n const context = usePayContext();\n const { paymentState, log } = context;\n const [isMiniKitReady, setIsMiniKitReady] = useState(false);\n const { isIOS } = useIsMobile();\n\n // Payment events: call these three event handlers.\n const { onPaymentStarted, onPaymentCompleted, onPaymentBounced } = props;\n\n // Install Minikit if not already installed\n useEffect(() => {\n log(\"[WORLD] Installing MiniKit\");\n const result = MiniKit.install();\n log(\"[WORLD] MiniKit install result\", result);\n log(\"[WORLD] MiniKit is installed\", MiniKit.isInstalled());\n setIsMiniKitReady(MiniKit.isInstalled());\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n // Set the payParams\n useEffect(() => {\n if (\"payId\" in props) {\n log(\"[WORLD] Using payId from props: \", props.payId);\n paymentState.setPayId(props.payId);\n } else {\n log(\"[WORLD] Creating preview order\");\n paymentState.setPayParams(props);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [JSON.stringify(props || {})]);\n\n // Set the showContactSupport flag\n useEffect(() => {\n // Links are broken on iOS in World App, so hide the contact support button\n context.setShowContactSupport(!isIOS);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isIOS]);\n\n // Open the modal by default if the defaultOpen prop is true\n const hasAutoOpened = useRef(false);\n useEffect(() => {\n if (!props.defaultOpen || hasAutoOpened.current) return;\n if (pay.order == null) return;\n show();\n hasAutoOpened.current = true;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pay.order, props.defaultOpen, hasAutoOpened.current]);\n\n // Emit onPaymentStart handler when payment state changes to payment_started\n const sentStart = useRef(false);\n useEffect(() => {\n if (sentStart.current) return;\n if (pay.paymentState !== \"payment_started\") return;\n\n // TODO: Populate source payment details immediately when the user pays.\n // Use this hack because source chain id is not immediately populated when\n // payment_started\n const sourceChainId = getOrderSourceChainId(pay.order);\n if (sourceChainId == null) return;\n\n sentStart.current = true;\n onPaymentStarted?.({\n type: DaimoPayEventType.PaymentStarted,\n paymentId: writeDaimoPayOrderID(pay.order.id),\n chainId: sourceChainId,\n txHash: pay.order.sourceInitiateTxHash,\n payment: getDaimoPayOrderView(pay.order),\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pay.order, pay.paymentState]);\n\n // Emit onPaymentComplete or onPaymentBounced handler when payment state\n // changes to payment_completed or payment_bounced\n const sentComplete = useRef(false);\n useEffect(() => {\n if (sentComplete.current) return;\n if (\n pay.paymentState !== \"payment_completed\" &&\n pay.paymentState !== \"payment_bounced\"\n )\n return;\n\n sentComplete.current = true;\n const eventType =\n pay.paymentState === \"payment_completed\"\n ? DaimoPayEventType.PaymentCompleted\n : DaimoPayEventType.PaymentBounced;\n const event = {\n type: eventType,\n paymentId: writeDaimoPayOrderID(pay.order.id),\n chainId: getOrderDestChainId(pay.order),\n txHash: assertNotNull(\n pay.order.destFastFinishTxHash ?? pay.order.destClaimTxHash,\n `[WORLD PAY BUTTON] dest tx hash null on order ${pay.order.id} when intent status is ${pay.order.intentStatus}`,\n ),\n payment: getDaimoPayOrderView(pay.order),\n };\n\n if (pay.paymentState === \"payment_completed\") {\n onPaymentCompleted?.(event as PaymentCompletedEvent);\n } else if (pay.paymentState === \"payment_bounced\") {\n onPaymentBounced?.(event as PaymentBouncedEvent);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [pay.order, pay.paymentState]);\n\n // Navigate to the confirmation page in the modal to show the spinner\n const showSpinner = useCallback(() => {\n log(`[WORLD] showing spinner ${pay.order?.id}`);\n const modalOptions = {\n closeOnSuccess: props.closeOnSuccess,\n resetOnSuccess: props.resetOnSuccess,\n };\n context.showPayment(modalOptions);\n context.setRoute(ROUTES.CONFIRMATION);\n }, [context, pay.order?.id, log, props.closeOnSuccess, props.resetOnSuccess]);\n\n // Show the Worldcoin payment drawer and pop open the Daimo Pay modal\n const show = useCallback(async () => {\n log(`[WORLD] showing payment ${pay.order?.id}`);\n if (!isMiniKitReady) {\n console.error(\n \"[WORLD] MiniKit is not installed. Please install @worldcoin/minikit-js to use this feature.\",\n );\n return;\n }\n if (pay.paymentState === \"error\") {\n log(\"[WORLD] showing payment error page\");\n const modalOptions = {\n closeOnSuccess: props.closeOnSuccess,\n resetOnSuccess: props.resetOnSuccess,\n };\n context.showPayment(modalOptions);\n return;\n }\n\n if (\n [\"payment_started\", \"payment_completed\", \"payment_bounced\"].includes(\n pay.paymentState,\n )\n ) {\n showSpinner();\n return;\n }\n\n log(`[WORLD] hydrating order ${pay.order?.id}`);\n const { order } = await pay.hydrateOrder();\n log(\n `[WORLD] hydrated order ${pay.order?.id}. Prompting payment with MiniKit`,\n );\n const payRes = await promptWorldcoinPayment(order, context.trpc);\n if (payRes == null || payRes.finalPayload.status == \"error\") {\n log(\"[WORLD] Failed to prompt Worldcoin payment: \", payRes);\n return;\n }\n\n log(`[WORLD] triggering payment search on ${pay.order?.id}`);\n pay.paySource();\n\n // Optimistically assume the source payment is correct and show the\n // confirmation spinner\n showSpinner();\n }, [\n pay,\n showSpinner,\n context.trpc,\n isMiniKitReady,\n log,\n props.closeOnSuccess,\n props.resetOnSuccess,\n ]);\n\n return props.children({ show, isMiniKitReady });\n}\n\nWorldPayButtonCustom.displayName = \"WorldPayButton.Custom\";\n\nWorldPayButton.Custom = WorldPayButtonCustom;\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@daimo/pay",
|
|
3
3
|
"private": false,
|
|
4
|
-
"version": "1.17.
|
|
4
|
+
"version": "1.17.4",
|
|
5
5
|
"author": "Daimo",
|
|
6
6
|
"homepage": "https://pay.daimo.com",
|
|
7
7
|
"license": "BSD-2-Clause license",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"lint": "eslint 'src/**/*.{js,jsx,ts,tsx}' --max-warnings=0"
|
|
34
34
|
},
|
|
35
35
|
"dependencies": {
|
|
36
|
-
"@daimo/pay-common": "1.17.
|
|
36
|
+
"@daimo/pay-common": "1.17.4",
|
|
37
37
|
"@solana/wallet-adapter-base": "^0.9.23",
|
|
38
38
|
"@solana/wallet-adapter-react": "^0.15.35",
|
|
39
39
|
"@solana/web3.js": "^1.95.4",
|
|
@@ -93,4 +93,4 @@
|
|
|
93
93
|
"payment",
|
|
94
94
|
"crypto"
|
|
95
95
|
]
|
|
96
|
-
}
|
|
96
|
+
}
|