@cookill/wallet-adapter 2.4.2 → 2.5.1
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/README.md +178 -58
- package/dist/ErrorBoundary.cjs +40 -20
- package/dist/ErrorBoundary.cjs.map +1 -1
- package/dist/ErrorBoundary.js +6 -6
- package/dist/ErrorBoundary.js.map +1 -1
- package/dist/LoadingStates.cjs +54 -32
- package/dist/LoadingStates.cjs.map +1 -1
- package/dist/LoadingStates.js +7 -5
- package/dist/LoadingStates.js.map +1 -1
- package/dist/index.cjs +48 -17
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +14 -3
- package/dist/index.js.map +1 -1
- package/dist/react.cjs +200 -136
- package/dist/react.cjs.map +1 -1
- package/dist/react.js +89 -47
- package/dist/react.js.map +1 -1
- package/dist/standard.cjs +42 -14
- package/dist/standard.cjs.map +1 -1
- package/dist/standard.js +11 -3
- package/dist/standard.js.map +1 -1
- package/package.json +4 -3
package/dist/LoadingStates.cjs
CHANGED
|
@@ -1,10 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
var
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
6
19
|
|
|
7
20
|
// src/LoadingStates.tsx
|
|
21
|
+
var LoadingStates_exports = {};
|
|
22
|
+
__export(LoadingStates_exports, {
|
|
23
|
+
ApprovalPending: () => ApprovalPending,
|
|
24
|
+
ConnectionStatus: () => ConnectionStatus,
|
|
25
|
+
LoadingSpinner: () => LoadingSpinner,
|
|
26
|
+
default: () => LoadingStates_default
|
|
27
|
+
});
|
|
28
|
+
module.exports = __toCommonJS(LoadingStates_exports);
|
|
29
|
+
var import_jsx_runtime = require("react/jsx-runtime");
|
|
8
30
|
function LoadingSpinner({ size = "md", color = "#6EB9A8", className = "" }) {
|
|
9
31
|
const sizes = {
|
|
10
32
|
sm: { container: 20, stroke: 2 },
|
|
@@ -14,7 +36,7 @@ function LoadingSpinner({ size = "md", color = "#6EB9A8", className = "" }) {
|
|
|
14
36
|
const { container, stroke } = sizes[size];
|
|
15
37
|
const radius = (container - stroke) / 2;
|
|
16
38
|
const circumference = radius * 2 * Math.PI;
|
|
17
|
-
return /* @__PURE__ */
|
|
39
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
18
40
|
"svg",
|
|
19
41
|
{
|
|
20
42
|
width: container,
|
|
@@ -23,13 +45,13 @@ function LoadingSpinner({ size = "md", color = "#6EB9A8", className = "" }) {
|
|
|
23
45
|
className,
|
|
24
46
|
style: { animation: "wallet-spin 1s linear infinite" },
|
|
25
47
|
children: [
|
|
26
|
-
/* @__PURE__ */
|
|
48
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("style", { children: `
|
|
27
49
|
@keyframes wallet-spin {
|
|
28
50
|
from { transform: rotate(0deg); }
|
|
29
51
|
to { transform: rotate(360deg); }
|
|
30
52
|
}
|
|
31
53
|
` }),
|
|
32
|
-
/* @__PURE__ */
|
|
54
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
33
55
|
"circle",
|
|
34
56
|
{
|
|
35
57
|
cx: container / 2,
|
|
@@ -41,7 +63,7 @@ function LoadingSpinner({ size = "md", color = "#6EB9A8", className = "" }) {
|
|
|
41
63
|
strokeOpacity: 0.2
|
|
42
64
|
}
|
|
43
65
|
),
|
|
44
|
-
/* @__PURE__ */
|
|
66
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
45
67
|
"circle",
|
|
46
68
|
{
|
|
47
69
|
cx: container / 2,
|
|
@@ -65,7 +87,7 @@ function ApprovalPending({
|
|
|
65
87
|
walletName = "Sheep Wallet",
|
|
66
88
|
onCancel
|
|
67
89
|
}) {
|
|
68
|
-
return /* @__PURE__ */
|
|
90
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
69
91
|
"div",
|
|
70
92
|
{
|
|
71
93
|
style: {
|
|
@@ -76,7 +98,7 @@ function ApprovalPending({
|
|
|
76
98
|
border: "1px solid #e2e8f0"
|
|
77
99
|
},
|
|
78
100
|
children: [
|
|
79
|
-
/* @__PURE__ */
|
|
101
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
80
102
|
"div",
|
|
81
103
|
{
|
|
82
104
|
style: {
|
|
@@ -91,8 +113,8 @@ function ApprovalPending({
|
|
|
91
113
|
position: "relative"
|
|
92
114
|
},
|
|
93
115
|
children: [
|
|
94
|
-
/* @__PURE__ */
|
|
95
|
-
/* @__PURE__ */
|
|
116
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadingSpinner, { size: "lg" }),
|
|
117
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
96
118
|
"div",
|
|
97
119
|
{
|
|
98
120
|
style: {
|
|
@@ -108,7 +130,7 @@ function ApprovalPending({
|
|
|
108
130
|
]
|
|
109
131
|
}
|
|
110
132
|
),
|
|
111
|
-
/* @__PURE__ */
|
|
133
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
112
134
|
"h3",
|
|
113
135
|
{
|
|
114
136
|
style: {
|
|
@@ -120,7 +142,7 @@ function ApprovalPending({
|
|
|
120
142
|
children: title
|
|
121
143
|
}
|
|
122
144
|
),
|
|
123
|
-
/* @__PURE__ */
|
|
145
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
124
146
|
"p",
|
|
125
147
|
{
|
|
126
148
|
style: {
|
|
@@ -131,7 +153,7 @@ function ApprovalPending({
|
|
|
131
153
|
children: message
|
|
132
154
|
}
|
|
133
155
|
),
|
|
134
|
-
/* @__PURE__ */
|
|
156
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
135
157
|
"p",
|
|
136
158
|
{
|
|
137
159
|
style: {
|
|
@@ -146,7 +168,7 @@ function ApprovalPending({
|
|
|
146
168
|
]
|
|
147
169
|
}
|
|
148
170
|
),
|
|
149
|
-
onCancel && /* @__PURE__ */
|
|
171
|
+
onCancel && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
150
172
|
"button",
|
|
151
173
|
{
|
|
152
174
|
onClick: onCancel,
|
|
@@ -205,7 +227,7 @@ function ConnectionStatus({ status, message, onRetry }) {
|
|
|
205
227
|
}
|
|
206
228
|
};
|
|
207
229
|
const config = statusConfig[status];
|
|
208
|
-
return /* @__PURE__ */
|
|
230
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
209
231
|
"div",
|
|
210
232
|
{
|
|
211
233
|
style: {
|
|
@@ -216,7 +238,7 @@ function ConnectionStatus({ status, message, onRetry }) {
|
|
|
216
238
|
textAlign: "center"
|
|
217
239
|
},
|
|
218
240
|
children: [
|
|
219
|
-
/* @__PURE__ */
|
|
241
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
220
242
|
"div",
|
|
221
243
|
{
|
|
222
244
|
style: {
|
|
@@ -229,15 +251,15 @@ function ConnectionStatus({ status, message, onRetry }) {
|
|
|
229
251
|
alignItems: "center",
|
|
230
252
|
justifyContent: "center"
|
|
231
253
|
},
|
|
232
|
-
children: status === "success" ? /* @__PURE__ */
|
|
233
|
-
/* @__PURE__ */
|
|
234
|
-
/* @__PURE__ */
|
|
235
|
-
] }) : /* @__PURE__ */
|
|
254
|
+
children: status === "success" ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: config.color, strokeWidth: "2", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("polyline", { points: "20,6 9,17 4,12" }) }) : status === "error" ? /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", stroke: config.color, strokeWidth: "2", children: [
|
|
255
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "18", y1: "6", x2: "6", y2: "18" }),
|
|
256
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("line", { x1: "6", y1: "6", x2: "18", y2: "18" })
|
|
257
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LoadingSpinner, { size: "sm", color: config.color })
|
|
236
258
|
}
|
|
237
259
|
),
|
|
238
|
-
/* @__PURE__ */
|
|
239
|
-
/* @__PURE__ */
|
|
240
|
-
status === "error" && onRetry && /* @__PURE__ */
|
|
260
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("h4", { style: { margin: "0 0 4px", fontSize: "14px", fontWeight: 600, color: config.color }, children: config.title }),
|
|
261
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("p", { style: { margin: 0, fontSize: "12px", color: "#64748b" }, children: message || config.defaultMessage }),
|
|
262
|
+
status === "error" && onRetry && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
241
263
|
"button",
|
|
242
264
|
{
|
|
243
265
|
onClick: onRetry,
|
|
@@ -260,10 +282,10 @@ function ConnectionStatus({ status, message, onRetry }) {
|
|
|
260
282
|
);
|
|
261
283
|
}
|
|
262
284
|
var LoadingStates_default = { LoadingSpinner, ApprovalPending, ConnectionStatus };
|
|
263
|
-
|
|
264
|
-
exports
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
285
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
286
|
+
0 && (module.exports = {
|
|
287
|
+
ApprovalPending,
|
|
288
|
+
ConnectionStatus,
|
|
289
|
+
LoadingSpinner
|
|
290
|
+
});
|
|
269
291
|
//# sourceMappingURL=LoadingStates.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/LoadingStates.tsx"],"names":["jsxs","jsx"],"mappings":";;;;;;;AAaO,SAAS,cAAA,CAAe,EAAE,IAAA,GAAO,IAAA,EAAM,QAAQ,SAAA,EAAW,SAAA,GAAY,IAAG,EAAwB;AACtG,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,EAAA,EAAI,EAAE,SAAA,EAAW,EAAA,EAAI,QAAQ,CAAA,EAAE;AAAA,IAC/B,EAAA,EAAI,EAAE,SAAA,EAAW,EAAA,EAAI,QAAQ,CAAA,EAAE;AAAA,IAC/B,EAAA,EAAI,EAAE,SAAA,EAAW,EAAA,EAAI,QAAQ,CAAA;AAAE,GACjC;AAEA,EAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAO,GAAI,MAAM,IAAI,CAAA;AACxC,EAAA,MAAM,MAAA,GAAA,CAAU,YAAY,MAAA,IAAU,CAAA;AACtC,EAAA,MAAM,aAAA,GAAgB,MAAA,GAAS,CAAA,GAAI,IAAA,CAAK,EAAA;AAExC,EAAA,uBACEA,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,SAAA;AAAA,MACP,MAAA,EAAQ,SAAA;AAAA,MACR,OAAA,EAAS,CAAA,IAAA,EAAO,SAAS,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAAA,MACtC,SAAA;AAAA,MACA,KAAA,EAAO,EAAE,SAAA,EAAW,gCAAA,EAAiC;AAAA,MAErD,QAAA,EAAA;AAAA,wBAAAC,cAAA,CAAC,OAAA,EAAA,EACE,QAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAA,CAAA,EAMH,CAAA;AAAA,wBACAA,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAI,SAAA,GAAY,CAAA;AAAA,YAChB,IAAI,SAAA,GAAY,CAAA;AAAA,YAChB,CAAA,EAAG,MAAA;AAAA,YACH,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAQ,KAAA;AAAA,YACR,WAAA,EAAa,MAAA;AAAA,YACb,aAAA,EAAe;AAAA;AAAA,SACjB;AAAA,wBACAA,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAI,SAAA,GAAY,CAAA;AAAA,YAChB,IAAI,SAAA,GAAY,CAAA;AAAA,YAChB,CAAA,EAAG,MAAA;AAAA,YACH,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAQ,KAAA;AAAA,YACR,WAAA,EAAa,MAAA;AAAA,YACb,aAAA,EAAc,OAAA;AAAA,YACd,eAAA,EAAiB,aAAA;AAAA,YACjB,kBAAkB,aAAA,GAAgB;AAAA;AAAA;AACpC;AAAA;AAAA,GACF;AAEJ;AASO,SAAS,eAAA,CAAgB;AAAA,EAC9B,KAAA,GAAQ,sBAAA;AAAA,EACR,OAAA,GAAU,2CAAA;AAAA,EACV,UAAA,GAAa,cAAA;AAAA,EACb;AACF,CAAA,EAAyB;AACvB,EAAA,uBACED,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,WAAA;AAAA,QACT,SAAA,EAAW,QAAA;AAAA,QACX,eAAA,EAAiB,SAAA;AAAA,QACjB,YAAA,EAAc,MAAA;AAAA,QACd,MAAA,EAAQ;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAA,eAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,MAAA,EAAQ,aAAA;AAAA,cACR,YAAA,EAAc,KAAA;AAAA,cACd,eAAA,EAAiB,SAAA;AAAA,cACjB,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,cAAA,EAAgB,QAAA;AAAA,cAChB,QAAA,EAAU;AAAA,aACZ;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAAC,cAAA,EAAA,EAAe,MAAK,IAAA,EAAK,CAAA;AAAA,8BAC1BA,cAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAO;AAAA,oBACL,QAAA,EAAU,UAAA;AAAA,oBACV,KAAA,EAAO,MAAA;AAAA,oBACP,YAAA,EAAc,KAAA;AAAA,oBACd,MAAA,EAAQ,uBAAA;AAAA,oBACR,cAAA,EAAgB,SAAA;AAAA,oBAChB,SAAA,EAAW;AAAA;AACb;AAAA;AACF;AAAA;AAAA,SACF;AAAA,wBAEAA,cAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,MAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAU,MAAA;AAAA,cACV,UAAA,EAAY,GAAA;AAAA,cACZ,KAAA,EAAO;AAAA,aACT;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBAEAA,cAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,MAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAU,MAAA;AAAA,cACV,KAAA,EAAO;AAAA,aACT;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBAEAD,eAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,MAAA,EAAQ,UAAA;AAAA,cACR,QAAA,EAAU,MAAA;AAAA,cACV,KAAA,EAAO;AAAA,aACT;AAAA,YACD,QAAA,EAAA;AAAA,cAAA,OAAA;AAAA,cACO,UAAA;AAAA,cAAW;AAAA;AAAA;AAAA,SACnB;AAAA,QAEC,QAAA,oBACCC,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,QAAA;AAAA,YACT,KAAA,EAAO;AAAA,cACL,OAAA,EAAS,WAAA;AAAA,cACT,YAAA,EAAc,MAAA;AAAA,cACd,MAAA,EAAQ,mBAAA;AAAA,cACR,eAAA,EAAiB,OAAA;AAAA,cACjB,KAAA,EAAO,SAAA;AAAA,cACP,MAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAU,MAAA;AAAA,cACV,UAAA,EAAY,GAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,SAAA;AACxC,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,WAAA,GAAc,SAAA;AAAA,YACtC,CAAA;AAAA,YACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,OAAA;AACxC,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,WAAA,GAAc,SAAA;AAAA,YACtC,CAAA;AAAA,YACD,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,GAEJ;AAEJ;AAQO,SAAS,gBAAA,CAAiB,EAAE,MAAA,EAAQ,OAAA,EAAS,SAAQ,EAA0B;AACpF,EAAA,MAAM,YAAA,GAAe;AAAA,IACnB,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,YAAA;AAAA,MACP,cAAA,EAAgB,sCAAA;AAAA,MAChB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,mBAAA;AAAA,MACP,cAAA,EAAgB,+CAAA;AAAA,MAChB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,OAAA,EAAS;AAAA,MACP,KAAA,EAAO,oBAAA;AAAA,MACP,cAAA,EAAgB,4CAAA;AAAA,MAChB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,OAAA,EAAS;AAAA,MACP,KAAA,EAAO,WAAA;AAAA,MACP,cAAA,EAAgB,kCAAA;AAAA,MAChB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,KAAA,EAAO;AAAA,MACL,KAAA,EAAO,mBAAA;AAAA,MACP,cAAA,EAAgB,sCAAA;AAAA,MAChB,KAAA,EAAO;AAAA;AACT,GACF;AAEA,EAAA,MAAM,MAAA,GAAS,aAAa,MAAM,CAAA;AAElC,EAAA,uBACED,eAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,MAAA;AAAA,QACT,YAAA,EAAc,MAAA;AAAA,QACd,eAAA,EAAiB,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,EAAA,CAAA;AAAA,QAChC,MAAA,EAAQ,CAAA,UAAA,EAAa,MAAA,CAAO,KAAK,CAAA,EAAA,CAAA;AAAA,QACjC,SAAA,EAAW;AAAA,OACb;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAAC,cAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,MAAA,EAAQ,aAAA;AAAA,cACR,YAAA,EAAc,KAAA;AAAA,cACd,eAAA,EAAiB,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,EAAA,CAAA;AAAA,cAChC,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,cAAA,EAAgB;AAAA,aAClB;AAAA,YAEC,qBAAW,SAAA,mBACVA,cAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,MAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,MAAK,MAAA,EAAO,MAAA,EAAQ,OAAO,KAAA,EAAO,WAAA,EAAY,KAC5F,QAAA,kBAAAA,cAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB,GACpC,CAAA,GACE,MAAA,KAAW,0BACbD,eAAA,CAAC,KAAA,EAAA,EAAI,OAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,aAAY,IAAA,EAAK,MAAA,EAAO,QAAQ,MAAA,CAAO,KAAA,EAAO,aAAY,GAAA,EAC5F,QAAA,EAAA;AAAA,8BAAAC,cAAA,CAAC,MAAA,EAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,KAAI,EAAA,EAAG,GAAA,EAAI,IAAG,IAAA,EAAK,CAAA;AAAA,8BACpCA,cAAA,CAAC,UAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA,aAAA,EACtC,oBAEAA,cAAA,CAAC,cAAA,EAAA,EAAe,MAAK,IAAA,EAAK,KAAA,EAAO,OAAO,KAAA,EAAO;AAAA;AAAA,SAEnD;AAAA,wBAEAA,cAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,QAAQ,SAAA,EAAW,QAAA,EAAU,MAAA,EAAQ,UAAA,EAAY,KAAK,KAAA,EAAO,MAAA,CAAO,KAAA,EAAM,EACpF,iBAAO,KAAA,EACV,CAAA;AAAA,wBAEAA,cAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAU,EACvD,QAAA,EAAA,OAAA,IAAW,OAAO,cAAA,EACrB,CAAA;AAAA,QAEC,MAAA,KAAW,WAAW,OAAA,oBACrBA,cAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,OAAA;AAAA,YACT,KAAA,EAAO;AAAA,cACL,SAAA,EAAW,MAAA;AAAA,cACX,OAAA,EAAS,UAAA;AAAA,cACT,YAAA,EAAc,KAAA;AAAA,cACd,MAAA,EAAQ,MAAA;AAAA,cACR,iBAAiB,MAAA,CAAO,KAAA;AAAA,cACxB,KAAA,EAAO,OAAA;AAAA,cACP,MAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAU,MAAA;AAAA,cACV,UAAA,EAAY;AAAA,aACd;AAAA,YACD,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,GAEJ;AAEJ;AAEA,IAAO,qBAAA,GAAQ,EAAE,cAAA,EAAgB,eAAA,EAAiB,gBAAA","file":"LoadingStates.cjs","sourcesContent":["/**\n * @cookill/wallet-adapter - Loading States\n * Loading spinners and approval pending states for dApps\n */\n\nimport React from 'react';\n\ninterface LoadingSpinnerProps {\n size?: 'sm' | 'md' | 'lg';\n color?: string;\n className?: string;\n}\n\nexport function LoadingSpinner({ size = 'md', color = '#6EB9A8', className = '' }: LoadingSpinnerProps) {\n const sizes = {\n sm: { container: 20, stroke: 2 },\n md: { container: 32, stroke: 3 },\n lg: { container: 48, stroke: 4 },\n };\n\n const { container, stroke } = sizes[size];\n const radius = (container - stroke) / 2;\n const circumference = radius * 2 * Math.PI;\n\n return (\n <svg\n width={container}\n height={container}\n viewBox={`0 0 ${container} ${container}`}\n className={className}\n style={{ animation: 'wallet-spin 1s linear infinite' }}\n >\n <style>\n {`\n @keyframes wallet-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `}\n </style>\n <circle\n cx={container / 2}\n cy={container / 2}\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeOpacity={0.2}\n />\n <circle\n cx={container / 2}\n cy={container / 2}\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={circumference * 0.75}\n />\n </svg>\n );\n}\n\ninterface ApprovalPendingProps {\n title?: string;\n message?: string;\n walletName?: string;\n onCancel?: () => void;\n}\n\nexport function ApprovalPending({\n title = 'Waiting for Approval',\n message = 'Please approve the request in your wallet',\n walletName = 'Sheep Wallet',\n onCancel,\n}: ApprovalPendingProps) {\n return (\n <div\n style={{\n padding: '32px 24px',\n textAlign: 'center',\n backgroundColor: '#f8fafc',\n borderRadius: '16px',\n border: '1px solid #e2e8f0',\n }}\n >\n <div\n style={{\n width: '80px',\n height: '80px',\n margin: '0 auto 20px',\n borderRadius: '50%',\n backgroundColor: '#011B29',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n }}\n >\n <LoadingSpinner size=\"lg\" />\n <div\n style={{\n position: 'absolute',\n inset: '-4px',\n borderRadius: '50%',\n border: '2px solid transparent',\n borderTopColor: '#6EB9A8',\n animation: 'wallet-spin 2s linear infinite',\n }}\n />\n </div>\n\n <h3\n style={{\n margin: '0 0 8px',\n fontSize: '18px',\n fontWeight: 600,\n color: '#0f172a',\n }}\n >\n {title}\n </h3>\n\n <p\n style={{\n margin: '0 0 8px',\n fontSize: '14px',\n color: '#64748b',\n }}\n >\n {message}\n </p>\n\n <p\n style={{\n margin: '0 0 24px',\n fontSize: '12px',\n color: '#94a3b8',\n }}\n >\n Open {walletName} extension to continue\n </p>\n\n {onCancel && (\n <button\n onClick={onCancel}\n style={{\n padding: '10px 24px',\n borderRadius: '10px',\n border: '1px solid #e2e8f0',\n backgroundColor: 'white',\n color: '#64748b',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: 500,\n transition: 'all 0.2s ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f1f5f9';\n e.currentTarget.style.borderColor = '#cbd5e1';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'white';\n e.currentTarget.style.borderColor = '#e2e8f0';\n }}\n >\n Cancel\n </button>\n )}\n </div>\n );\n}\n\ninterface ConnectionStatusProps {\n status: 'connecting' | 'approving' | 'signing' | 'success' | 'error';\n message?: string;\n onRetry?: () => void;\n}\n\nexport function ConnectionStatus({ status, message, onRetry }: ConnectionStatusProps) {\n const statusConfig = {\n connecting: {\n title: 'Connecting',\n defaultMessage: 'Establishing connection to wallet...',\n color: '#6EB9A8',\n },\n approving: {\n title: 'Approval Required',\n defaultMessage: 'Please approve the connection in Sheep Wallet',\n color: '#f59e0b',\n },\n signing: {\n title: 'Signature Required',\n defaultMessage: 'Please sign the transaction in your wallet',\n color: '#6EB9A8',\n },\n success: {\n title: 'Connected',\n defaultMessage: 'Successfully connected to wallet',\n color: '#22c55e',\n },\n error: {\n title: 'Connection Failed',\n defaultMessage: 'Unable to connect. Please try again.',\n color: '#ef4444',\n },\n };\n\n const config = statusConfig[status];\n\n return (\n <div\n style={{\n padding: '20px',\n borderRadius: '12px',\n backgroundColor: `${config.color}10`,\n border: `1px solid ${config.color}30`,\n textAlign: 'center',\n }}\n >\n <div\n style={{\n width: '48px',\n height: '48px',\n margin: '0 auto 12px',\n borderRadius: '50%',\n backgroundColor: `${config.color}20`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {status === 'success' ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={config.color} strokeWidth=\"2\">\n <polyline points=\"20,6 9,17 4,12\" />\n </svg>\n ) : status === 'error' ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={config.color} strokeWidth=\"2\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n ) : (\n <LoadingSpinner size=\"sm\" color={config.color} />\n )}\n </div>\n\n <h4 style={{ margin: '0 0 4px', fontSize: '14px', fontWeight: 600, color: config.color }}>\n {config.title}\n </h4>\n\n <p style={{ margin: 0, fontSize: '12px', color: '#64748b' }}>\n {message || config.defaultMessage}\n </p>\n\n {status === 'error' && onRetry && (\n <button\n onClick={onRetry}\n style={{\n marginTop: '12px',\n padding: '6px 16px',\n borderRadius: '6px',\n border: 'none',\n backgroundColor: config.color,\n color: 'white',\n cursor: 'pointer',\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n Retry\n </button>\n )}\n </div>\n );\n}\n\nexport default { LoadingSpinner, ApprovalPending, ConnectionStatus };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/LoadingStates.tsx"],"sourcesContent":["/**\n * @cookill/wallet-adapter - Loading States\n * Loading spinners and approval pending states for dApps\n */\n\nimport React from 'react';\n\ninterface LoadingSpinnerProps {\n size?: 'sm' | 'md' | 'lg';\n color?: string;\n className?: string;\n}\n\nexport function LoadingSpinner({ size = 'md', color = '#6EB9A8', className = '' }: LoadingSpinnerProps) {\n const sizes = {\n sm: { container: 20, stroke: 2 },\n md: { container: 32, stroke: 3 },\n lg: { container: 48, stroke: 4 },\n };\n\n const { container, stroke } = sizes[size];\n const radius = (container - stroke) / 2;\n const circumference = radius * 2 * Math.PI;\n\n return (\n <svg\n width={container}\n height={container}\n viewBox={`0 0 ${container} ${container}`}\n className={className}\n style={{ animation: 'wallet-spin 1s linear infinite' }}\n >\n <style>\n {`\n @keyframes wallet-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `}\n </style>\n <circle\n cx={container / 2}\n cy={container / 2}\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeOpacity={0.2}\n />\n <circle\n cx={container / 2}\n cy={container / 2}\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={circumference * 0.75}\n />\n </svg>\n );\n}\n\ninterface ApprovalPendingProps {\n title?: string;\n message?: string;\n walletName?: string;\n onCancel?: () => void;\n}\n\nexport function ApprovalPending({\n title = 'Waiting for Approval',\n message = 'Please approve the request in your wallet',\n walletName = 'Sheep Wallet',\n onCancel,\n}: ApprovalPendingProps) {\n return (\n <div\n style={{\n padding: '32px 24px',\n textAlign: 'center',\n backgroundColor: '#f8fafc',\n borderRadius: '16px',\n border: '1px solid #e2e8f0',\n }}\n >\n <div\n style={{\n width: '80px',\n height: '80px',\n margin: '0 auto 20px',\n borderRadius: '50%',\n backgroundColor: '#011B29',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n }}\n >\n <LoadingSpinner size=\"lg\" />\n <div\n style={{\n position: 'absolute',\n inset: '-4px',\n borderRadius: '50%',\n border: '2px solid transparent',\n borderTopColor: '#6EB9A8',\n animation: 'wallet-spin 2s linear infinite',\n }}\n />\n </div>\n\n <h3\n style={{\n margin: '0 0 8px',\n fontSize: '18px',\n fontWeight: 600,\n color: '#0f172a',\n }}\n >\n {title}\n </h3>\n\n <p\n style={{\n margin: '0 0 8px',\n fontSize: '14px',\n color: '#64748b',\n }}\n >\n {message}\n </p>\n\n <p\n style={{\n margin: '0 0 24px',\n fontSize: '12px',\n color: '#94a3b8',\n }}\n >\n Open {walletName} extension to continue\n </p>\n\n {onCancel && (\n <button\n onClick={onCancel}\n style={{\n padding: '10px 24px',\n borderRadius: '10px',\n border: '1px solid #e2e8f0',\n backgroundColor: 'white',\n color: '#64748b',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: 500,\n transition: 'all 0.2s ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f1f5f9';\n e.currentTarget.style.borderColor = '#cbd5e1';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'white';\n e.currentTarget.style.borderColor = '#e2e8f0';\n }}\n >\n Cancel\n </button>\n )}\n </div>\n );\n}\n\ninterface ConnectionStatusProps {\n status: 'connecting' | 'approving' | 'signing' | 'success' | 'error';\n message?: string;\n onRetry?: () => void;\n}\n\nexport function ConnectionStatus({ status, message, onRetry }: ConnectionStatusProps) {\n const statusConfig = {\n connecting: {\n title: 'Connecting',\n defaultMessage: 'Establishing connection to wallet...',\n color: '#6EB9A8',\n },\n approving: {\n title: 'Approval Required',\n defaultMessage: 'Please approve the connection in Sheep Wallet',\n color: '#f59e0b',\n },\n signing: {\n title: 'Signature Required',\n defaultMessage: 'Please sign the transaction in your wallet',\n color: '#6EB9A8',\n },\n success: {\n title: 'Connected',\n defaultMessage: 'Successfully connected to wallet',\n color: '#22c55e',\n },\n error: {\n title: 'Connection Failed',\n defaultMessage: 'Unable to connect. Please try again.',\n color: '#ef4444',\n },\n };\n\n const config = statusConfig[status];\n\n return (\n <div\n style={{\n padding: '20px',\n borderRadius: '12px',\n backgroundColor: `${config.color}10`,\n border: `1px solid ${config.color}30`,\n textAlign: 'center',\n }}\n >\n <div\n style={{\n width: '48px',\n height: '48px',\n margin: '0 auto 12px',\n borderRadius: '50%',\n backgroundColor: `${config.color}20`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {status === 'success' ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={config.color} strokeWidth=\"2\">\n <polyline points=\"20,6 9,17 4,12\" />\n </svg>\n ) : status === 'error' ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={config.color} strokeWidth=\"2\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n ) : (\n <LoadingSpinner size=\"sm\" color={config.color} />\n )}\n </div>\n\n <h4 style={{ margin: '0 0 4px', fontSize: '14px', fontWeight: 600, color: config.color }}>\n {config.title}\n </h4>\n\n <p style={{ margin: 0, fontSize: '12px', color: '#64748b' }}>\n {message || config.defaultMessage}\n </p>\n\n {status === 'error' && onRetry && (\n <button\n onClick={onRetry}\n style={{\n marginTop: '12px',\n padding: '6px 16px',\n borderRadius: '6px',\n border: 'none',\n backgroundColor: config.color,\n color: 'white',\n cursor: 'pointer',\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n Retry\n </button>\n )}\n </div>\n );\n}\n\nexport default { LoadingSpinner, ApprovalPending, ConnectionStatus };\n"],"mappings":"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","names":[]}
|
package/dist/LoadingStates.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
|
|
3
1
|
// src/LoadingStates.tsx
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
3
|
function LoadingSpinner({ size = "md", color = "#6EB9A8", className = "" }) {
|
|
5
4
|
const sizes = {
|
|
6
5
|
sm: { container: 20, stroke: 2 },
|
|
@@ -256,7 +255,10 @@ function ConnectionStatus({ status, message, onRetry }) {
|
|
|
256
255
|
);
|
|
257
256
|
}
|
|
258
257
|
var LoadingStates_default = { LoadingSpinner, ApprovalPending, ConnectionStatus };
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
258
|
+
export {
|
|
259
|
+
ApprovalPending,
|
|
260
|
+
ConnectionStatus,
|
|
261
|
+
LoadingSpinner,
|
|
262
|
+
LoadingStates_default as default
|
|
263
|
+
};
|
|
262
264
|
//# sourceMappingURL=LoadingStates.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/LoadingStates.tsx"],"names":[],"mappings":";;;AAaO,SAAS,cAAA,CAAe,EAAE,IAAA,GAAO,IAAA,EAAM,QAAQ,SAAA,EAAW,SAAA,GAAY,IAAG,EAAwB;AACtG,EAAA,MAAM,KAAA,GAAQ;AAAA,IACZ,EAAA,EAAI,EAAE,SAAA,EAAW,EAAA,EAAI,QAAQ,CAAA,EAAE;AAAA,IAC/B,EAAA,EAAI,EAAE,SAAA,EAAW,EAAA,EAAI,QAAQ,CAAA,EAAE;AAAA,IAC/B,EAAA,EAAI,EAAE,SAAA,EAAW,EAAA,EAAI,QAAQ,CAAA;AAAE,GACjC;AAEA,EAAA,MAAM,EAAE,SAAA,EAAW,MAAA,EAAO,GAAI,MAAM,IAAI,CAAA;AACxC,EAAA,MAAM,MAAA,GAAA,CAAU,YAAY,MAAA,IAAU,CAAA;AACtC,EAAA,MAAM,aAAA,GAAgB,MAAA,GAAS,CAAA,GAAI,IAAA,CAAK,EAAA;AAExC,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO,SAAA;AAAA,MACP,MAAA,EAAQ,SAAA;AAAA,MACR,OAAA,EAAS,CAAA,IAAA,EAAO,SAAS,CAAA,CAAA,EAAI,SAAS,CAAA,CAAA;AAAA,MACtC,SAAA;AAAA,MACA,KAAA,EAAO,EAAE,SAAA,EAAW,gCAAA,EAAiC;AAAA,MAErD,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,OAAA,EAAA,EACE,QAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA,QAAA,CAAA,EAMH,CAAA;AAAA,wBACA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAI,SAAA,GAAY,CAAA;AAAA,YAChB,IAAI,SAAA,GAAY,CAAA;AAAA,YAChB,CAAA,EAAG,MAAA;AAAA,YACH,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAQ,KAAA;AAAA,YACR,WAAA,EAAa,MAAA;AAAA,YACb,aAAA,EAAe;AAAA;AAAA,SACjB;AAAA,wBACA,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,IAAI,SAAA,GAAY,CAAA;AAAA,YAChB,IAAI,SAAA,GAAY,CAAA;AAAA,YAChB,CAAA,EAAG,MAAA;AAAA,YACH,IAAA,EAAK,MAAA;AAAA,YACL,MAAA,EAAQ,KAAA;AAAA,YACR,WAAA,EAAa,MAAA;AAAA,YACb,aAAA,EAAc,OAAA;AAAA,YACd,eAAA,EAAiB,aAAA;AAAA,YACjB,kBAAkB,aAAA,GAAgB;AAAA;AAAA;AACpC;AAAA;AAAA,GACF;AAEJ;AASO,SAAS,eAAA,CAAgB;AAAA,EAC9B,KAAA,GAAQ,sBAAA;AAAA,EACR,OAAA,GAAU,2CAAA;AAAA,EACV,UAAA,GAAa,cAAA;AAAA,EACb;AACF,CAAA,EAAyB;AACvB,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,WAAA;AAAA,QACT,SAAA,EAAW,QAAA;AAAA,QACX,eAAA,EAAiB,SAAA;AAAA,QACjB,YAAA,EAAc,MAAA;AAAA,QACd,MAAA,EAAQ;AAAA,OACV;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,IAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,MAAA,EAAQ,aAAA;AAAA,cACR,YAAA,EAAc,KAAA;AAAA,cACd,eAAA,EAAiB,SAAA;AAAA,cACjB,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,cAAA,EAAgB,QAAA;AAAA,cAChB,QAAA,EAAU;AAAA,aACZ;AAAA,YAEA,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,cAAA,EAAA,EAAe,MAAK,IAAA,EAAK,CAAA;AAAA,8BAC1B,GAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAO;AAAA,oBACL,QAAA,EAAU,UAAA;AAAA,oBACV,KAAA,EAAO,MAAA;AAAA,oBACP,YAAA,EAAc,KAAA;AAAA,oBACd,MAAA,EAAQ,uBAAA;AAAA,oBACR,cAAA,EAAgB,SAAA;AAAA,oBAChB,SAAA,EAAW;AAAA;AACb;AAAA;AACF;AAAA;AAAA,SACF;AAAA,wBAEA,GAAA;AAAA,UAAC,IAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,MAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAU,MAAA;AAAA,cACV,UAAA,EAAY,GAAA;AAAA,cACZ,KAAA,EAAO;AAAA,aACT;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBAEA,GAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,MAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAU,MAAA;AAAA,cACV,KAAA,EAAO;AAAA,aACT;AAAA,YAEC,QAAA,EAAA;AAAA;AAAA,SACH;AAAA,wBAEA,IAAA;AAAA,UAAC,GAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,MAAA,EAAQ,UAAA;AAAA,cACR,QAAA,EAAU,MAAA;AAAA,cACV,KAAA,EAAO;AAAA,aACT;AAAA,YACD,QAAA,EAAA;AAAA,cAAA,OAAA;AAAA,cACO,UAAA;AAAA,cAAW;AAAA;AAAA;AAAA,SACnB;AAAA,QAEC,QAAA,oBACC,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,QAAA;AAAA,YACT,KAAA,EAAO;AAAA,cACL,OAAA,EAAS,WAAA;AAAA,cACT,YAAA,EAAc,MAAA;AAAA,cACd,MAAA,EAAQ,mBAAA;AAAA,cACR,eAAA,EAAiB,OAAA;AAAA,cACjB,KAAA,EAAO,SAAA;AAAA,cACP,MAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAU,MAAA;AAAA,cACV,UAAA,EAAY,GAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,SAAA;AACxC,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,WAAA,GAAc,SAAA;AAAA,YACtC,CAAA;AAAA,YACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,OAAA;AACxC,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,WAAA,GAAc,SAAA;AAAA,YACtC,CAAA;AAAA,YACD,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,GAEJ;AAEJ;AAQO,SAAS,gBAAA,CAAiB,EAAE,MAAA,EAAQ,OAAA,EAAS,SAAQ,EAA0B;AACpF,EAAA,MAAM,YAAA,GAAe;AAAA,IACnB,UAAA,EAAY;AAAA,MACV,KAAA,EAAO,YAAA;AAAA,MACP,cAAA,EAAgB,sCAAA;AAAA,MAChB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,SAAA,EAAW;AAAA,MACT,KAAA,EAAO,mBAAA;AAAA,MACP,cAAA,EAAgB,+CAAA;AAAA,MAChB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,OAAA,EAAS;AAAA,MACP,KAAA,EAAO,oBAAA;AAAA,MACP,cAAA,EAAgB,4CAAA;AAAA,MAChB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,OAAA,EAAS;AAAA,MACP,KAAA,EAAO,WAAA;AAAA,MACP,cAAA,EAAgB,kCAAA;AAAA,MAChB,KAAA,EAAO;AAAA,KACT;AAAA,IACA,KAAA,EAAO;AAAA,MACL,KAAA,EAAO,mBAAA;AAAA,MACP,cAAA,EAAgB,sCAAA;AAAA,MAChB,KAAA,EAAO;AAAA;AACT,GACF;AAEA,EAAA,MAAM,MAAA,GAAS,aAAa,MAAM,CAAA;AAElC,EAAA,uBACE,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,MAAA;AAAA,QACT,YAAA,EAAc,MAAA;AAAA,QACd,eAAA,EAAiB,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,EAAA,CAAA;AAAA,QAChC,MAAA,EAAQ,CAAA,UAAA,EAAa,MAAA,CAAO,KAAK,CAAA,EAAA,CAAA;AAAA,QACjC,SAAA,EAAW;AAAA,OACb;AAAA,MAEA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,MAAA,EAAQ,aAAA;AAAA,cACR,YAAA,EAAc,KAAA;AAAA,cACd,eAAA,EAAiB,CAAA,EAAG,MAAA,CAAO,KAAK,CAAA,EAAA,CAAA;AAAA,cAChC,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,cAAA,EAAgB;AAAA,aAClB;AAAA,YAEC,qBAAW,SAAA,mBACV,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,MAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,MAAK,MAAA,EAAO,MAAA,EAAQ,OAAO,KAAA,EAAO,WAAA,EAAY,KAC5F,QAAA,kBAAA,GAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,gBAAA,EAAiB,GACpC,CAAA,GACE,MAAA,KAAW,0BACb,IAAA,CAAC,KAAA,EAAA,EAAI,OAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,aAAY,IAAA,EAAK,MAAA,EAAO,QAAQ,MAAA,CAAO,KAAA,EAAO,aAAY,GAAA,EAC5F,QAAA,EAAA;AAAA,8BAAA,GAAA,CAAC,MAAA,EAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,KAAI,EAAA,EAAG,GAAA,EAAI,IAAG,IAAA,EAAK,CAAA;AAAA,8BACpC,GAAA,CAAC,UAAK,EAAA,EAAG,GAAA,EAAI,IAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK,EAAA,EAAG,IAAA,EAAK;AAAA,aAAA,EACtC,oBAEA,GAAA,CAAC,cAAA,EAAA,EAAe,MAAK,IAAA,EAAK,KAAA,EAAO,OAAO,KAAA,EAAO;AAAA;AAAA,SAEnD;AAAA,wBAEA,GAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,QAAQ,SAAA,EAAW,QAAA,EAAU,MAAA,EAAQ,UAAA,EAAY,KAAK,KAAA,EAAO,MAAA,CAAO,KAAA,EAAM,EACpF,iBAAO,KAAA,EACV,CAAA;AAAA,wBAEA,GAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,EAAG,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,SAAA,EAAU,EACvD,QAAA,EAAA,OAAA,IAAW,OAAO,cAAA,EACrB,CAAA;AAAA,QAEC,MAAA,KAAW,WAAW,OAAA,oBACrB,GAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,OAAA;AAAA,YACT,KAAA,EAAO;AAAA,cACL,SAAA,EAAW,MAAA;AAAA,cACX,OAAA,EAAS,UAAA;AAAA,cACT,YAAA,EAAc,KAAA;AAAA,cACd,MAAA,EAAQ,MAAA;AAAA,cACR,iBAAiB,MAAA,CAAO,KAAA;AAAA,cACxB,KAAA,EAAO,OAAA;AAAA,cACP,MAAA,EAAQ,SAAA;AAAA,cACR,QAAA,EAAU,MAAA;AAAA,cACV,UAAA,EAAY;AAAA,aACd;AAAA,YACD,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,GAEJ;AAEJ;AAEA,IAAO,qBAAA,GAAQ,EAAE,cAAA,EAAgB,eAAA,EAAiB,gBAAA","file":"LoadingStates.js","sourcesContent":["/**\n * @cookill/wallet-adapter - Loading States\n * Loading spinners and approval pending states for dApps\n */\n\nimport React from 'react';\n\ninterface LoadingSpinnerProps {\n size?: 'sm' | 'md' | 'lg';\n color?: string;\n className?: string;\n}\n\nexport function LoadingSpinner({ size = 'md', color = '#6EB9A8', className = '' }: LoadingSpinnerProps) {\n const sizes = {\n sm: { container: 20, stroke: 2 },\n md: { container: 32, stroke: 3 },\n lg: { container: 48, stroke: 4 },\n };\n\n const { container, stroke } = sizes[size];\n const radius = (container - stroke) / 2;\n const circumference = radius * 2 * Math.PI;\n\n return (\n <svg\n width={container}\n height={container}\n viewBox={`0 0 ${container} ${container}`}\n className={className}\n style={{ animation: 'wallet-spin 1s linear infinite' }}\n >\n <style>\n {`\n @keyframes wallet-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `}\n </style>\n <circle\n cx={container / 2}\n cy={container / 2}\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeOpacity={0.2}\n />\n <circle\n cx={container / 2}\n cy={container / 2}\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={circumference * 0.75}\n />\n </svg>\n );\n}\n\ninterface ApprovalPendingProps {\n title?: string;\n message?: string;\n walletName?: string;\n onCancel?: () => void;\n}\n\nexport function ApprovalPending({\n title = 'Waiting for Approval',\n message = 'Please approve the request in your wallet',\n walletName = 'Sheep Wallet',\n onCancel,\n}: ApprovalPendingProps) {\n return (\n <div\n style={{\n padding: '32px 24px',\n textAlign: 'center',\n backgroundColor: '#f8fafc',\n borderRadius: '16px',\n border: '1px solid #e2e8f0',\n }}\n >\n <div\n style={{\n width: '80px',\n height: '80px',\n margin: '0 auto 20px',\n borderRadius: '50%',\n backgroundColor: '#011B29',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n }}\n >\n <LoadingSpinner size=\"lg\" />\n <div\n style={{\n position: 'absolute',\n inset: '-4px',\n borderRadius: '50%',\n border: '2px solid transparent',\n borderTopColor: '#6EB9A8',\n animation: 'wallet-spin 2s linear infinite',\n }}\n />\n </div>\n\n <h3\n style={{\n margin: '0 0 8px',\n fontSize: '18px',\n fontWeight: 600,\n color: '#0f172a',\n }}\n >\n {title}\n </h3>\n\n <p\n style={{\n margin: '0 0 8px',\n fontSize: '14px',\n color: '#64748b',\n }}\n >\n {message}\n </p>\n\n <p\n style={{\n margin: '0 0 24px',\n fontSize: '12px',\n color: '#94a3b8',\n }}\n >\n Open {walletName} extension to continue\n </p>\n\n {onCancel && (\n <button\n onClick={onCancel}\n style={{\n padding: '10px 24px',\n borderRadius: '10px',\n border: '1px solid #e2e8f0',\n backgroundColor: 'white',\n color: '#64748b',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: 500,\n transition: 'all 0.2s ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f1f5f9';\n e.currentTarget.style.borderColor = '#cbd5e1';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'white';\n e.currentTarget.style.borderColor = '#e2e8f0';\n }}\n >\n Cancel\n </button>\n )}\n </div>\n );\n}\n\ninterface ConnectionStatusProps {\n status: 'connecting' | 'approving' | 'signing' | 'success' | 'error';\n message?: string;\n onRetry?: () => void;\n}\n\nexport function ConnectionStatus({ status, message, onRetry }: ConnectionStatusProps) {\n const statusConfig = {\n connecting: {\n title: 'Connecting',\n defaultMessage: 'Establishing connection to wallet...',\n color: '#6EB9A8',\n },\n approving: {\n title: 'Approval Required',\n defaultMessage: 'Please approve the connection in Sheep Wallet',\n color: '#f59e0b',\n },\n signing: {\n title: 'Signature Required',\n defaultMessage: 'Please sign the transaction in your wallet',\n color: '#6EB9A8',\n },\n success: {\n title: 'Connected',\n defaultMessage: 'Successfully connected to wallet',\n color: '#22c55e',\n },\n error: {\n title: 'Connection Failed',\n defaultMessage: 'Unable to connect. Please try again.',\n color: '#ef4444',\n },\n };\n\n const config = statusConfig[status];\n\n return (\n <div\n style={{\n padding: '20px',\n borderRadius: '12px',\n backgroundColor: `${config.color}10`,\n border: `1px solid ${config.color}30`,\n textAlign: 'center',\n }}\n >\n <div\n style={{\n width: '48px',\n height: '48px',\n margin: '0 auto 12px',\n borderRadius: '50%',\n backgroundColor: `${config.color}20`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {status === 'success' ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={config.color} strokeWidth=\"2\">\n <polyline points=\"20,6 9,17 4,12\" />\n </svg>\n ) : status === 'error' ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={config.color} strokeWidth=\"2\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n ) : (\n <LoadingSpinner size=\"sm\" color={config.color} />\n )}\n </div>\n\n <h4 style={{ margin: '0 0 4px', fontSize: '14px', fontWeight: 600, color: config.color }}>\n {config.title}\n </h4>\n\n <p style={{ margin: 0, fontSize: '12px', color: '#64748b' }}>\n {message || config.defaultMessage}\n </p>\n\n {status === 'error' && onRetry && (\n <button\n onClick={onRetry}\n style={{\n marginTop: '12px',\n padding: '6px 16px',\n borderRadius: '6px',\n border: 'none',\n backgroundColor: config.color,\n color: 'white',\n cursor: 'pointer',\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n Retry\n </button>\n )}\n </div>\n );\n}\n\nexport default { LoadingSpinner, ApprovalPending, ConnectionStatus };\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/LoadingStates.tsx"],"sourcesContent":["/**\n * @cookill/wallet-adapter - Loading States\n * Loading spinners and approval pending states for dApps\n */\n\nimport React from 'react';\n\ninterface LoadingSpinnerProps {\n size?: 'sm' | 'md' | 'lg';\n color?: string;\n className?: string;\n}\n\nexport function LoadingSpinner({ size = 'md', color = '#6EB9A8', className = '' }: LoadingSpinnerProps) {\n const sizes = {\n sm: { container: 20, stroke: 2 },\n md: { container: 32, stroke: 3 },\n lg: { container: 48, stroke: 4 },\n };\n\n const { container, stroke } = sizes[size];\n const radius = (container - stroke) / 2;\n const circumference = radius * 2 * Math.PI;\n\n return (\n <svg\n width={container}\n height={container}\n viewBox={`0 0 ${container} ${container}`}\n className={className}\n style={{ animation: 'wallet-spin 1s linear infinite' }}\n >\n <style>\n {`\n @keyframes wallet-spin {\n from { transform: rotate(0deg); }\n to { transform: rotate(360deg); }\n }\n `}\n </style>\n <circle\n cx={container / 2}\n cy={container / 2}\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeOpacity={0.2}\n />\n <circle\n cx={container / 2}\n cy={container / 2}\n r={radius}\n fill=\"none\"\n stroke={color}\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={circumference * 0.75}\n />\n </svg>\n );\n}\n\ninterface ApprovalPendingProps {\n title?: string;\n message?: string;\n walletName?: string;\n onCancel?: () => void;\n}\n\nexport function ApprovalPending({\n title = 'Waiting for Approval',\n message = 'Please approve the request in your wallet',\n walletName = 'Sheep Wallet',\n onCancel,\n}: ApprovalPendingProps) {\n return (\n <div\n style={{\n padding: '32px 24px',\n textAlign: 'center',\n backgroundColor: '#f8fafc',\n borderRadius: '16px',\n border: '1px solid #e2e8f0',\n }}\n >\n <div\n style={{\n width: '80px',\n height: '80px',\n margin: '0 auto 20px',\n borderRadius: '50%',\n backgroundColor: '#011B29',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n }}\n >\n <LoadingSpinner size=\"lg\" />\n <div\n style={{\n position: 'absolute',\n inset: '-4px',\n borderRadius: '50%',\n border: '2px solid transparent',\n borderTopColor: '#6EB9A8',\n animation: 'wallet-spin 2s linear infinite',\n }}\n />\n </div>\n\n <h3\n style={{\n margin: '0 0 8px',\n fontSize: '18px',\n fontWeight: 600,\n color: '#0f172a',\n }}\n >\n {title}\n </h3>\n\n <p\n style={{\n margin: '0 0 8px',\n fontSize: '14px',\n color: '#64748b',\n }}\n >\n {message}\n </p>\n\n <p\n style={{\n margin: '0 0 24px',\n fontSize: '12px',\n color: '#94a3b8',\n }}\n >\n Open {walletName} extension to continue\n </p>\n\n {onCancel && (\n <button\n onClick={onCancel}\n style={{\n padding: '10px 24px',\n borderRadius: '10px',\n border: '1px solid #e2e8f0',\n backgroundColor: 'white',\n color: '#64748b',\n cursor: 'pointer',\n fontSize: '14px',\n fontWeight: 500,\n transition: 'all 0.2s ease',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f1f5f9';\n e.currentTarget.style.borderColor = '#cbd5e1';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'white';\n e.currentTarget.style.borderColor = '#e2e8f0';\n }}\n >\n Cancel\n </button>\n )}\n </div>\n );\n}\n\ninterface ConnectionStatusProps {\n status: 'connecting' | 'approving' | 'signing' | 'success' | 'error';\n message?: string;\n onRetry?: () => void;\n}\n\nexport function ConnectionStatus({ status, message, onRetry }: ConnectionStatusProps) {\n const statusConfig = {\n connecting: {\n title: 'Connecting',\n defaultMessage: 'Establishing connection to wallet...',\n color: '#6EB9A8',\n },\n approving: {\n title: 'Approval Required',\n defaultMessage: 'Please approve the connection in Sheep Wallet',\n color: '#f59e0b',\n },\n signing: {\n title: 'Signature Required',\n defaultMessage: 'Please sign the transaction in your wallet',\n color: '#6EB9A8',\n },\n success: {\n title: 'Connected',\n defaultMessage: 'Successfully connected to wallet',\n color: '#22c55e',\n },\n error: {\n title: 'Connection Failed',\n defaultMessage: 'Unable to connect. Please try again.',\n color: '#ef4444',\n },\n };\n\n const config = statusConfig[status];\n\n return (\n <div\n style={{\n padding: '20px',\n borderRadius: '12px',\n backgroundColor: `${config.color}10`,\n border: `1px solid ${config.color}30`,\n textAlign: 'center',\n }}\n >\n <div\n style={{\n width: '48px',\n height: '48px',\n margin: '0 auto 12px',\n borderRadius: '50%',\n backgroundColor: `${config.color}20`,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n {status === 'success' ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={config.color} strokeWidth=\"2\">\n <polyline points=\"20,6 9,17 4,12\" />\n </svg>\n ) : status === 'error' ? (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" stroke={config.color} strokeWidth=\"2\">\n <line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\" />\n <line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\" />\n </svg>\n ) : (\n <LoadingSpinner size=\"sm\" color={config.color} />\n )}\n </div>\n\n <h4 style={{ margin: '0 0 4px', fontSize: '14px', fontWeight: 600, color: config.color }}>\n {config.title}\n </h4>\n\n <p style={{ margin: 0, fontSize: '12px', color: '#64748b' }}>\n {message || config.defaultMessage}\n </p>\n\n {status === 'error' && onRetry && (\n <button\n onClick={onRetry}\n style={{\n marginTop: '12px',\n padding: '6px 16px',\n borderRadius: '6px',\n border: 'none',\n backgroundColor: config.color,\n color: 'white',\n cursor: 'pointer',\n fontSize: '12px',\n fontWeight: 500,\n }}\n >\n Retry\n </button>\n )}\n </div>\n );\n}\n\nexport default { LoadingSpinner, ApprovalPending, ConnectionStatus };\n"],"mappings":"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","names":[]}
|
package/dist/index.cjs
CHANGED
|
@@ -1,8 +1,39 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
4
19
|
|
|
5
20
|
// src/index.ts
|
|
21
|
+
var src_exports = {};
|
|
22
|
+
__export(src_exports, {
|
|
23
|
+
NETWORKS: () => NETWORKS,
|
|
24
|
+
RialoWallet: () => RialoWallet,
|
|
25
|
+
default: () => src_default,
|
|
26
|
+
formatAddress: () => formatAddress,
|
|
27
|
+
formatBalance: () => formatBalance,
|
|
28
|
+
fromChainId: () => fromChainId,
|
|
29
|
+
getRialoProvider: () => getRialoProvider,
|
|
30
|
+
isRialoInstalled: () => isRialoInstalled,
|
|
31
|
+
isValidAddress: () => isValidAddress,
|
|
32
|
+
parseBalance: () => parseBalance,
|
|
33
|
+
toChainId: () => toChainId,
|
|
34
|
+
waitForRialoProvider: () => waitForRialoProvider
|
|
35
|
+
});
|
|
36
|
+
module.exports = __toCommonJS(src_exports);
|
|
6
37
|
var NETWORKS = {
|
|
7
38
|
mainnet: {
|
|
8
39
|
chainId: "rialo:mainnet",
|
|
@@ -216,18 +247,18 @@ function fromChainId(chainId) {
|
|
|
216
247
|
return chainId.replace("rialo:", "");
|
|
217
248
|
}
|
|
218
249
|
var src_default = RialoWallet;
|
|
219
|
-
|
|
220
|
-
exports
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
250
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
251
|
+
0 && (module.exports = {
|
|
252
|
+
NETWORKS,
|
|
253
|
+
RialoWallet,
|
|
254
|
+
formatAddress,
|
|
255
|
+
formatBalance,
|
|
256
|
+
fromChainId,
|
|
257
|
+
getRialoProvider,
|
|
258
|
+
isRialoInstalled,
|
|
259
|
+
isValidAddress,
|
|
260
|
+
parseBalance,
|
|
261
|
+
toChainId,
|
|
262
|
+
waitForRialoProvider
|
|
263
|
+
});
|
|
233
264
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"names":[],"mappings":"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","file":"index.cjs","sourcesContent":["/**\n * @cookill/wallet-adapter v2.5.0\n * Sheep Wallet adapter for Rialo blockchain dApps\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type RialoChain = 'rialo:mainnet' | 'rialo:testnet' | 'rialo:devnet' | 'rialo:localnet';\nexport type RialoNetwork = 'mainnet' | 'testnet' | 'devnet' | 'localnet';\n\nexport interface WalletAccount {\n address: string;\n publicKey?: Uint8Array | string;\n label?: string;\n}\n\nexport interface TransactionRequest {\n to: string;\n value: string;\n data?: string;\n memo?: string;\n}\n\nexport interface TransactionResult {\n hash: string;\n signature?: string;\n status: 'pending' | 'confirmed' | 'failed';\n blockNumber?: number;\n}\n\nexport interface SignedMessage {\n signature: string;\n message: string;\n address: string;\n publicKey?: string;\n}\n\nexport interface BalanceResult {\n balance: string;\n balanceKelvins: string;\n formatted: string;\n}\n\nexport interface NetworkConfig {\n chainId: string;\n name: string;\n rpcUrl: string;\n wsUrl?: string;\n explorerUrl?: string;\n symbol: string;\n decimals: number;\n}\n\nexport interface WalletInfo {\n id: string;\n name: string;\n icon: string;\n installed?: boolean;\n downloadUrl?: string;\n}\n\nexport type WalletEvent = \n | 'connect' \n | 'disconnect' \n | 'accountsChanged'\n | 'networkChanged' \n | 'chainChanged'\n | 'error';\n\n// ============================================================================\n// Network Configurations\n// ============================================================================\n\nexport const NETWORKS: Record<RialoNetwork, NetworkConfig> = {\n mainnet: {\n chainId: 'rialo:mainnet',\n name: 'Rialo Mainnet',\n rpcUrl: 'https://mainnet.rialo.io:4101',\n wsUrl: 'wss://mainnet.rialo.io:4102',\n explorerUrl: 'https://explorer.rialo.io',\n symbol: 'RLO',\n decimals: 9,\n },\n testnet: {\n chainId: 'rialo:testnet',\n name: 'Rialo Testnet',\n rpcUrl: 'https://testnet.rialo.io:4101',\n wsUrl: 'wss://testnet.rialo.io:4102',\n explorerUrl: 'https://testnet.explorer.rialo.io',\n symbol: 'tRLO',\n decimals: 9,\n },\n devnet: {\n chainId: 'rialo:devnet',\n name: 'Rialo Devnet',\n rpcUrl: 'https://devnet.rialo.io:4101',\n wsUrl: 'wss://devnet.rialo.io:4102',\n explorerUrl: 'https://devnet.explorer.rialo.io',\n symbol: 'dRLO',\n decimals: 9,\n },\n localnet: {\n chainId: 'rialo:localnet',\n name: 'Rialo Localnet',\n rpcUrl: 'http://localhost:4101',\n wsUrl: 'ws://localhost:4102',\n explorerUrl: 'http://localhost:3000',\n symbol: 'lRLO',\n decimals: 9,\n },\n};\n\n// ============================================================================\n// Provider Interface\n// ============================================================================\n\nexport interface RialoProvider {\n // Metadata\n isRialo: boolean;\n isSheepWallet?: boolean;\n name?: string;\n walletName?: string;\n version: string;\n icon?: string;\n\n // Connection\n connect(options?: { silent?: boolean }): Promise<WalletAccount[]>;\n disconnect(): Promise<void>;\n isConnected(): Promise<boolean>;\n getAccounts(): Promise<WalletAccount[]>;\n\n // Transactions\n signTransaction(tx: TransactionRequest): Promise<{ signature: string; signedTransaction?: string; rawTransaction?: string }>;\n sendTransaction(tx: TransactionRequest): Promise<TransactionResult>;\n signAndSendTransaction(tx: TransactionRequest): Promise<TransactionResult>;\n signAllTransactions?(txs: TransactionRequest[]): Promise<{ signedTransactions: string[] }>;\n\n // Message signing\n signMessage(message: string | Uint8Array): Promise<SignedMessage>;\n\n // Network\n getNetwork(): Promise<RialoNetwork>;\n switchNetwork(network: RialoNetwork): Promise<{ success: boolean }>;\n getChainId(): Promise<string>;\n getBalance(address?: string): Promise<BalanceResult | string>;\n\n // Events\n on(event: WalletEvent, callback: (data: unknown) => void): () => void;\n off?(event: WalletEvent, callback: (data: unknown) => void): void;\n removeListener(event: WalletEvent, callback: (data: unknown) => void): void;\n removeAllListeners(event?: WalletEvent): void;\n\n // Utilities\n utils?: {\n isValidAddress(address: string): boolean;\n formatAddress(address: string, chars?: number): string;\n };\n\n // Wallet Standard\n features?: string[];\n supportsFeature?(feature: string): boolean;\n\n // State getters\n readonly connected?: boolean;\n readonly accounts?: WalletAccount[];\n readonly address?: string | null;\n readonly publicKey?: string | null;\n readonly network?: RialoNetwork;\n readonly chainId?: string;\n}\n\n// ============================================================================\n// Detection & Access\n// ============================================================================\n\nexport function isRialoInstalled(): boolean {\n if (typeof window === 'undefined') return false;\n return !!(window as RialoWindow).rialo?.isRialo;\n}\n\nexport function getRialoProvider(): RialoProvider | undefined {\n if (typeof window === 'undefined') return undefined;\n const rialo = (window as RialoWindow).rialo;\n return rialo?.isRialo ? rialo : undefined;\n}\n\nexport function waitForRialoProvider(timeout = 3000): Promise<RialoProvider | undefined> {\n return new Promise((resolve) => {\n if (isRialoInstalled()) {\n resolve(getRialoProvider());\n return;\n }\n\n let resolved = false;\n const checkInterval = setInterval(() => {\n if (isRialoInstalled() && !resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(getRialoProvider());\n }\n }, 100);\n\n setTimeout(() => {\n if (!resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(undefined);\n }\n }, timeout);\n\n // Also listen for initialization event\n const handler = () => {\n if (!resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(getRialoProvider());\n }\n };\n window.addEventListener('rialo#initialized', handler, { once: true });\n });\n}\n\n// ============================================================================\n// Simple Wallet Class (Non-React)\n// ============================================================================\n\nexport class RialoWallet {\n private provider: RialoProvider | undefined;\n private _connected = false;\n private _accounts: WalletAccount[] = [];\n private _network: RialoNetwork = 'devnet';\n private _listeners: Map<string, Set<() => void>> = new Map();\n\n constructor() {\n this.provider = getRialoProvider();\n this.setupEvents();\n }\n\n private setupEvents() {\n if (!this.provider) return;\n\n this.provider.on('disconnect', () => {\n this._connected = false;\n this._accounts = [];\n });\n\n this.provider.on('accountsChanged', (data: unknown) => {\n const accounts = data as WalletAccount[];\n this._accounts = accounts;\n });\n\n this.provider.on('networkChanged', (data: unknown) => {\n const { network } = data as { network: RialoNetwork };\n this._network = network;\n });\n }\n\n get isInstalled(): boolean {\n return isRialoInstalled();\n }\n\n get connected(): boolean {\n return this._connected;\n }\n\n get accounts(): WalletAccount[] {\n return this._accounts;\n }\n\n get activeAccount(): WalletAccount | undefined {\n return this._accounts[0];\n }\n\n get network(): RialoNetwork {\n return this._network;\n }\n\n get chainId(): string {\n return `rialo:${this._network}`;\n }\n\n async connect(): Promise<WalletAccount[]> {\n this.provider = getRialoProvider();\n if (!this.provider) {\n throw new Error('Rialo Wallet not installed. Download at https://rialo.io/wallet');\n }\n\n const accounts = await this.provider.connect();\n this._accounts = accounts;\n this._connected = true;\n\n const network = await this.provider.getNetwork();\n this._network = network;\n\n return this._accounts;\n }\n\n async disconnect(): Promise<void> {\n if (this.provider) {\n await this.provider.disconnect();\n }\n this._connected = false;\n this._accounts = [];\n }\n\n async signMessage(message: string): Promise<SignedMessage> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.signMessage(message);\n }\n\n async signTransaction(tx: TransactionRequest): Promise<string> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n const result = await this.provider.signTransaction(tx);\n return result.signature;\n }\n\n async sendTransaction(tx: TransactionRequest): Promise<TransactionResult> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.sendTransaction(tx);\n }\n\n async signAndSendTransaction(tx: TransactionRequest): Promise<TransactionResult> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.signAndSendTransaction(tx);\n }\n\n async getBalance(address?: string): Promise<string> {\n if (!this.provider) {\n throw new Error('Wallet not available');\n }\n const result = await this.provider.getBalance(address);\n if (typeof result === 'string') return result;\n return result.balance;\n }\n\n async switchNetwork(network: RialoNetwork): Promise<void> {\n if (!this.provider) {\n throw new Error('Wallet not available');\n }\n await this.provider.switchNetwork(network);\n this._network = network;\n }\n\n on(event: WalletEvent, callback: (data: unknown) => void): () => void {\n if (!this.provider) {\n return () => {};\n }\n return this.provider.on(event, callback);\n }\n}\n\n// ============================================================================\n// Utilities\n// ============================================================================\n\nexport function formatAddress(address: string, chars = 4): string {\n if (!address) return '';\n if (address.length <= chars * 2 + 3) return address;\n return `${address.slice(0, chars + 2)}...${address.slice(-chars)}`;\n}\n\nexport function formatBalance(kelvins: string | bigint, decimals = 4): string {\n const value = typeof kelvins === 'string' ? BigInt(kelvins || '0') : kelvins;\n const rlo = Number(value) / 1_000_000_000;\n return rlo.toFixed(decimals);\n}\n\nexport function parseBalance(rlo: string | number): bigint {\n const value = typeof rlo === 'string' ? parseFloat(rlo) : rlo;\n return BigInt(Math.floor(value * 1_000_000_000));\n}\n\nexport function isValidAddress(address: string): boolean {\n if (!address || typeof address !== 'string') return false;\n if (address.length < 32 || address.length > 50) return false;\n return /^[1-9A-HJ-NP-Za-km-z]+$/.test(address);\n}\n\nexport function toChainId(network: RialoNetwork): RialoChain {\n return `rialo:${network}` as RialoChain;\n}\n\nexport function fromChainId(chainId: RialoChain): RialoNetwork {\n return chainId.replace('rialo:', '') as RialoNetwork;\n}\n\n// ============================================================================\n// Window Extension\n// ============================================================================\n\ninterface RialoWindow extends Window {\n rialo?: RialoProvider;\n}\n\ndeclare global {\n interface Window {\n rialo?: RialoProvider;\n Rialo?: RialoProvider;\n }\n}\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport default RialoWallet;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["/**\n * @cookill/wallet-adapter v2.5.0\n * Sheep Wallet adapter for Rialo blockchain dApps\n */\n\n// ============================================================================\n// Types\n// ============================================================================\n\nexport type RialoChain = 'rialo:mainnet' | 'rialo:testnet' | 'rialo:devnet' | 'rialo:localnet';\nexport type RialoNetwork = 'mainnet' | 'testnet' | 'devnet' | 'localnet';\n\nexport interface WalletAccount {\n address: string;\n publicKey?: Uint8Array | string;\n label?: string;\n}\n\nexport interface TransactionRequest {\n to: string;\n value: string;\n data?: string;\n memo?: string;\n}\n\nexport interface TransactionResult {\n hash: string;\n signature?: string;\n status: 'pending' | 'confirmed' | 'failed';\n blockNumber?: number;\n}\n\nexport interface SignedMessage {\n signature: string;\n message: string;\n address: string;\n publicKey?: string;\n}\n\nexport interface BalanceResult {\n balance: string;\n balanceKelvins: string;\n formatted: string;\n}\n\nexport interface NetworkConfig {\n chainId: string;\n name: string;\n rpcUrl: string;\n wsUrl?: string;\n explorerUrl?: string;\n symbol: string;\n decimals: number;\n}\n\nexport interface WalletInfo {\n id: string;\n name: string;\n icon: string;\n installed?: boolean;\n downloadUrl?: string;\n}\n\nexport type WalletEvent = \n | 'connect' \n | 'disconnect' \n | 'accountsChanged'\n | 'networkChanged' \n | 'chainChanged'\n | 'error';\n\n// ============================================================================\n// Network Configurations\n// ============================================================================\n\nexport const NETWORKS: Record<RialoNetwork, NetworkConfig> = {\n mainnet: {\n chainId: 'rialo:mainnet',\n name: 'Rialo Mainnet',\n rpcUrl: 'https://mainnet.rialo.io:4101',\n wsUrl: 'wss://mainnet.rialo.io:4102',\n explorerUrl: 'https://explorer.rialo.io',\n symbol: 'RLO',\n decimals: 9,\n },\n testnet: {\n chainId: 'rialo:testnet',\n name: 'Rialo Testnet',\n rpcUrl: 'https://testnet.rialo.io:4101',\n wsUrl: 'wss://testnet.rialo.io:4102',\n explorerUrl: 'https://testnet.explorer.rialo.io',\n symbol: 'tRLO',\n decimals: 9,\n },\n devnet: {\n chainId: 'rialo:devnet',\n name: 'Rialo Devnet',\n rpcUrl: 'https://devnet.rialo.io:4101',\n wsUrl: 'wss://devnet.rialo.io:4102',\n explorerUrl: 'https://devnet.explorer.rialo.io',\n symbol: 'dRLO',\n decimals: 9,\n },\n localnet: {\n chainId: 'rialo:localnet',\n name: 'Rialo Localnet',\n rpcUrl: 'http://localhost:4101',\n wsUrl: 'ws://localhost:4102',\n explorerUrl: 'http://localhost:3000',\n symbol: 'lRLO',\n decimals: 9,\n },\n};\n\n// ============================================================================\n// Provider Interface\n// ============================================================================\n\nexport interface RialoProvider {\n // Metadata\n isRialo: boolean;\n isSheepWallet?: boolean;\n name?: string;\n walletName?: string;\n version: string;\n icon?: string;\n\n // Connection\n connect(options?: { silent?: boolean }): Promise<WalletAccount[]>;\n disconnect(): Promise<void>;\n isConnected(): Promise<boolean>;\n getAccounts(): Promise<WalletAccount[]>;\n\n // Transactions\n signTransaction(tx: TransactionRequest): Promise<{ signature: string; signedTransaction?: string; rawTransaction?: string }>;\n sendTransaction(tx: TransactionRequest): Promise<TransactionResult>;\n signAndSendTransaction(tx: TransactionRequest): Promise<TransactionResult>;\n signAllTransactions?(txs: TransactionRequest[]): Promise<{ signedTransactions: string[] }>;\n\n // Message signing\n signMessage(message: string | Uint8Array): Promise<SignedMessage>;\n\n // Network\n getNetwork(): Promise<RialoNetwork>;\n switchNetwork(network: RialoNetwork): Promise<{ success: boolean }>;\n getChainId(): Promise<string>;\n getBalance(address?: string): Promise<BalanceResult | string>;\n\n // Events\n on(event: WalletEvent, callback: (data: unknown) => void): () => void;\n off?(event: WalletEvent, callback: (data: unknown) => void): void;\n removeListener(event: WalletEvent, callback: (data: unknown) => void): void;\n removeAllListeners(event?: WalletEvent): void;\n\n // Utilities\n utils?: {\n isValidAddress(address: string): boolean;\n formatAddress(address: string, chars?: number): string;\n };\n\n // Wallet Standard\n features?: string[];\n supportsFeature?(feature: string): boolean;\n\n // State getters\n readonly connected?: boolean;\n readonly accounts?: WalletAccount[];\n readonly address?: string | null;\n readonly publicKey?: string | null;\n readonly network?: RialoNetwork;\n readonly chainId?: string;\n}\n\n// ============================================================================\n// Detection & Access\n// ============================================================================\n\nexport function isRialoInstalled(): boolean {\n if (typeof window === 'undefined') return false;\n return !!(window as RialoWindow).rialo?.isRialo;\n}\n\nexport function getRialoProvider(): RialoProvider | undefined {\n if (typeof window === 'undefined') return undefined;\n const rialo = (window as RialoWindow).rialo;\n return rialo?.isRialo ? rialo : undefined;\n}\n\nexport function waitForRialoProvider(timeout = 3000): Promise<RialoProvider | undefined> {\n return new Promise((resolve) => {\n if (isRialoInstalled()) {\n resolve(getRialoProvider());\n return;\n }\n\n let resolved = false;\n const checkInterval = setInterval(() => {\n if (isRialoInstalled() && !resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(getRialoProvider());\n }\n }, 100);\n\n setTimeout(() => {\n if (!resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(undefined);\n }\n }, timeout);\n\n // Also listen for initialization event\n const handler = () => {\n if (!resolved) {\n resolved = true;\n clearInterval(checkInterval);\n resolve(getRialoProvider());\n }\n };\n window.addEventListener('rialo#initialized', handler, { once: true });\n });\n}\n\n// ============================================================================\n// Simple Wallet Class (Non-React)\n// ============================================================================\n\nexport class RialoWallet {\n private provider: RialoProvider | undefined;\n private _connected = false;\n private _accounts: WalletAccount[] = [];\n private _network: RialoNetwork = 'devnet';\n private _listeners: Map<string, Set<() => void>> = new Map();\n\n constructor() {\n this.provider = getRialoProvider();\n this.setupEvents();\n }\n\n private setupEvents() {\n if (!this.provider) return;\n\n this.provider.on('disconnect', () => {\n this._connected = false;\n this._accounts = [];\n });\n\n this.provider.on('accountsChanged', (data: unknown) => {\n const accounts = data as WalletAccount[];\n this._accounts = accounts;\n });\n\n this.provider.on('networkChanged', (data: unknown) => {\n const { network } = data as { network: RialoNetwork };\n this._network = network;\n });\n }\n\n get isInstalled(): boolean {\n return isRialoInstalled();\n }\n\n get connected(): boolean {\n return this._connected;\n }\n\n get accounts(): WalletAccount[] {\n return this._accounts;\n }\n\n get activeAccount(): WalletAccount | undefined {\n return this._accounts[0];\n }\n\n get network(): RialoNetwork {\n return this._network;\n }\n\n get chainId(): string {\n return `rialo:${this._network}`;\n }\n\n async connect(): Promise<WalletAccount[]> {\n this.provider = getRialoProvider();\n if (!this.provider) {\n throw new Error('Rialo Wallet not installed. Download at https://rialo.io/wallet');\n }\n\n const accounts = await this.provider.connect();\n this._accounts = accounts;\n this._connected = true;\n\n const network = await this.provider.getNetwork();\n this._network = network;\n\n return this._accounts;\n }\n\n async disconnect(): Promise<void> {\n if (this.provider) {\n await this.provider.disconnect();\n }\n this._connected = false;\n this._accounts = [];\n }\n\n async signMessage(message: string): Promise<SignedMessage> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.signMessage(message);\n }\n\n async signTransaction(tx: TransactionRequest): Promise<string> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n const result = await this.provider.signTransaction(tx);\n return result.signature;\n }\n\n async sendTransaction(tx: TransactionRequest): Promise<TransactionResult> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.sendTransaction(tx);\n }\n\n async signAndSendTransaction(tx: TransactionRequest): Promise<TransactionResult> {\n if (!this.provider || !this._connected) {\n throw new Error('Wallet not connected');\n }\n return this.provider.signAndSendTransaction(tx);\n }\n\n async getBalance(address?: string): Promise<string> {\n if (!this.provider) {\n throw new Error('Wallet not available');\n }\n const result = await this.provider.getBalance(address);\n if (typeof result === 'string') return result;\n return result.balance;\n }\n\n async switchNetwork(network: RialoNetwork): Promise<void> {\n if (!this.provider) {\n throw new Error('Wallet not available');\n }\n await this.provider.switchNetwork(network);\n this._network = network;\n }\n\n on(event: WalletEvent, callback: (data: unknown) => void): () => void {\n if (!this.provider) {\n return () => {};\n }\n return this.provider.on(event, callback);\n }\n}\n\n// ============================================================================\n// Utilities\n// ============================================================================\n\nexport function formatAddress(address: string, chars = 4): string {\n if (!address) return '';\n if (address.length <= chars * 2 + 3) return address;\n return `${address.slice(0, chars + 2)}...${address.slice(-chars)}`;\n}\n\nexport function formatBalance(kelvins: string | bigint, decimals = 4): string {\n const value = typeof kelvins === 'string' ? BigInt(kelvins || '0') : kelvins;\n const rlo = Number(value) / 1_000_000_000;\n return rlo.toFixed(decimals);\n}\n\nexport function parseBalance(rlo: string | number): bigint {\n const value = typeof rlo === 'string' ? parseFloat(rlo) : rlo;\n return BigInt(Math.floor(value * 1_000_000_000));\n}\n\nexport function isValidAddress(address: string): boolean {\n if (!address || typeof address !== 'string') return false;\n if (address.length < 32 || address.length > 50) return false;\n return /^[1-9A-HJ-NP-Za-km-z]+$/.test(address);\n}\n\nexport function toChainId(network: RialoNetwork): RialoChain {\n return `rialo:${network}` as RialoChain;\n}\n\nexport function fromChainId(chainId: RialoChain): RialoNetwork {\n return chainId.replace('rialo:', '') as RialoNetwork;\n}\n\n// ============================================================================\n// Window Extension\n// ============================================================================\n\ninterface RialoWindow extends Window {\n rialo?: RialoProvider;\n}\n\ndeclare global {\n interface Window {\n rialo?: RialoProvider;\n Rialo?: RialoProvider;\n }\n}\n\n// ============================================================================\n// Exports\n// ============================================================================\n\nexport default RialoWallet;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA2EO,IAAM,WAAgD;AAAA,EAC3D,SAAS;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,SAAS;AAAA,IACP,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,QAAQ;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AAAA,EACA,UAAU;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,aAAa;AAAA,IACb,QAAQ;AAAA,IACR,UAAU;AAAA,EACZ;AACF;AAiEO,SAAS,mBAA4B;AAC1C,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,SAAO,CAAC,CAAE,OAAuB,OAAO;AAC1C;AAEO,SAAS,mBAA8C;AAC5D,MAAI,OAAO,WAAW,YAAa,QAAO;AAC1C,QAAM,QAAS,OAAuB;AACtC,SAAO,OAAO,UAAU,QAAQ;AAClC;AAEO,SAAS,qBAAqB,UAAU,KAA0C;AACvF,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,QAAI,iBAAiB,GAAG;AACtB,cAAQ,iBAAiB,CAAC;AAC1B;AAAA,IACF;AAEA,QAAI,WAAW;AACf,UAAM,gBAAgB,YAAY,MAAM;AACtC,UAAI,iBAAiB,KAAK,CAAC,UAAU;AACnC,mBAAW;AACX,sBAAc,aAAa;AAC3B,gBAAQ,iBAAiB,CAAC;AAAA,MAC5B;AAAA,IACF,GAAG,GAAG;AAEN,eAAW,MAAM;AACf,UAAI,CAAC,UAAU;AACb,mBAAW;AACX,sBAAc,aAAa;AAC3B,gBAAQ,MAAS;AAAA,MACnB;AAAA,IACF,GAAG,OAAO;AAGV,UAAM,UAAU,MAAM;AACpB,UAAI,CAAC,UAAU;AACb,mBAAW;AACX,sBAAc,aAAa;AAC3B,gBAAQ,iBAAiB,CAAC;AAAA,MAC5B;AAAA,IACF;AACA,WAAO,iBAAiB,qBAAqB,SAAS,EAAE,MAAM,KAAK,CAAC;AAAA,EACtE,CAAC;AACH;AAMO,IAAM,cAAN,MAAkB;AAAA,EAOvB,cAAc;AALd,SAAQ,aAAa;AACrB,SAAQ,YAA6B,CAAC;AACtC,SAAQ,WAAyB;AACjC,SAAQ,aAA2C,oBAAI,IAAI;AAGzD,SAAK,WAAW,iBAAiB;AACjC,SAAK,YAAY;AAAA,EACnB;AAAA,EAEQ,cAAc;AACpB,QAAI,CAAC,KAAK,SAAU;AAEpB,SAAK,SAAS,GAAG,cAAc,MAAM;AACnC,WAAK,aAAa;AAClB,WAAK,YAAY,CAAC;AAAA,IACpB,CAAC;AAED,SAAK,SAAS,GAAG,mBAAmB,CAAC,SAAkB;AACrD,YAAM,WAAW;AACjB,WAAK,YAAY;AAAA,IACnB,CAAC;AAED,SAAK,SAAS,GAAG,kBAAkB,CAAC,SAAkB;AACpD,YAAM,EAAE,QAAQ,IAAI;AACpB,WAAK,WAAW;AAAA,IAClB,CAAC;AAAA,EACH;AAAA,EAEA,IAAI,cAAuB;AACzB,WAAO,iBAAiB;AAAA,EAC1B;AAAA,EAEA,IAAI,YAAqB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,WAA4B;AAC9B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,gBAA2C;AAC7C,WAAO,KAAK,UAAU,CAAC;AAAA,EACzB;AAAA,EAEA,IAAI,UAAwB;AAC1B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,UAAkB;AACpB,WAAO,SAAS,KAAK,QAAQ;AAAA,EAC/B;AAAA,EAEA,MAAM,UAAoC;AACxC,SAAK,WAAW,iBAAiB;AACjC,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,IAAI,MAAM,iEAAiE;AAAA,IACnF;AAEA,UAAM,WAAW,MAAM,KAAK,SAAS,QAAQ;AAC7C,SAAK,YAAY;AACjB,SAAK,aAAa;AAElB,UAAM,UAAU,MAAM,KAAK,SAAS,WAAW;AAC/C,SAAK,WAAW;AAEhB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,MAAM,aAA4B;AAChC,QAAI,KAAK,UAAU;AACjB,YAAM,KAAK,SAAS,WAAW;AAAA,IACjC;AACA,SAAK,aAAa;AAClB,SAAK,YAAY,CAAC;AAAA,EACpB;AAAA,EAEA,MAAM,YAAY,SAAyC;AACzD,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,YAAY;AACtC,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,WAAO,KAAK,SAAS,YAAY,OAAO;AAAA,EAC1C;AAAA,EAEA,MAAM,gBAAgB,IAAyC;AAC7D,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,YAAY;AACtC,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,UAAM,SAAS,MAAM,KAAK,SAAS,gBAAgB,EAAE;AACrD,WAAO,OAAO;AAAA,EAChB;AAAA,EAEA,MAAM,gBAAgB,IAAoD;AACxE,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,YAAY;AACtC,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,WAAO,KAAK,SAAS,gBAAgB,EAAE;AAAA,EACzC;AAAA,EAEA,MAAM,uBAAuB,IAAoD;AAC/E,QAAI,CAAC,KAAK,YAAY,CAAC,KAAK,YAAY;AACtC,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,WAAO,KAAK,SAAS,uBAAuB,EAAE;AAAA,EAChD;AAAA,EAEA,MAAM,WAAW,SAAmC;AAClD,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,UAAM,SAAS,MAAM,KAAK,SAAS,WAAW,OAAO;AACrD,QAAI,OAAO,WAAW,SAAU,QAAO;AACvC,WAAO,OAAO;AAAA,EAChB;AAAA,EAEA,MAAM,cAAc,SAAsC;AACxD,QAAI,CAAC,KAAK,UAAU;AAClB,YAAM,IAAI,MAAM,sBAAsB;AAAA,IACxC;AACA,UAAM,KAAK,SAAS,cAAc,OAAO;AACzC,SAAK,WAAW;AAAA,EAClB;AAAA,EAEA,GAAG,OAAoB,UAA+C;AACpE,QAAI,CAAC,KAAK,UAAU;AAClB,aAAO,MAAM;AAAA,MAAC;AAAA,IAChB;AACA,WAAO,KAAK,SAAS,GAAG,OAAO,QAAQ;AAAA,EACzC;AACF;AAMO,SAAS,cAAc,SAAiB,QAAQ,GAAW;AAChE,MAAI,CAAC,QAAS,QAAO;AACrB,MAAI,QAAQ,UAAU,QAAQ,IAAI,EAAG,QAAO;AAC5C,SAAO,GAAG,QAAQ,MAAM,GAAG,QAAQ,CAAC,CAAC,MAAM,QAAQ,MAAM,CAAC,KAAK,CAAC;AAClE;AAEO,SAAS,cAAc,SAA0B,WAAW,GAAW;AAC5E,QAAM,QAAQ,OAAO,YAAY,WAAW,OAAO,WAAW,GAAG,IAAI;AACrE,QAAM,MAAM,OAAO,KAAK,IAAI;AAC5B,SAAO,IAAI,QAAQ,QAAQ;AAC7B;AAEO,SAAS,aAAa,KAA8B;AACzD,QAAM,QAAQ,OAAO,QAAQ,WAAW,WAAW,GAAG,IAAI;AAC1D,SAAO,OAAO,KAAK,MAAM,QAAQ,GAAa,CAAC;AACjD;AAEO,SAAS,eAAe,SAA0B;AACvD,MAAI,CAAC,WAAW,OAAO,YAAY,SAAU,QAAO;AACpD,MAAI,QAAQ,SAAS,MAAM,QAAQ,SAAS,GAAI,QAAO;AACvD,SAAO,0BAA0B,KAAK,OAAO;AAC/C;AAEO,SAAS,UAAU,SAAmC;AAC3D,SAAO,SAAS,OAAO;AACzB;AAEO,SAAS,YAAY,SAAmC;AAC7D,SAAO,QAAQ,QAAQ,UAAU,EAAE;AACrC;AAqBA,IAAO,cAAQ;","names":[]}
|
package/dist/index.js
CHANGED
|
@@ -212,7 +212,18 @@ function fromChainId(chainId) {
|
|
|
212
212
|
return chainId.replace("rialo:", "");
|
|
213
213
|
}
|
|
214
214
|
var src_default = RialoWallet;
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
215
|
+
export {
|
|
216
|
+
NETWORKS,
|
|
217
|
+
RialoWallet,
|
|
218
|
+
src_default as default,
|
|
219
|
+
formatAddress,
|
|
220
|
+
formatBalance,
|
|
221
|
+
fromChainId,
|
|
222
|
+
getRialoProvider,
|
|
223
|
+
isRialoInstalled,
|
|
224
|
+
isValidAddress,
|
|
225
|
+
parseBalance,
|
|
226
|
+
toChainId,
|
|
227
|
+
waitForRialoProvider
|
|
228
|
+
};
|
|
218
229
|
//# sourceMappingURL=index.js.map
|