@coin-voyage/shared 0.0.1 → 0.0.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.
Files changed (97) hide show
  1. package/dist/api/config.d.ts +1 -0
  2. package/dist/api/config.js +3 -0
  3. package/dist/api/config.js.map +1 -0
  4. package/dist/api/fetcher.d.ts +7 -0
  5. package/{src/api/fetcher.ts → dist/api/fetcher.js} +10 -17
  6. package/dist/api/fetcher.js.map +1 -0
  7. package/dist/api/index.d.ts +3 -0
  8. package/dist/api/index.js +4 -0
  9. package/dist/api/index.js.map +1 -0
  10. package/{src/api/pay-order.ts → dist/api/pay-order.d.ts} +114 -230
  11. package/dist/api/pay-order.js +238 -0
  12. package/dist/api/pay-order.js.map +1 -0
  13. package/dist/common/assert.d.ts +3 -0
  14. package/dist/common/assert.js +14 -0
  15. package/dist/common/assert.js.map +1 -0
  16. package/dist/common/chainExplorer.d.ts +2 -0
  17. package/dist/common/chainExplorer.js +26 -0
  18. package/dist/common/chainExplorer.js.map +1 -0
  19. package/dist/common/chains.d.ts +31 -0
  20. package/dist/common/chains.js +121 -0
  21. package/dist/common/chains.js.map +1 -0
  22. package/dist/common/currencies.d.ts +14 -0
  23. package/dist/common/currencies.js +31 -0
  24. package/dist/common/currencies.js.map +1 -0
  25. package/dist/common/debug.d.ts +1 -0
  26. package/dist/common/debug.js +11 -0
  27. package/dist/common/debug.js.map +1 -0
  28. package/dist/common/format.d.ts +1 -0
  29. package/dist/common/format.js +4 -0
  30. package/dist/common/format.js.map +1 -0
  31. package/dist/common/i18n/index.d.ts +6 -0
  32. package/dist/common/i18n/index.js +12 -0
  33. package/dist/common/i18n/index.js.map +1 -0
  34. package/dist/common/i18n/languages/en.d.ts +18 -0
  35. package/dist/common/i18n/languages/en.js +21 -0
  36. package/dist/common/i18n/languages/en.js.map +1 -0
  37. package/dist/common/i18n/languages/es.d.ts +2 -0
  38. package/dist/common/i18n/languages/es.js +21 -0
  39. package/dist/common/i18n/languages/es.js.map +1 -0
  40. package/dist/common/index.d.ts +12 -0
  41. package/dist/common/index.js +13 -0
  42. package/dist/common/index.js.map +1 -0
  43. package/dist/common/model.d.ts +22 -0
  44. package/dist/common/model.js +17 -0
  45. package/dist/common/model.js.map +1 -0
  46. package/{src/common/organization.ts → dist/common/organization.d.ts} +1 -2
  47. package/dist/common/organization.js +2 -0
  48. package/dist/common/organization.js.map +1 -0
  49. package/dist/common/pay.d.ts +284 -0
  50. package/dist/common/pay.js +82 -0
  51. package/dist/common/pay.js.map +1 -0
  52. package/dist/common/retryBackoff.d.ts +1 -0
  53. package/dist/common/retryBackoff.js +22 -0
  54. package/dist/common/retryBackoff.js.map +1 -0
  55. package/dist/common/time.d.ts +11 -0
  56. package/dist/common/time.js +62 -0
  57. package/dist/common/time.js.map +1 -0
  58. package/dist/hooks/index.js +2 -0
  59. package/dist/hooks/index.js.map +1 -0
  60. package/dist/hooks/use-is-mobile.d.ts +1 -0
  61. package/dist/hooks/use-is-mobile.js +14 -0
  62. package/dist/hooks/use-is-mobile.js.map +1 -0
  63. package/dist/utils/account.d.ts +1 -0
  64. package/dist/utils/account.js +4 -0
  65. package/dist/utils/account.js.map +1 -0
  66. package/dist/utils/browser.d.ts +6 -0
  67. package/dist/utils/browser.js +22 -0
  68. package/dist/utils/browser.js.map +1 -0
  69. package/dist/utils/index.d.ts +3 -0
  70. package/dist/utils/index.js +4 -0
  71. package/dist/utils/index.js.map +1 -0
  72. package/dist/utils/plurar.d.ts +1 -0
  73. package/dist/utils/plurar.js +7 -0
  74. package/dist/utils/plurar.js.map +1 -0
  75. package/package.json +6 -6
  76. package/src/api/config.ts +0 -2
  77. package/src/api/index.ts +0 -3
  78. package/src/common/assert.ts +0 -21
  79. package/src/common/chainExplorer.ts +0 -27
  80. package/src/common/chains.ts +0 -130
  81. package/src/common/currencies.ts +0 -42
  82. package/src/common/debug.ts +0 -11
  83. package/src/common/format.ts +0 -3
  84. package/src/common/i18n/index.ts +0 -18
  85. package/src/common/i18n/languages/en.ts +0 -38
  86. package/src/common/i18n/languages/es.ts +0 -38
  87. package/src/common/index.ts +0 -12
  88. package/src/common/model.ts +0 -43
  89. package/src/common/pay.ts +0 -194
  90. package/src/common/retryBackoff.ts +0 -24
  91. package/src/common/time.ts +0 -78
  92. package/src/hooks/use-is-mobile.ts +0 -16
  93. package/src/utils/account.ts +0 -3
  94. package/src/utils/browser.ts +0 -24
  95. package/src/utils/index.ts +0 -3
  96. package/src/utils/plurar.ts +0 -5
  97. /package/{src/hooks/index.ts → dist/hooks/index.d.ts} +0 -0
