@orderly.network/onramper-plugin 0.0.2-alpha.0

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 (81) hide show
  1. package/README.md +113 -0
  2. package/dist/chunk-QKQ47GQZ.js +11 -0
  3. package/dist/chunk-QKQ47GQZ.js.map +1 -0
  4. package/dist/chunk-XNMUIY72.mjs +9 -0
  5. package/dist/chunk-XNMUIY72.mjs.map +1 -0
  6. package/dist/de-GYR62SPI.js +36 -0
  7. package/dist/de-GYR62SPI.js.map +1 -0
  8. package/dist/de-XNITMI2B.mjs +34 -0
  9. package/dist/de-XNITMI2B.mjs.map +1 -0
  10. package/dist/en-IAAY2CDT.js +36 -0
  11. package/dist/en-IAAY2CDT.js.map +1 -0
  12. package/dist/en-UCLS4WAV.mjs +34 -0
  13. package/dist/en-UCLS4WAV.mjs.map +1 -0
  14. package/dist/es-76I5JYOI.mjs +34 -0
  15. package/dist/es-76I5JYOI.mjs.map +1 -0
  16. package/dist/es-B7VYU5TQ.js +36 -0
  17. package/dist/es-B7VYU5TQ.js.map +1 -0
  18. package/dist/fr-5G5K3WZB.js +36 -0
  19. package/dist/fr-5G5K3WZB.js.map +1 -0
  20. package/dist/fr-YBDFJ5YI.mjs +34 -0
  21. package/dist/fr-YBDFJ5YI.mjs.map +1 -0
  22. package/dist/id-RPSFROFO.js +36 -0
  23. package/dist/id-RPSFROFO.js.map +1 -0
  24. package/dist/id-TWEEXYGV.mjs +34 -0
  25. package/dist/id-TWEEXYGV.mjs.map +1 -0
  26. package/dist/index.d.mts +158 -0
  27. package/dist/index.d.ts +158 -0
  28. package/dist/index.js +1863 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/index.mjs +1851 -0
  31. package/dist/index.mjs.map +1 -0
  32. package/dist/it-64LYBKQP.js +36 -0
  33. package/dist/it-64LYBKQP.js.map +1 -0
  34. package/dist/it-ESHQ6ZEW.mjs +34 -0
  35. package/dist/it-ESHQ6ZEW.mjs.map +1 -0
  36. package/dist/ja-AMRP6CIA.js +36 -0
  37. package/dist/ja-AMRP6CIA.js.map +1 -0
  38. package/dist/ja-TTBR7X25.mjs +34 -0
  39. package/dist/ja-TTBR7X25.mjs.map +1 -0
  40. package/dist/ko-BTMZAQ7J.js +36 -0
  41. package/dist/ko-BTMZAQ7J.js.map +1 -0
  42. package/dist/ko-PUJOVSVE.mjs +34 -0
  43. package/dist/ko-PUJOVSVE.mjs.map +1 -0
  44. package/dist/nl-BZB2BRQ7.js +36 -0
  45. package/dist/nl-BZB2BRQ7.js.map +1 -0
  46. package/dist/nl-SENDBWKK.mjs +34 -0
  47. package/dist/nl-SENDBWKK.mjs.map +1 -0
  48. package/dist/pl-GGYFSVAJ.mjs +34 -0
  49. package/dist/pl-GGYFSVAJ.mjs.map +1 -0
  50. package/dist/pl-ORAYIBD7.js +36 -0
  51. package/dist/pl-ORAYIBD7.js.map +1 -0
  52. package/dist/pt-RWI3GBG6.js +36 -0
  53. package/dist/pt-RWI3GBG6.js.map +1 -0
  54. package/dist/pt-S4FOVI3A.mjs +34 -0
  55. package/dist/pt-S4FOVI3A.mjs.map +1 -0
  56. package/dist/ru-AP7GWUPY.js +36 -0
  57. package/dist/ru-AP7GWUPY.js.map +1 -0
  58. package/dist/ru-ZF4FQ3S2.mjs +34 -0
  59. package/dist/ru-ZF4FQ3S2.mjs.map +1 -0
  60. package/dist/styles.css +1 -0
  61. package/dist/tc-RZ4GC2Z6.js +36 -0
  62. package/dist/tc-RZ4GC2Z6.js.map +1 -0
  63. package/dist/tc-TQ4TWJLG.mjs +34 -0
  64. package/dist/tc-TQ4TWJLG.mjs.map +1 -0
  65. package/dist/tr-E6HTGNQA.js +36 -0
  66. package/dist/tr-E6HTGNQA.js.map +1 -0
  67. package/dist/tr-RM566BKR.mjs +34 -0
  68. package/dist/tr-RM566BKR.mjs.map +1 -0
  69. package/dist/uk-6FVT4QXK.js +36 -0
  70. package/dist/uk-6FVT4QXK.js.map +1 -0
  71. package/dist/uk-K25BMMM3.mjs +34 -0
  72. package/dist/uk-K25BMMM3.mjs.map +1 -0
  73. package/dist/vi-KGVGSDIB.js +36 -0
  74. package/dist/vi-KGVGSDIB.js.map +1 -0
  75. package/dist/vi-MTEYJND7.mjs +34 -0
  76. package/dist/vi-MTEYJND7.mjs.map +1 -0
  77. package/dist/zh-A3GFFBKX.js +36 -0
  78. package/dist/zh-A3GFFBKX.js.map +1 -0
  79. package/dist/zh-JDOWM3XW.mjs +34 -0
  80. package/dist/zh-JDOWM3XW.mjs.map +1 -0
  81. package/package.json +47 -0
