@micro-cms/crypto-payments 1.0.5 → 1.0.8
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/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +21 -2
- package/dist/index.mjs +21 -2
- package/package.json +1 -1
package/dist/index.d.mts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import react__default from 'react';
|
|
3
|
-
import { PaymentIntent, PaymentVerification } from '@micro-cms/types';
|
|
3
|
+
import { PaymentIntent, PaymentVerification, PaymentProvider } from '@micro-cms/types';
|
|
4
4
|
|
|
5
5
|
interface SolanaWindow extends Window {
|
|
6
6
|
solana?: {
|
|
@@ -50,6 +50,7 @@ interface PaymentWidgetProps {
|
|
|
50
50
|
currency?: string;
|
|
51
51
|
onSuccess?: (verification: PaymentVerification) => void;
|
|
52
52
|
onError?: (error: Error) => void;
|
|
53
|
+
provider?: PaymentProvider;
|
|
53
54
|
endpoints?: {
|
|
54
55
|
initiate?: string;
|
|
55
56
|
verify?: string;
|
package/dist/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import react__default from 'react';
|
|
3
|
-
import { PaymentIntent, PaymentVerification } from '@micro-cms/types';
|
|
3
|
+
import { PaymentIntent, PaymentVerification, PaymentProvider } from '@micro-cms/types';
|
|
4
4
|
|
|
5
5
|
interface SolanaWindow extends Window {
|
|
6
6
|
solana?: {
|
|
@@ -50,6 +50,7 @@ interface PaymentWidgetProps {
|
|
|
50
50
|
currency?: string;
|
|
51
51
|
onSuccess?: (verification: PaymentVerification) => void;
|
|
52
52
|
onError?: (error: Error) => void;
|
|
53
|
+
provider?: PaymentProvider;
|
|
53
54
|
endpoints?: {
|
|
54
55
|
initiate?: string;
|
|
55
56
|
verify?: string;
|
package/dist/index.js
CHANGED
|
@@ -218,6 +218,15 @@ var usePayment = (props) => {
|
|
|
218
218
|
try {
|
|
219
219
|
setStatus("initiating");
|
|
220
220
|
setError(null);
|
|
221
|
+
if (props.provider) {
|
|
222
|
+
const data2 = await props.provider.initiatePayment(props.orderId, {
|
|
223
|
+
amount: props.amount,
|
|
224
|
+
currency: props.currency
|
|
225
|
+
});
|
|
226
|
+
setIntent(data2);
|
|
227
|
+
setStatus("pending_signature");
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
221
230
|
const response = await fetch(props.endpoints?.initiate || "/api/orders/initiate", {
|
|
222
231
|
method: "POST",
|
|
223
232
|
headers: { "Content-Type": "application/json" },
|
|
@@ -239,10 +248,20 @@ var usePayment = (props) => {
|
|
|
239
248
|
setStatus("error");
|
|
240
249
|
props.onError?.(err);
|
|
241
250
|
}
|
|
242
|
-
}, [props.endpoints?.initiate, props.orderId, props.amount, props.currency, props.onError]);
|
|
251
|
+
}, [props.provider, props.endpoints?.initiate, props.orderId, props.amount, props.currency, props.onError]);
|
|
243
252
|
const verify = (0, import_react.useCallback)(async (txHash) => {
|
|
244
253
|
try {
|
|
245
254
|
setStatus("verifying");
|
|
255
|
+
if (props.provider) {
|
|
256
|
+
const data2 = await props.provider.verifyPayment(txHash, props.orderId);
|
|
257
|
+
if (data2.status === "confirmed") {
|
|
258
|
+
setStatus("success");
|
|
259
|
+
props.onSuccess?.(data2);
|
|
260
|
+
} else {
|
|
261
|
+
throw new Error("Payment not confirmed yet, status: " + data2.status);
|
|
262
|
+
}
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
246
265
|
const response = await fetch(props.endpoints?.verify || "/api/orders/verify-payment", {
|
|
247
266
|
method: "POST",
|
|
248
267
|
headers: { "Content-Type": "application/json" },
|
|
@@ -267,7 +286,7 @@ var usePayment = (props) => {
|
|
|
267
286
|
setStatus("error");
|
|
268
287
|
props.onError?.(err);
|
|
269
288
|
}
|
|
270
|
-
}, [props.endpoints?.verify, props.orderId, props.onSuccess, props.onError]);
|
|
289
|
+
}, [props.provider, props.endpoints?.verify, props.orderId, props.onSuccess, props.onError]);
|
|
271
290
|
const { isAvailable: isSolanaAvailable, connect: connectSolana, sendPayment: sendSolanaPayment } = useSolanaWallet();
|
|
272
291
|
const handleSolanaPay = async () => {
|
|
273
292
|
try {
|
package/dist/index.mjs
CHANGED
|
@@ -191,6 +191,15 @@ var usePayment = (props) => {
|
|
|
191
191
|
try {
|
|
192
192
|
setStatus("initiating");
|
|
193
193
|
setError(null);
|
|
194
|
+
if (props.provider) {
|
|
195
|
+
const data2 = await props.provider.initiatePayment(props.orderId, {
|
|
196
|
+
amount: props.amount,
|
|
197
|
+
currency: props.currency
|
|
198
|
+
});
|
|
199
|
+
setIntent(data2);
|
|
200
|
+
setStatus("pending_signature");
|
|
201
|
+
return;
|
|
202
|
+
}
|
|
194
203
|
const response = await fetch(props.endpoints?.initiate || "/api/orders/initiate", {
|
|
195
204
|
method: "POST",
|
|
196
205
|
headers: { "Content-Type": "application/json" },
|
|
@@ -212,10 +221,20 @@ var usePayment = (props) => {
|
|
|
212
221
|
setStatus("error");
|
|
213
222
|
props.onError?.(err);
|
|
214
223
|
}
|
|
215
|
-
}, [props.endpoints?.initiate, props.orderId, props.amount, props.currency, props.onError]);
|
|
224
|
+
}, [props.provider, props.endpoints?.initiate, props.orderId, props.amount, props.currency, props.onError]);
|
|
216
225
|
const verify = useCallback(async (txHash) => {
|
|
217
226
|
try {
|
|
218
227
|
setStatus("verifying");
|
|
228
|
+
if (props.provider) {
|
|
229
|
+
const data2 = await props.provider.verifyPayment(txHash, props.orderId);
|
|
230
|
+
if (data2.status === "confirmed") {
|
|
231
|
+
setStatus("success");
|
|
232
|
+
props.onSuccess?.(data2);
|
|
233
|
+
} else {
|
|
234
|
+
throw new Error("Payment not confirmed yet, status: " + data2.status);
|
|
235
|
+
}
|
|
236
|
+
return;
|
|
237
|
+
}
|
|
219
238
|
const response = await fetch(props.endpoints?.verify || "/api/orders/verify-payment", {
|
|
220
239
|
method: "POST",
|
|
221
240
|
headers: { "Content-Type": "application/json" },
|
|
@@ -240,7 +259,7 @@ var usePayment = (props) => {
|
|
|
240
259
|
setStatus("error");
|
|
241
260
|
props.onError?.(err);
|
|
242
261
|
}
|
|
243
|
-
}, [props.endpoints?.verify, props.orderId, props.onSuccess, props.onError]);
|
|
262
|
+
}, [props.provider, props.endpoints?.verify, props.orderId, props.onSuccess, props.onError]);
|
|
244
263
|
const { isAvailable: isSolanaAvailable, connect: connectSolana, sendPayment: sendSolanaPayment } = useSolanaWallet();
|
|
245
264
|
const handleSolanaPay = async () => {
|
|
246
265
|
try {
|