@@ -0,0 +1,12 @@
1
+ export * from "./assert";
2
+ export * from "./chainExplorer";
3
+ export * from "./chains";
4
+ export * from "./currencies";
5
+ export * from "./organization";
6
+ export * from "./pay";
7
+ export * from "./debug";
8
+ export * from "./format";
9
+ export * from "./model";
10
+ export * from "./retryBackoff";
11
+ export * from "./time";
12
+ export * from "./i18n";
@@ -0,0 +1,13 @@
1
+ export * from "./assert";
2
+ export * from "./chainExplorer";
3
+ export * from "./chains";
4
+ export * from "./currencies";
5
+ export * from "./organization";
6
+ export * from "./pay";
7
+ export * from "./debug";
8
+ export * from "./format";
9
+ export * from "./model";
10
+ export * from "./retryBackoff";
11
+ export * from "./time";
12
+ export * from "./i18n";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA;AACxB,cAAc,iBAAiB,CAAA;AAC/B,cAAc,UAAU,CAAA;AACxB,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,OAAO,CAAA;AACrB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,gBAAgB,CAAA;AAC9B,cAAc,QAAQ,CAAA;AACtB,cAAc,QAAQ,CAAA"}
@@ -0,0 +1,22 @@
1
+ import { z } from "zod";
2
+ import { ChainId } from "./chains";
3
+ export declare const zSolanaPublicKey: z.ZodString;
4
+ export type SolanaPublicKey = z.infer<typeof zSolanaPublicKey>;
5
+ export interface Currency extends CurrencyBase {
6
+ id?: string;
7
+ name: string;
8
+ ticker: string;
9
+ decimals: number;
10
+ image_uri?: string;
11
+ price_usd?: number;
12
+ }
13
+ export interface CurrencyBase {
14
+ chain_id: ChainId;
15
+ address: string | null;
16
+ }
17
+ export declare const zAddress: z.ZodEffects<z.ZodString, `0x${string}`, string>;
18
+ export declare const zBigIntStr: z.ZodEffects<z.ZodString, `${bigint}`, string>;
19
+ export type BigIntStr = `${bigint}`;
20
+ export type PlatformType = "ios" | "android" | "other";
21
+ export declare function dateToUnix(d: Date): number;
22
+ export declare function unixToDate(unix: number): Date;
@@ -0,0 +1,17 @@
1
+ import { z } from "zod";
2
+ export const zSolanaPublicKey = z.string().regex(/^[1-9A-HJ-NP-Za-km-z]+$/);
3
+ export const zAddress = z
4
+ .string()
5
+ .regex(/^0x[0-9a-f]{40}$/i)
6
+ .refine((s) => true);
7
+ export const zBigIntStr = z
8
+ .string()
9
+ .regex(/^[0-9]+$/i)
10
+ .refine((s) => true);
11
+ export function dateToUnix(d) {
12
+ return Math.floor(d.getTime() / 1000);
13
+ }
14
+ export function unixToDate(unix) {
15
+ return new Date(unix * 1000);
16
+ }
17
+ //# sourceMappingURL=model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"model.js","sourceRoot":"","sources":["../../src/common/model.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,yBAAyB,CAAC,CAAA;AAkB3E,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC;KACtB,MAAM,EAAE;KACR,KAAK,CAAC,mBAAmB,CAAC;KAC1B,MAAM,CAAC,CAAC,CAAC,EAAgB,EAAE,CAAC,IAAI,CAAC,CAAA;AAEpC,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC;KACxB,MAAM,EAAE;KACR,KAAK,CAAC,WAAW,CAAC;KAClB,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,IAAI,CAAC,CAAA;AAMtC,MAAM,UAAU,UAAU,CAAC,CAAO;IAChC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,OAAO,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAA;AAC9B,CAAC"}
@@ -1,5 +1,4 @@
1
1
  import { Currency } from "./model";