@@ -0,0 +1,158 @@
1
+ import React, { FC, SVGProps } from 'react';
2
+ import { API } from '@orderly.network/types';
3
+ import { ConnectedChain, Chain } from '@orderly.network/hooks';
4
+ import { OrderlySDK } from '@orderly.network/plugin-core';
5
+
6
+ declare const FIAT_CURRENCIES: readonly ["USD", "EUR", "CNY", "HKD", "TWD", "KRW", "JPY"];
7
+ type FiatCurrency = (typeof FIAT_CURRENCIES)[number];
8
+ declare const PRESET_AMOUNTS: Record<FiatCurrency, readonly number[]>;
9
+ declare function formatCompact(n: number): string;
10
+
11
+ type OnrampTransactionStatus = "new" | "pending" | "completed" | "failed" | "paid" | "canceled";
12
+ type WebhookEvent = {
13
+ transactionId: string;
14
+ status: OnrampTransactionStatus;
15
+ outAmount?: number;
16
+ inAmount?: number;
17
+ statusReason?: string;
18
+ targetCurrency: string;
19
+ sourceCurrency: string;
20
+ onramp: string;
21
+ statusDate: string;
22
+ };
23
+
24
+ type CurrentChain = Pick<ConnectedChain, "namespace"> & {
25
+ id: number;
26
+ info?: Chain;
27
+ };
28
+
29
+ type OnrampPartner = {
30
+ id: string;
31
+ name: string;
32
+ rate: number;
33
+ payout: number;
34
+ recommendations?: string[];
35
+ };
36
+
37
+ type PaymentMethod = {
38
+ id: string;
39
+ name: string;
40
+ icon?: string;
41
+ };
42
+
43
+ type OnrampFormState = {
44
+ paymentMethods: PaymentMethod[];
45
+ selectedPaymentMethod: PaymentMethod | null;
46
+ onPaymentMethodChange: (method: PaymentMethod) => void;
47
+ fiatCurrencies: readonly string[];
48
+ selectedCurrency: FiatCurrency;
49
+ onCurrencyChange: (currency: FiatCurrency) => void;
50
+ spendAmount: string;
51
+ onSpendAmountChange: (value: string) => void;
52
+ presetAmounts: readonly number[];
53
+ chains: API.NetworkInfos[];
54
+ selectedChain: CurrentChain | null;
55
+ onChainChange: (chain: API.NetworkInfos) => Promise<void>;
56
+ wallet: any;
57
+ address?: string;
58
+ receiveQuantity: string;
59
+ receiveQuantityPlaceholder: string;
60
+ partners: OnrampPartner[];
61
+ selectedPartner: OnrampPartner | null;
62
+ onPartnerChange: (partner: OnrampPartner) => void;
63
+ exchangeRateText: string;
64
+ /** True while SWR is fetching/revalidating (for countdown reset). */
65
+ quoteIsValidating: boolean;
66
+ isAvailable: boolean;
67
+ isQuoteLoading: boolean;
68
+ /** Error message when spend amount is outside min/max limits. */
69
+ spendAmountError: string;
70
+ onContinue: () => void;
71
+ isContinueDisabled: boolean;
72
+ iframeDialogOpen: boolean;
73
+ setIframeDialogOpen: (open: boolean) => void;
74
+ onramperIframeUrl: string;
75
+ statusData: WebhookEvent | null | undefined;
76
+ transactions: WebhookEvent[];
77
+ pendingTransactions: WebhookEvent[];
78
+ historyTransactions: WebhookEvent[];
79
+ isStatusLoading: boolean;
80
+ };
81
+ declare const useOnrampFormScript: () => OnrampFormState;
82
+
83
+ type OnrampFormProps = OnrampFormState & {
84
+ close?: () => void;
85
+ };
86
+ declare const OnrampFormUI: FC<OnrampFormProps>;
87
+
88
+ type OnrampFormWidgetProps = {
89
+ close?: () => void;
90
+ };
91
+ declare const OnrampForm: FC<OnrampFormWidgetProps>;
92
+
93
+ declare const ExchangeIcon: FC<SVGProps<SVGSVGElement>>;
94
+
95
+ declare const ArrowDownIcon: FC<SVGProps<SVGSVGElement>>;
96
+
97
+ declare const BuyCryptoIcon: FC<SVGProps<SVGSVGElement>>;
98
+
99
+ type OnrampQuotePaymentMethod = {
100
+ paymentTypeId: string;
101
+ name: string;
102
+ icon: string;
103
+ details: {
104
+ currencyStatus: string;
105
+ limits: Record<string, {
106
+ min: number;
107
+ max: number;
108
+ }>;
109
+ };
110
+ };
111
+ type OnrampQuoteError = {
112
+ type: string;
113
+ errorId: number;
114
+ message: string;
115
+ onramp?: string;
116
+ parameter?: string;
117
+ value?: string;
118
+ name: string;
119
+ };
120
+ type OnrampQuoteItem = {
121
+ rate?: number;
122
+ networkFee?: number;
123
+ transactionFee?: number;
124
+ payout?: number;
125
+ availablePaymentMethods?: OnrampQuotePaymentMethod[];
126
+ ramp: string;
127
+ paymentMethod?: string;
128
+ quoteId: string;
129
+ errors?: OnrampQuoteError[];
130
+ recommendations?: string[];
131
+ };
132
+ /** paymentMethodId → { min, max } (from aggregatedLimit) */
133
+ type PaymentMethodLimitsMap = Record<string, {
134
+ min: number;
135
+ max: number;
136
+ }>;
137
+ declare function useOnrampAvailability(currency: string): {
138
+ isAvailable: boolean;
139
+ partners: OnrampPartner[];
140
+ paymentMethods: PaymentMethod[];
141
+ paymentMethodLimits: PaymentMethodLimitsMap;
142
+ isLoading: boolean;
143
+ error: any;
144
+ validRamps: OnrampQuoteItem[];
145
+ isValidating: boolean;
146
+ getPaymentMethodsForPartner: (partnerId: string) => PaymentMethod[];
147
+ };
148
+
149
+ interface OnrampPluginOptions {
150
+ title?: string;
151
+ icon?: React.ReactNode;
152
+ apiKey: string;
153
+ secretKey: string;
154
+ workerUrl?: string;
155
+ }
156
+ declare function registerOnrampPlugin(options: OnrampPluginOptions): (SDK: OrderlySDK) => void;
157
+
158
+ export { ArrowDownIcon, BuyCryptoIcon, ExchangeIcon, FIAT_CURRENCIES, type FiatCurrency, OnrampForm, type OnrampFormProps, type OnrampFormState, OnrampFormUI, type OnrampFormWidgetProps, type OnrampPluginOptions, PRESET_AMOUNTS, formatCompact, registerOnrampPlugin, useOnrampAvailability, useOnrampFormScript };
@@ -0,0 +1,158 @@
1
+ import React, { FC, SVGProps } from 'react';
2
+ import { API } from '@orderly.network/types';
3
+ import { ConnectedChain, Chain } from '@orderly.network/hooks';
4
+ import { OrderlySDK } from '@orderly.network/plugin-core';
5
+
6
+ declare const FIAT_CURRENCIES: readonly ["USD", "EUR", "CNY", "HKD", "TWD", "KRW", "JPY"];
7
+ type FiatCurrency = (typeof FIAT_CURRENCIES)[number];
8
+ declare const PRESET_AMOUNTS: Record<FiatCurrency, readonly number[]>;
9
+ declare function formatCompact(n: number): string;
10
+
11
+ type OnrampTransactionStatus = "new" | "pending" | "completed" | "failed" | "paid" | "canceled";
12
+ type WebhookEvent = {
13
+ transactionId: string;
14
+ status: OnrampTransactionStatus;
15
+ outAmount?: number;
16
+ inAmount?: number;
17
+ statusReason?: string;
18
+ targetCurrency: string;
19
+ sourceCurrency: string;
20
+ onramp: string;
21
+ statusDate: string;
22
+ };
23
+
24
+ type CurrentChain = Pick<ConnectedChain, "namespace"> & {
25
+ id: number;
26
+ info?: Chain;
27
+ };
28
+
29
+ type OnrampPartner = {
30
+ id: string;
31
+ name: string;
32
+ rate: number;
33
+ payout: number;
34
+ recommendations?: string[];
35
+ };
36
+
37
+ type PaymentMethod = {
38
+ id: string;
39
+ name: string;
40
+ icon?: string;
41
+ };
42
+
43
+ type OnrampFormState = {
44
+ paymentMethods: PaymentMethod[];
45
+ selectedPaymentMethod: PaymentMethod | null;
46
+ onPaymentMethodChange: (method: PaymentMethod) => void;
47
+ fiatCurrencies: readonly string[];
48
+ selectedCurrency: FiatCurrency;
49
+ onCurrencyChange: (currency: FiatCurrency) => void;
50
+ spendAmount: string;
51
+ onSpendAmountChange: (value: string) => void;
52
+ presetAmounts: readonly number[];
53
+ chains: API.NetworkInfos[];
54
+ selectedChain: CurrentChain | null;
55
+ onChainChange: (chain: API.NetworkInfos) => Promise<void>;
56
+ wallet: any;
57
+ address?: string;
58
+ receiveQuantity: string;
59
+ receiveQuantityPlaceholder: string;
60
+ partners: OnrampPartner[];
61
+ selectedPartner: OnrampPartner | null;
62
+ onPartnerChange: (partner: OnrampPartner) => void;
63
+ exchangeRateText: string;
64
+ /** True while SWR is fetching/revalidating (for countdown reset). */
65
+ quoteIsValidating: boolean;
66
+ isAvailable: boolean;
67
+ isQuoteLoading: boolean;
68
+ /** Error message when spend amount is outside min/max limits. */
69
+ spendAmountError: string;
70
+ onContinue: () => void;
71
+ isContinueDisabled: boolean;
72
+ iframeDialogOpen: boolean;
73
+ setIframeDialogOpen: (open: boolean) => void;
74
+ onramperIframeUrl: string;
75
+ statusData: WebhookEvent | null | undefined;
76
+ transactions: WebhookEvent[];
77
+ pendingTransactions: WebhookEvent[];
78
+ historyTransactions: WebhookEvent[];
79
+ isStatusLoading: boolean;
80
+ };
81
+ declare const useOnrampFormScript: () => OnrampFormState;
82
+
83
+ type OnrampFormProps = OnrampFormState & {
84
+ close?: () => void;
85
+ };
86
+ declare const OnrampFormUI: FC<OnrampFormProps>;
87
+
88
+ type OnrampFormWidgetProps = {
89
+ close?: () => void;
90
+ };
91
+ declare const OnrampForm: FC<OnrampFormWidgetProps>;
92
+
93
+ declare const ExchangeIcon: FC<SVGProps<SVGSVGElement>>;
94
+
95
+ declare const ArrowDownIcon: FC<SVGProps<SVGSVGElement>>;
96
+
97
+ declare const BuyCryptoIcon: FC<SVGProps<SVGSVGElement>>;
98
+
99
+ type OnrampQuotePaymentMethod = {
100
+ paymentTypeId: string;
101
+ name: string;
102
+ icon: string;
103
+ details: {
104
+ currencyStatus: string;
105
+ limits: Record<string, {
106
+ min: number;
107
+ max: number;
108
+ }>;
109
+ };
110
+ };
111
+ type OnrampQuoteError = {
112
+ type: string;
113
+ errorId: number;
114
+ message: string;
115
+ onramp?: string;
116
+ parameter?: string;
117
+ value?: string;
118
+ name: string;
119
+ };
120
+ type OnrampQuoteItem = {
121
+ rate?: number;
122
+ networkFee?: number;
123
+ transactionFee?: number;
124
+ payout?: number;
125
+ availablePaymentMethods?: OnrampQuotePaymentMethod[];
126
+ ramp: string;
127
+ paymentMethod?: string;
128
+ quoteId: string;
129
+ errors?: OnrampQuoteError[];
130
+ recommendations?: string[];
131
+ };
132
+ /** paymentMethodId → { min, max } (from aggregatedLimit) */
133
+ type PaymentMethodLimitsMap = Record<string, {
134
+ min: number;
135
+ max: number;
136
+ }>;
137
+ declare function useOnrampAvailability(currency: string): {
138
+ isAvailable: boolean;
139
+ partners: OnrampPartner[];
140
+ paymentMethods: PaymentMethod[];
141
+ paymentMethodLimits: PaymentMethodLimitsMap;
142
+ isLoading: boolean;
143
+ error: any;
144
+ validRamps: OnrampQuoteItem[];
145
+ isValidating: boolean;
146
+ getPaymentMethodsForPartner: (partnerId: string) => PaymentMethod[];
147
+ };
148
+
149
+ interface OnrampPluginOptions {
150
+ title?: string;
151
+ icon?: React.ReactNode;
152
+ apiKey: string;
153
+ secretKey: string;
154
+ workerUrl?: string;
155
+ }
156
+ declare function registerOnrampPlugin(options: OnrampPluginOptions): (SDK: OrderlySDK) => void;
157
+
158
+ export { ArrowDownIcon, BuyCryptoIcon, ExchangeIcon, FIAT_CURRENCIES, type FiatCurrency, OnrampForm, type OnrampFormProps, type OnrampFormState, OnrampFormUI, type OnrampFormWidgetProps, type OnrampPluginOptions, PRESET_AMOUNTS, formatCompact, registerOnrampPlugin, useOnrampAvailability, useOnrampFormScript };