2
-
3
2
  export type SettlementCurrency = {
4
3
  receiving_address: string;
5
- } & Currency
4
+ } & Currency;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=organization.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"organization.js","sourceRoot":"","sources":["../../src/common/organization.ts"],"names":[],"mappings":""}
@@ -0,0 +1,284 @@
1
+ import { Address, Hex } from "viem";
2
+ import z from "zod";
3
+ import { Currency } from "./model";
4
+ export declare enum PayOrderMode {
5
+ SALE = "SALE",// product or item sale, value out can only be adjusted by the merchant
6
+ DEPOSIT = "DEPOSIT"
7
+ }
8
+ export declare const zBridgeTokenOutOptions: z.ZodArray<z.ZodObject<{
9
+ token: z.ZodEffects<z.ZodString, `0x${string}`, string>;
10
+ amount: z.ZodEffects<z.ZodEffects<z.ZodString, `${bigint}`, string>, bigint, string>;
11
+ }, "strip", z.ZodTypeAny, {
12
+ token: `0x${string}`;
13
+ amount: bigint;
14
+ }, {
15
+ token: string;
16
+ amount: string;
17
+ }>, "many">;
18
+ export type BridgeTokenOutOptions = z.infer<typeof zBridgeTokenOutOptions>;
19
+ export declare const zPayOrderMetadata: z.ZodObject<{
20
+ items: z.ZodArray<z.ZodObject<{
21
+ name: z.ZodString;
22
+ description: z.ZodOptional<z.ZodString>;
23
+ image: z.ZodOptional<z.ZodString>;
24
+ quantity: z.ZodOptional<z.ZodNumber>;
25
+ unit_price: z.ZodOptional<z.ZodNumber>;
26
+ currency: z.ZodOptional<z.ZodString>;
27
+ }, "strip", z.ZodTypeAny, {
28
+ name: string;
29
+ description?: string | undefined;
30
+ currency?: string | undefined;
31
+ image?: string | undefined;
32
+ quantity?: number | undefined;
33
+ unit_price?: number | undefined;
34
+ }, {
35
+ name: string;
36
+ description?: string | undefined;
37
+ currency?: string | undefined;
38
+ image?: string | undefined;
39
+ quantity?: number | undefined;
40
+ unit_price?: number | undefined;
41
+ }>, "many">;
42
+ }, "strip", z.ZodTypeAny, {
43
+ items: {
44
+ name: string;
45
+ description?: string | undefined;
46
+ currency?: string | undefined;
47
+ image?: string | undefined;
48
+ quantity?: number | undefined;
49
+ unit_price?: number | undefined;
50
+ }[];
51
+ }, {
52
+ items: {
53
+ name: string;
54
+ description?: string | undefined;
55
+ currency?: string | undefined;
56
+ image?: string | undefined;
57
+ quantity?: number | undefined;
58
+ unit_price?: number | undefined;
59
+ }[];
60
+ }>;
61
+ export declare const zDepositPayOrder: z.ZodEffects<z.ZodObject<{
62
+ metadata: z.ZodOptional<z.ZodObject<{
63
+ items: z.ZodArray<z.ZodObject<{
64
+ name: z.ZodString;
65
+ description: z.ZodOptional<z.ZodString>;
66
+ image: z.ZodOptional<z.ZodString>;
67
+ quantity: z.ZodOptional<z.ZodNumber>;
68
+ unit_price: z.ZodOptional<z.ZodNumber>;
69
+ currency: z.ZodOptional<z.ZodString>;
70
+ }, "strip", z.ZodTypeAny, {
71
+ name: string;
72
+ description?: string | undefined;
73
+ currency?: string | undefined;
74
+ image?: string | undefined;
75
+ quantity?: number | undefined;
76
+ unit_price?: number | undefined;
77
+ }, {
78
+ name: string;
79
+ description?: string | undefined;
80
+ currency?: string | undefined;
81
+ image?: string | undefined;
82
+ quantity?: number | undefined;
83
+ unit_price?: number | undefined;
84
+ }>, "many">;
85
+ }, "strip", z.ZodTypeAny, {
86
+ items: {
87
+ name: string;
88
+ description?: string | undefined;
89
+ currency?: string | undefined;
90
+ image?: string | undefined;
91
+ quantity?: number | undefined;
92
+ unit_price?: number | undefined;
93
+ }[];
94
+ }, {
95
+ items: {
96
+ name: string;
97
+ description?: string | undefined;
98
+ currency?: string | undefined;
99
+ image?: string | undefined;
100
+ quantity?: number | undefined;
101
+ unit_price?: number | undefined;
102
+ }[];
103
+ }>>;
104
+ destination_value_usd: z.ZodEffects<z.ZodOptional<z.ZodNumber>, number | undefined, number | undefined>;
105
+ destination_currency: z.ZodObject<{
106
+ chain_id: z.ZodNumber;
107
+ address: z.ZodNullable<z.ZodString>;
108
+ }, "strip", z.ZodTypeAny, {
109
+ address: string | null;
110
+ chain_id: number;
111
+ }, {
112
+ address: string | null;
113
+ chain_id: number;
114
+ }>;
115
+ destination_amount: z.ZodEffects<z.ZodOptional<z.ZodString>, string | undefined, string | undefined>;
116
+ receiving_address: z.ZodString;
117
+ }, "strip", z.ZodTypeAny, {
118
+ destination_currency: {
119
+ address: string | null;
120
+ chain_id: number;
121
+ };
122
+ receiving_address: string;
123
+ metadata?: {
124
+ items: {
125
+ name: string;
126
+ description?: string | undefined;
127
+ currency?: string | undefined;
128
+ image?: string | undefined;
129
+ quantity?: number | undefined;
130
+ unit_price?: number | undefined;
131
+ }[];
132
+ } | undefined;
133
+ destination_value_usd?: number | undefined;
134
+ destination_amount?: string | undefined;
135
+ }, {
136
+ destination_currency: {
137
+ address: string | null;
138
+ chain_id: number;
139
+ };
140
+ receiving_address: string;
141
+ metadata?: {
142
+ items: {
143
+ name: string;
144
+ description?: string | undefined;
145
+ currency?: string | undefined;
146
+ image?: string | undefined;
147
+ quantity?: number | undefined;
148
+ unit_price?: number | undefined;
149
+ }[];
150
+ } | undefined;
151
+ destination_value_usd?: number | undefined;
152
+ destination_amount?: string | undefined;
153
+ }>, {
154
+ destination_currency: {
155
+ address: string | null;
156
+ chain_id: number;
157
+ };
158
+ receiving_address: string;
159
+ metadata?: {
160
+ items: {
161
+ name: string;
162
+ description?: string | undefined;
163
+ currency?: string | undefined;
164
+ image?: string | undefined;
165
+ quantity?: number | undefined;
166
+ unit_price?: number | undefined;
167
+ }[];
168
+ } | undefined;
169
+ destination_value_usd?: number | undefined;
170
+ destination_amount?: string | undefined;
171
+ }, {
172
+ destination_currency: {
173
+ address: string | null;
174
+ chain_id: number;
175
+ };
176
+ receiving_address: string;
177
+ metadata?: {
178
+ items: {
179
+ name: string;
180
+ description?: string | undefined;
181
+ currency?: string | undefined;
182
+ image?: string | undefined;
183
+ quantity?: number | undefined;
184
+ unit_price?: number | undefined;
185
+ }[];
186
+ } | undefined;
187
+ destination_value_usd?: number | undefined;
188
+ destination_amount?: string | undefined;
189
+ }>;
190
+ export type PayOrderMetadata = z.infer<typeof zPayOrderMetadata>;
191
+ export declare enum PayOrderStatus {
192
+ PENDING = "PENDING",
193
+ FAILED = "FAILED",
194
+ AWAITING_PAYMENT = "AWAITING_PAYMENT",
195
+ AWAITING_CONFIRMATION = "AWAITING_CONFIRMATION",
196
+ EXECUTING_ORDER = "EXECUTING_ORDER",
197
+ COMPLETED = "COMPLETED",
198
+ EXPIRED = "EXPIRED",
199
+ REFUNDED = "REFUNDED"
200
+ }
201
+ export type PayOrder = {
202
+ id: string;
203
+ mode: PayOrderMode.SALE | PayOrderMode.DEPOSIT;
204
+ status: PayOrderStatus;
205
+ metadata?: PayOrderMetadata;
206
+ expires_at?: Date;
207
+ source_currency?: Currency;
208
+ source_amount?: CurrencyAmount;
209
+ deposit_tx_hash?: string;
210
+ destination_currency?: Currency;
211
+ destination_amount?: CurrencyAmount;
212
+ receiving_tx_hash?: string;
213
+ receiving_address?: string;
214
+ refund_address?: string;
215
+ deposit_address?: string;
216
+ refund_tx_hash?: string;
217
+ };
218
+ export interface CurrencyWithAmount extends Currency {
219
+ currency_amount: CurrencyAmount;
220
+ }
221
+ export interface CurrencyWithBalance extends CurrencyWithAmount {
222
+ balance?: CurrencyAmount;
223
+ }
224
+ export interface CurrencyAmount {
225
+ ui_amount: number;
226
+ raw_amount: bigint;
227
+ value_usd: number;
228
+ }
229
+ export type OnChainCall = {
230
+ to: Address;
231
+ data: Hex;
232
+ value: bigint;
233
+ };
234
+ export declare const emptyOnChainCall: OnChainCall;
235
+ export declare const zUUID: z.ZodString;
236
+ export type UUID = z.infer<typeof zUUID>;
237
+ export type PaymentCreationErrorEvent = {
238
+ type: "payment_creation_error";
239
+ errorMessage: string;
240
+ };
241
+ export type PaymentStartedEvent = {
242
+ type: "payment_started";
243
+ paymentId: string;
244
+ chainId: number;
245
+ txHash: Hex | string | null;
246
+ };
247
+ export type PaymentCompletedEvent = {
248
+ type: "payment_completed";
249
+ paymentId: UUID;
250
+ chainId: number;
251
+ txHash: Hex | string;
252
+ };
253
+ export type PaymentBouncedEvent = {
254
+ type: "payment_bounced";
255
+ paymentId: UUID;
256
+ chainId: number;
257
+ txHash: Hex | string;
258
+ };
259
+ export type PayEvent = PaymentStartedEvent | PaymentCompletedEvent | PaymentBouncedEvent;
260
+ export interface WebhookEndpoint {
261
+ id: string;
262
+ organization_id: string;
263
+ active: boolean;
264
+ url: string;
265
+ webhook_secret: string;
266
+ subscription_events: WebhookEventStatus[];
267
+ created_at: Date;
268
+ }
269
+ export declare enum WebhookEventStatus {
270
+ ORDER_CREATED = "ORDER_CREATED",
271
+ ORDER_AWAITING_PAYMENT = "ORDER_AWAITING_PAYMENT",
272
+ ORDER_CONFIRMING = "ORDER_CONFIRMING",
273
+ ORDER_EXECUTING = "ORDER_EXECUTING",
274
+ ORDER_COMPLETED = "ORDER_COMPLETED",
275
+ ORDER_ERROR = "ORDER_ERROR",
276
+ ORDER_REFUNDED = "ORDER_REFUNDED"
277
+ }
278
+ export interface WebhookEvent {
279
+ id: UUID;
280
+ endpoint: WebhookEndpoint;
281
+ body: PayEvent;
282
+ status: WebhookEventStatus;
283
+ createdAt: Date;
284
+ }
@@ -0,0 +1,82 @@
1
+ import { zeroAddress } from "viem";
2
+ import z from "zod";
3
+ import { zAddress, zBigIntStr } from "./model";
4
+ export var PayOrderMode;
5
+ (function (PayOrderMode) {
6
+ PayOrderMode["SALE"] = "SALE";
7
+ PayOrderMode["DEPOSIT"] = "DEPOSIT";
8
+ })(PayOrderMode || (PayOrderMode = {}));
9
+ export const zBridgeTokenOutOptions = z.array(z.object({
10
+ token: zAddress,
11
+ amount: zBigIntStr.transform((a) => BigInt(a)),
12
+ }));
13
+ // NOTE: be careful to modify this type only in backward-compatible ways.
14
+ // Add OPTIONAL fields, etc. Anything else requires a migration.
15
+ export const zPayOrderMetadata = z.object({
16
+ items: z
17
+ .array(z.object({
18
+ name: z.string(),
19
+ description: z.string().optional(),
20
+ image: z.string().optional(),
21
+ quantity: z.number().int().optional(),
22
+ unit_price: z.number().optional(),
23
+ currency: z.string().optional(),
24
+ }))
25
+ .describe("Details about what's being ordered, donated, deposited, etc."),
26
+ });
27
+ // also validate not both destination_value_usd and destination_amount are present
28
+ export const zDepositPayOrder = z.object({
29
+ metadata: zPayOrderMetadata.optional(),
30
+ destination_value_usd: z.number().optional()
31
+ .refine((val) => val === undefined || Number(val) > 0, {
32
+ message: "destination_value_usd must be greater than zero if defined",
33
+ }),
34
+ destination_currency: z.object({
35
+ chain_id: z.number(),
36
+ address: z.string().nullable(),
37
+ }),
38
+ destination_amount: z.string().optional()
39
+ .refine((val) => val === undefined || Number(val) > 0, {
40
+ message: "destination_amount must be greater than zero if defined",
41
+ }),
42
+ receiving_address: z.string().min(1),
43
+ }).refine((data) => !(data.destination_value_usd && data.destination_amount), // Ensure not both are present
44
+ {
45
+ message: "Only one of destination_value_usd or destination_amount should be present.",
46
+ path: ["destination_value_usd", "destination_amount"],
47
+ });
48
+ export var PayOrderStatus;
49
+ (function (PayOrderStatus) {
50
+ PayOrderStatus["PENDING"] = "PENDING";
51
+ PayOrderStatus["FAILED"] = "FAILED";
52
+ PayOrderStatus["AWAITING_PAYMENT"] = "AWAITING_PAYMENT";
53
+ PayOrderStatus["AWAITING_CONFIRMATION"] = "AWAITING_CONFIRMATION";
54
+ PayOrderStatus["EXECUTING_ORDER"] = "EXECUTING_ORDER";
55
+ PayOrderStatus["COMPLETED"] = "COMPLETED";
56
+ PayOrderStatus["EXPIRED"] = "EXPIRED";
57
+ PayOrderStatus["REFUNDED"] = "REFUNDED";
58
+ })(PayOrderStatus || (PayOrderStatus = {}));
59
+ export const emptyOnChainCall = {
60
+ to: zeroAddress,
61
+ data: "0x",
62
+ value: BigInt(0),
63
+ };
64
+ export const zUUID = z.string().uuid();
65
+ export var WebhookEventStatus;
66
+ (function (WebhookEventStatus) {
67
+ WebhookEventStatus["ORDER_CREATED"] = "ORDER_CREATED";
68
+ WebhookEventStatus["ORDER_AWAITING_PAYMENT"] = "ORDER_AWAITING_PAYMENT";
69
+ WebhookEventStatus["ORDER_CONFIRMING"] = "ORDER_CONFIRMING";
70
+ WebhookEventStatus["ORDER_EXECUTING"] = "ORDER_EXECUTING";
71
+ WebhookEventStatus["ORDER_COMPLETED"] = "ORDER_COMPLETED";
72
+ WebhookEventStatus["ORDER_ERROR"] = "ORDER_ERROR";
73
+ WebhookEventStatus["ORDER_REFUNDED"] = "ORDER_REFUNDED";
74
+ })(WebhookEventStatus || (WebhookEventStatus = {}));
75
+ // export interface WebhookDelivery {
76
+ // id: UUID
77
+ // eventId: UUID
78
+ // httpStatus: number | null
79
+ // body: string | null
80
+ // createdAt: Date
81
+ // }
82
+ //# sourceMappingURL=pay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pay.js","sourceRoot":"","sources":["../../src/common/pay.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function retryBackoff<T>(name: string, fn: () => Promise<T>, maxRetries?: number, backoffFn?: (i: number) => number): Promise<T>;
@@ -0,0 +1,22 @@
1
+ // Retries a function up to a maximum number of times, with exponential backoff.
2
+ // Current settings, max total wait time is ~10 seconds.
3
+ export async function retryBackoff(name, fn, maxRetries = 5, backoffFn = (i) => Math.min(2000, 250 * 2 ** i)) {
4
+ for (let i = 1;; i++) {
5
+ try {
6
+ return await fn();
7
+ }
8
+ catch (e) {
9
+ if (i <= maxRetries) {
10
+ const sleepMs = backoffFn(i);
11
+ await new Promise((r) => setTimeout(r, sleepMs));
12
+ }
13
+ else {
14
+ console.warn(`[RETRY] ${name} QUITTING after try ${i}, error: ${e}`);
15
+ break;
16
+ }
17
+ }
18
+ }
19
+ // TODO: add performance logging
20
+ throw new Error(`too many retries: ${name}`);
21
+ }
22
+ //# sourceMappingURL=retryBackoff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retryBackoff.js","sourceRoot":"","sources":["../../src/common/retryBackoff.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,wDAAwD;AACxD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,IAAY,EACZ,EAAoB,EACpB,UAAU,GAAG,CAAC,EACd,YAAmC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;IAEtE,KAAK,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC,EAAE,EAAE,CAAC;QACtB,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAA;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,IAAI,UAAU,EAAE,CAAC;gBACpB,MAAM,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC,CAAA;gBAC5B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC,CAAA;YAClD,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,IAAI,CAAC,WAAW,IAAI,uBAAuB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAA;gBACpE,MAAK;YACP,CAAC;QACH,CAAC;IACH,CAAC;IACD,gCAAgC;IAChC,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,EAAE,CAAC,CAAA;AAC9C,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { Locale } from "./i18n";
2
+ /** Returns current unix time, in seconds */
3
+ export declare function now(): number;
4
+ /** Returns "now", "1m", "2h", etc. Long form: "just now", "1m ago", ... */
5
+ export declare function timeAgo(sinceS: number, locale?: Locale, nowS?: number, long?: boolean): string;
6
+ /** Returns "soon", "1d", "2d", etc. Long form: "in 1d", "in 2d", ... */
7
+ export declare function daysUntil(untilS: number, locale?: Locale, nowS?: number, long?: boolean): string;
8
+ /** Returns eg "12/11/2023, 10:44" */
9
+ export declare function timeString(s: number): string;
10
+ /** Returns eg "Aug 2023" */
11
+ export declare function timeMonth(s: number): string;
@@ -0,0 +1,62 @@
1
+ import { i18n } from "./i18n";
2
+ /** Returns current unix time, in seconds */
3
+ export function now() {
4
+ return Math.floor(Date.now() / 1000);
5
+ }
6
+ /** Returns "now", "1m", "2h", etc. Long form: "just now", "1m ago", ... */
7
+ export function timeAgo(sinceS, locale, nowS, long) {
8
+ const i18 = i18n(locale).time;
9
+ if (nowS == null) {
10
+ nowS = now();
11
+ }
12
+ const seconds = Math.floor(nowS - sinceS);
13
+ if (seconds < 60) {
14
+ return i18.now(long);
15
+ }
16
+ const minutes = Math.floor(seconds / 60);
17
+ if (minutes < 60) {
18
+ return i18.minutesAgo(minutes, long);
19
+ }
20
+ const hours = Math.floor(minutes / 60);
21
+ if (hours < 24) {
22
+ return i18.hoursAgo(hours, long);
23
+ }
24
+ const days = Math.floor(hours / 24);
25
+ return `${days}d${long ? " ago" : ""}`;
26
+ }
27
+ /** Returns "soon", "1d", "2d", etc. Long form: "in 1d", "in 2d", ... */
28
+ export function daysUntil(untilS, locale, nowS, long) {
29
+ const i18 = i18n(locale).time;
30
+ if (nowS == null) {
31
+ nowS = now();
32
+ }
33
+ const seconds = Math.floor(untilS - nowS);
34
+ const minutes = Math.floor(seconds / 60);
35
+ const hours = Math.floor(minutes / 60);
36
+ const days = Math.floor(hours / 24);
37
+ if (days < 1) {
38
+ return i18.soon();
39
+ }
40
+ return i18.inDays(days, long);
41
+ }
42
+ /** Returns eg "12/11/2023, 10:44" */
43
+ export function timeString(s) {
44
+ const date = new Date(s * 1000);
45
+ return date.toLocaleString([], {
46
+ year: "numeric",
47
+ month: "numeric",
48
+ day: "numeric",
49
+ hour: "2-digit",
50
+ minute: "2-digit",
51
+ dayPeriod: "short",
52
+ });
53
+ }
54
+ /** Returns eg "Aug 2023" */
55
+ export function timeMonth(s) {
56
+ const date = new Date(s * 1000);
57
+ return date.toLocaleString([], {
58
+ month: "short",
59
+ year: "numeric",
60
+ });
61
+ }
62
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../../src/common/time.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export { useIsMobile } from "./use-is-mobile";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function useIsMobile(): boolean;
@@ -0,0 +1,14 @@
1
+ import { useEffect, useState } from "react";
2
+ import { isMobile } from "../utils/browser";
3
+ export function useIsMobile() {
4
+ const [mobile, setMobile] = useState(isMobile());
5
+ useEffect(() => {
6
+ const handleResize = () => {
7
+ setMobile(isMobile());
8
+ };
9
+ window.addEventListener("resize", handleResize);
10
+ return () => window.removeEventListener("resize", handleResize);
11
+ }, []);
12
+ return mobile;
13
+ }
14
+ //# sourceMappingURL=use-is-mobile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-mobile.js","sourceRoot":"","sources":["../../src/hooks/use-is-mobile.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,MAAM,UAAU,WAAW;IACzB,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAA;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,YAAY,GAAG,GAAG,EAAE;YACxB,SAAS,CAAC,QAAQ,EAAE,CAAC,CAAA;QACvB,CAAC,CAAA;QACD,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;QAC/C,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAA;IACjE,CAAC,EAAE,EAAE,CAAC,CAAA;IAEN,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function shortenAddress(address: string, length?: number): string;
@@ -0,0 +1,4 @@
1
+ export function shortenAddress(address, length = 4) {
2
+ return `${address.slice(0, 2 + length)}…${address.slice(-length)}`;
3
+ }
4
+ //# sourceMappingURL=account.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account.js","sourceRoot":"","sources":["../../src/utils/account.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,OAAe,EAAE,MAAM,GAAG,CAAC;IACxD,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,OAAO,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,EAAE,CAAA;AACpE,CAAC"}
@@ -0,0 +1,6 @@
1
+ declare const detectBrowser: () => "" | import("detect-browser").Browser | "bot" | "node" | "react-native";
2
+ declare const detectOS: () => "" | import("detect-browser").OperatingSystem | NodeJS.Platform;
3
+ declare const isIOS: () => boolean;
4
+ declare const isAndroid: () => boolean;
5
+ declare const isMobile: () => boolean;
6
+ export { detectBrowser, detectOS, isAndroid, isIOS, isMobile };
@@ -0,0 +1,22 @@
1
+ import { detect } from "detect-browser";
2
+ const detectBrowser = () => {
3
+ const browser = detect();
4
+ return browser?.name ?? "";
5
+ };
6
+ const detectOS = () => {
7
+ const browser = detect();
8
+ return browser?.os ?? "";
9
+ };
10
+ const isIOS = () => {
11
+ const os = detectOS();
12
+ return os.toLowerCase().includes("ios");
13
+ };
14
+ const isAndroid = () => {
15
+ const os = detectOS();
16
+ return os.toLowerCase().includes("android");
17
+ };
18
+ const isMobile = () => {
19
+ return isAndroid() || isIOS();
20
+ };
21
+ export { detectBrowser, detectOS, isAndroid, isIOS, isMobile };
22
+ //# sourceMappingURL=browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../../src/utils/browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAA;AAEvC,MAAM,aAAa,GAAG,GAAG,EAAE;IACvB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAA;IACxB,OAAO,OAAO,EAAE,IAAI,IAAI,EAAE,CAAA;AAC9B,CAAC,CAAA;AACD,MAAM,QAAQ,GAAG,GAAG,EAAE;IAClB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAA;IACxB,OAAO,OAAO,EAAE,EAAE,IAAI,EAAE,CAAA;AAC5B,CAAC,CAAA;AAED,MAAM,KAAK,GAAG,GAAG,EAAE;IACf,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IACrB,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAA;AAC3C,CAAC,CAAA;AACD,MAAM,SAAS,GAAG,GAAG,EAAE;IACnB,MAAM,EAAE,GAAG,QAAQ,EAAE,CAAA;IACrB,OAAO,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;AAC/C,CAAC,CAAA;AACD,MAAM,QAAQ,GAAG,GAAG,EAAE;IAClB,OAAO,SAAS,EAAE,IAAI,KAAK,EAAE,CAAA;AACjC,CAAC,CAAA;AAED,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAA"}
@@ -0,0 +1,3 @@
1
+ export * from "./account";
2
+ export * from "./browser";
3
+ export * from "./plurar";