@gardenfi/utils 0.0.1-beta.8 → 2.0.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 (111) hide show
  1. package/dist/index.cjs +1 -1
  2. package/dist/index.js +19 -11
  3. package/dist/index10.cjs +1 -16
  4. package/dist/index10.js +16 -111
  5. package/dist/index11.cjs +1 -1
  6. package/dist/index11.js +93 -17
  7. package/dist/index12.cjs +16 -1
  8. package/dist/index12.js +112 -6
  9. package/dist/index13.cjs +1 -1
  10. package/dist/index13.js +31 -20
  11. package/dist/index14.cjs +1 -1
  12. package/dist/index14.js +31 -23
  13. package/dist/index15.cjs +1 -1
  14. package/dist/index15.js +17 -8
  15. package/dist/index16.cjs +1 -1
  16. package/dist/index16.js +6 -30
  17. package/dist/index17.cjs +1 -1
  18. package/dist/index17.js +19 -25
  19. package/dist/index18.cjs +1 -1
  20. package/dist/index18.js +22 -23
  21. package/dist/index19.cjs +1 -1
  22. package/dist/index19.js +8 -52
  23. package/dist/index20.cjs +1 -1
  24. package/dist/index20.js +31 -12
  25. package/dist/index21.cjs +1 -1
  26. package/dist/index21.js +26 -24
  27. package/dist/index22.cjs +1 -1
  28. package/dist/index22.js +22 -74
  29. package/dist/index23.cjs +1 -1
  30. package/dist/index23.js +50 -22
  31. package/dist/index24.cjs +1 -1
  32. package/dist/index24.js +12 -7
  33. package/dist/index25.cjs +1 -1
  34. package/dist/index25.js +24 -29
  35. package/dist/index26.cjs +1 -1
  36. package/dist/index26.js +75 -15
  37. package/dist/index27.cjs +1 -1
  38. package/dist/index27.js +24 -2
  39. package/dist/index28.cjs +1 -1
  40. package/dist/index28.js +7 -20
  41. package/dist/index29.cjs +1 -1
  42. package/dist/index29.js +29 -12
  43. package/dist/index3.cjs +1 -1
  44. package/dist/index3.js +7 -4
  45. package/dist/index30.cjs +1 -1
  46. package/dist/index30.js +15 -34
  47. package/dist/index31.cjs +1 -2
  48. package/dist/index31.js +2 -60
  49. package/dist/index32.cjs +1 -1
  50. package/dist/index32.js +9 -2
  51. package/dist/index33.cjs +1 -1
  52. package/dist/index33.js +20 -4
  53. package/dist/index34.cjs +1 -1
  54. package/dist/index34.js +12 -11
  55. package/dist/index35.cjs +1 -1
  56. package/dist/index35.js +34 -3
  57. package/dist/index36.cjs +2 -1
  58. package/dist/index36.js +58 -20
  59. package/dist/index37.cjs +1 -1
  60. package/dist/index37.js +2 -13
  61. package/dist/index38.cjs +1 -1
  62. package/dist/index38.js +4 -55
  63. package/dist/index39.cjs +1 -1
  64. package/dist/index39.js +11 -6
  65. package/dist/index4.cjs +1 -1
  66. package/dist/index4.js +20 -21
  67. package/dist/index40.cjs +1 -1
  68. package/dist/index40.js +3 -21
  69. package/dist/index41.cjs +1 -1
  70. package/dist/index41.js +21 -11
  71. package/dist/index42.cjs +1 -1
  72. package/dist/index42.js +12 -3
  73. package/dist/index43.cjs +1 -1
  74. package/dist/index43.js +54 -10
  75. package/dist/index44.cjs +1 -1
  76. package/dist/index44.js +6 -19
  77. package/dist/index45.cjs +1 -1
  78. package/dist/index45.js +20 -5
  79. package/dist/index46.cjs +1 -1
  80. package/dist/index46.js +11 -104
  81. package/dist/index47.cjs +1 -1
  82. package/dist/index47.js +3 -29
  83. package/dist/index48.cjs +1 -1
  84. package/dist/index48.js +10 -17
  85. package/dist/index49.cjs +1 -1
  86. package/dist/index49.js +18 -31
  87. package/dist/index50.cjs +1 -0
  88. package/dist/index50.js +11 -0
  89. package/dist/index51.cjs +1 -0
  90. package/dist/index51.js +9 -0
  91. package/dist/index52.cjs +1 -0
  92. package/dist/index52.js +107 -0
  93. package/dist/index53.cjs +1 -0
  94. package/dist/index53.js +32 -0
  95. package/dist/index54.cjs +1 -0
  96. package/dist/index54.js +21 -0
  97. package/dist/index55.cjs +1 -0
  98. package/dist/index55.js +35 -0
  99. package/dist/index6.cjs +1 -1
  100. package/dist/index6.js +28 -28
  101. package/dist/index9.cjs +1 -1
  102. package/dist/index9.js +33 -94
  103. package/dist/src/index.d.ts +2 -0
  104. package/dist/src/lib/approve.d.ts +0 -3
  105. package/dist/src/lib/auth/siwe.d.ts +4 -0
  106. package/dist/src/lib/blockNumber/blockNumber.d.ts +17 -0
  107. package/dist/src/lib/blockNumber/index.d.ts +1 -0
  108. package/dist/src/lib/eventBroker/eventBroker.d.ts +7 -0
  109. package/dist/src/lib/eventBroker/index.d.ts +2 -0
  110. package/dist/src/lib/utils.d.ts +9 -0
  111. package/package.json +2 -1
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("./index2.cjs"),e=require("./index3.cjs"),t=require("./index4.cjs"),o=require("./index5.cjs"),i=require("./index6.cjs"),s=require("./index7.cjs"),n=require("./index8.cjs");exports.ApiStatus=r.ApiStatus;exports.Authorization=e.Authorization;exports.sleep=e.sleep;exports.with0x=e.with0x;exports.checkAllowanceAndApprove=t.checkAllowanceAndApprove;exports.Url=o.Url;exports.Siwe=i.Siwe;exports.MemoryStorage=s.MemoryStorage;exports.StoreKeys=n.StoreKeys;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index2.cjs"),e=require("./index3.cjs"),i=require("./index4.cjs"),n=require("./index5.cjs"),r=require("./index6.cjs"),c=require("./index7.cjs"),s=require("./index8.cjs"),t=require("./index9.cjs"),u=require("./index10.cjs");exports.ApiStatus=o.ApiStatus;exports.Authorization=e.Authorization;exports.Environment=e.Environment;exports.Network=e.Network;exports.sleep=e.sleep;exports.with0x=e.with0x;exports.checkAllowanceAndApprove=i.checkAllowanceAndApprove;exports.Url=n.Url;exports.Siwe=r.Siwe;exports.parseJwt=r.parseJwt;exports.MemoryStorage=c.MemoryStorage;exports.StoreKeys=s.StoreKeys;exports.fetchBitcoinBlockNumber=t.fetchBitcoinBlockNumber;exports.fetchEVMBlockNumber=t.fetchEVMBlockNumber;exports.EventBroker=u.EventBroker;
package/dist/index.js CHANGED
@@ -1,18 +1,26 @@
1
1
  import { ApiStatus as e } from "./index2.js";
2
- import { Authorization as p, sleep as m, with0x as x } from "./index3.js";
3
- import { checkAllowanceAndApprove as i } from "./index4.js";
2
+ import { Authorization as p, Environment as m, Network as f, sleep as x, with0x as c } from "./index3.js";
3
+ import { checkAllowanceAndApprove as n } from "./index4.js";
4
4
  import { Url as a } from "./index5.js";
5
- import { Siwe as S } from "./index6.js";
6
- import { MemoryStorage as h } from "./index7.js";
7
- import { StoreKeys as s } from "./index8.js";
5
+ import { Siwe as k, parseJwt as w } from "./index6.js";
6
+ import { MemoryStorage as s } from "./index7.js";
7
+ import { StoreKeys as B } from "./index8.js";
8
+ import { fetchBitcoinBlockNumber as v, fetchEVMBlockNumber as E } from "./index9.js";
9
+ import { EventBroker as b } from "./index10.js";
8
10
  export {
9
11
  e as ApiStatus,
10
12
  p as Authorization,
11
- h as MemoryStorage,
12
- S as Siwe,
13
- s as StoreKeys,
13
+ m as Environment,
14
+ b as EventBroker,
15
+ s as MemoryStorage,
16
+ f as Network,
17
+ k as Siwe,
18
+ B as StoreKeys,
14
19
  a as Url,
15
- i as checkAllowanceAndApprove,
16
- m as sleep,
17
- x as with0x
20
+ n as checkAllowanceAndApprove,
21
+ v as fetchBitcoinBlockNumber,
22
+ E as fetchEVMBlockNumber,
23
+ w as parseJwt,
24
+ x as sleep,
25
+ c as with0x
18
26
  };
package/dist/index10.cjs CHANGED
@@ -1,16 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index43.cjs"),M=require("./index36.cjs"),h=require("./index44.cjs");function R(r){const{chainId:o,domain:s,expirationTime:l,issuedAt:m=new Date,nonce:a,notBefore:f,requestId:w,resources:g,scheme:i,uri:c,version:d}=r;{if(o!==Math.floor(o))throw new e.SiweInvalidMessageFieldError({field:"chainId",metaMessages:["- Chain ID must be a EIP-155 chain ID.","- See https://eips.ethereum.org/EIPS/eip-155","",`Provided value: ${o}`]});if(!(E.test(s)||F.test(s)||b.test(s)))throw new e.SiweInvalidMessageFieldError({field:"domain",metaMessages:["- Domain must be an RFC 3986 authority.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${s}`]});if(!A.test(a))throw new e.SiweInvalidMessageFieldError({field:"nonce",metaMessages:["- Nonce must be at least 8 characters.","- Nonce must be alphanumeric.","",`Provided value: ${a}`]});if(!h.isUri(c))throw new e.SiweInvalidMessageFieldError({field:"uri",metaMessages:["- URI must be a RFC 3986 URI referring to the resource that is the subject of the signing.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${c}`]});if(d!=="1")throw new e.SiweInvalidMessageFieldError({field:"version",metaMessages:["- Version must be '1'.","",`Provided value: ${d}`]});if(i&&!P.test(i))throw new e.SiweInvalidMessageFieldError({field:"scheme",metaMessages:["- Scheme must be an RFC 3986 URI scheme.","- See https://www.rfc-editor.org/rfc/rfc3986#section-3.1","",`Provided value: ${i}`]});const t=r.statement;if(t!=null&&t.includes(`
2
- `))throw new e.SiweInvalidMessageFieldError({field:"statement",metaMessages:["- Statement must not include '\\n'.","",`Provided value: ${t}`]})}const $=M.getAddress(r.address),v=i?`${i}://${s}`:s,I=r.statement?`${r.statement}
3
- `:"",S=`${v} wants you to sign in with your Ethereum account:
4
- ${$}
5
-
6
- ${I}`;let n=`URI: ${c}
7
- Version: ${d}
8
- Chain ID: ${o}
9
- Nonce: ${a}
10
- Issued At: ${m.toISOString()}`;if(l&&(n+=`
11
- Expiration Time: ${l.toISOString()}`),f&&(n+=`
12
- Not Before: ${f.toISOString()}`),w&&(n+=`
13
- Request ID: ${w}`),g){let t=`
14
- Resources:`;for(const u of g){if(!h.isUri(u))throw new e.SiweInvalidMessageFieldError({field:"resources",metaMessages:["- Every resource must be a RFC 3986 URI.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${u}`]});t+=`
15
- - ${u}`}n+=t}return`${S}
16
- ${n}`}const E=/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?$/,F=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:[0-9]{1,5})?$/,b=/^localhost(:[0-9]{1,5})?$/,A=/^[a-zA-Z0-9]{8,}$/,P=/^([a-zA-Z][a-zA-Z0-9+-.]*)$/;exports.createSiweMessage=R;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});class n{constructor(){this.listeners=new Map}emit(e,...t){(this.listeners.get(e)??[]).forEach(i=>{i(...t)})}on(e,t){const s=this.listeners.get(e)??[];s.push(t),this.listeners.set(e,s)}off(e,t){const s=this.listeners.get(e)??[],i=s.indexOf(t);i!==-1&&s.splice(i,1)}}exports.EventBroker=n;
package/dist/index10.js CHANGED
@@ -1,116 +1,21 @@
1
- import { SiweInvalidMessageFieldError as e } from "./index43.js";
2
- import { getAddress as S } from "./index36.js";
3
- import { isUri as $ } from "./index44.js";
4
- function C(n) {
5
- const { chainId: i, domain: s, expirationTime: u, issuedAt: g = /* @__PURE__ */ new Date(), nonce: a, notBefore: m, requestId: h, resources: w, scheme: o, uri: c, version: f } = n;
6
- {
7
- if (i !== Math.floor(i))
8
- throw new e({
9
- field: "chainId",
10
- metaMessages: [
11
- "- Chain ID must be a EIP-155 chain ID.",
12
- "- See https://eips.ethereum.org/EIPS/eip-155",
13
- "",
14
- `Provided value: ${i}`
15
- ]
16
- });
17
- if (!(p.test(s) || M.test(s) || x.test(s)))
18
- throw new e({
19
- field: "domain",
20
- metaMessages: [
21
- "- Domain must be an RFC 3986 authority.",
22
- "- See https://www.rfc-editor.org/rfc/rfc3986",
23
- "",
24
- `Provided value: ${s}`
25
- ]
26
- });
27
- if (!A.test(a))
28
- throw new e({
29
- field: "nonce",
30
- metaMessages: [
31
- "- Nonce must be at least 8 characters.",
32
- "- Nonce must be alphanumeric.",
33
- "",
34
- `Provided value: ${a}`
35
- ]
36
- });
37
- if (!$(c))
38
- throw new e({
39
- field: "uri",
40
- metaMessages: [
41
- "- URI must be a RFC 3986 URI referring to the resource that is the subject of the signing.",
42
- "- See https://www.rfc-editor.org/rfc/rfc3986",
43
- "",
44
- `Provided value: ${c}`
45
- ]
46
- });
47
- if (f !== "1")
48
- throw new e({
49
- field: "version",
50
- metaMessages: [
51
- "- Version must be '1'.",
52
- "",
53
- `Provided value: ${f}`
54
- ]
55
- });
56
- if (o && !P.test(o))
57
- throw new e({
58
- field: "scheme",
59
- metaMessages: [
60
- "- Scheme must be an RFC 3986 URI scheme.",
61
- "- See https://www.rfc-editor.org/rfc/rfc3986#section-3.1",
62
- "",
63
- `Provided value: ${o}`
64
- ]
65
- });
66
- const t = n.statement;
67
- if (t != null && t.includes(`
68
- `))
69
- throw new e({
70
- field: "statement",
71
- metaMessages: [
72
- "- Statement must not include '\\n'.",
73
- "",
74
- `Provided value: ${t}`
75
- ]
76
- });
1
+ class r {
2
+ constructor() {
3
+ this.listeners = /* @__PURE__ */ new Map();
77
4
  }
78
- const l = S(n.address), v = o ? `${o}://${s}` : s, I = n.statement ? `${n.statement}
79
- ` : "", R = `${v} wants you to sign in with your Ethereum account:
80
- ${l}
81
-
82
- ${I}`;
83
- let r = `URI: ${c}
84
- Version: ${f}
85
- Chain ID: ${i}
86
- Nonce: ${a}
87
- Issued At: ${g.toISOString()}`;
88
- if (u && (r += `
89
- Expiration Time: ${u.toISOString()}`), m && (r += `
90
- Not Before: ${m.toISOString()}`), h && (r += `
91
- Request ID: ${h}`), w) {
92
- let t = `
93
- Resources:`;
94
- for (const d of w) {
95
- if (!$(d))
96
- throw new e({
97
- field: "resources",
98
- metaMessages: [
99
- "- Every resource must be a RFC 3986 URI.",
100
- "- See https://www.rfc-editor.org/rfc/rfc3986",
101
- "",
102
- `Provided value: ${d}`
103
- ]
104
- });
105
- t += `
106
- - ${d}`;
107
- }
108
- r += t;
5
+ emit(s, ...t) {
6
+ (this.listeners.get(s) ?? []).forEach((i) => {
7
+ i(...t);
8
+ });
9
+ }
10
+ on(s, t) {
11
+ const e = this.listeners.get(s) ?? [];
12
+ e.push(t), this.listeners.set(s, e);
13
+ }
14
+ off(s, t) {
15
+ const e = this.listeners.get(s) ?? [], i = e.indexOf(t);
16
+ i !== -1 && e.splice(i, 1);
109
17
  }
110
- return `${R}
111
- ${r}`;
112
18
  }
113
- const p = /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?$/, M = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:[0-9]{1,5})?$/, x = /^localhost(:[0-9]{1,5})?$/, A = /^[a-zA-Z0-9]{8,}$/, P = /^([a-zA-Z][a-zA-Z0-9+-.]*)$/;
114
19
  export {
115
- C as createSiweMessage
20
+ r as EventBroker
116
21
  };
package/dist/index11.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("./index12.cjs"),m=require("./index13.cjs"),k=require("./index14.cjs");async function B(t,{blockHash:o,blockNumber:r,blockTag:l,includeTransactions:i}={}){var c,s,u;const d=l??"latest",n=i??!1,a=r!==void 0?m.numberToHex(r):void 0;let e=null;if(o?e=await t.request({method:"eth_getBlockByHash",params:[o,n]},{dedupe:!0}):e=await t.request({method:"eth_getBlockByNumber",params:[a||d,n]},{dedupe:!!a}),!e)throw new f.BlockNotFoundError({blockHash:o,blockNumber:r});return(((u=(s=(c=t.chain)==null?void 0:c.formatters)==null?void 0:s.block)==null?void 0:u.format)||k.formatBlock)(e)}exports.getBlock=B;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const M=require("./index16.cjs"),k=require("./index22.cjs"),g=require("./index28.cjs"),O=require("./index29.cjs"),S=require("./index32.cjs"),y=require("./index33.cjs"),$=require("./index31.cjs"),P=require("./index15.cjs"),W=require("./index21.cjs"),q=require("./index24.cjs"),x=require("./index26.cjs");async function z(n,{confirmations:o=1,hash:d,onReplaced:h,pollingInterval:m=n.pollingInterval,retryCount:w=6,retryDelay:R=({count:f})=>~~(1<<f)*200,timeout:N=18e4}){const f=$.stringify(["waitForTransactionReceipt",n.uid,d]);let c,a,e,i=!1;const{promise:B,resolve:F,reject:v}=S.withResolvers(),A=N?setTimeout(()=>v(new k.WaitForTransactionReceiptTimeoutError({hash:d})),N):void 0,j=O.observe(f,{onReplaced:h,resolve:F,reject:v},t=>{const E=g.getAction(n,x.watchBlockNumber,"watchBlockNumber")({emitMissed:!0,emitOnBegin:!0,poll:!0,pollingInterval:m,async onBlockNumber(_){const u=b=>{clearTimeout(A),E(),b(),j()};let l=_;if(!i)try{if(e){if(o>1&&(!e.blockNumber||l-e.blockNumber+1n<o))return;u(()=>t.resolve(e));return}if(c||(i=!0,await y.withRetry(async()=>{c=await g.getAction(n,W.getTransaction,"getTransaction")({hash:d}),c.blockNumber&&(l=c.blockNumber)},{delay:R,retryCount:w}),i=!1),e=await g.getAction(n,q.getTransactionReceipt,"getTransactionReceipt")({hash:d}),o>1&&(!e.blockNumber||l-e.blockNumber+1n<o))return;u(()=>t.resolve(e))}catch(b){if(b instanceof k.TransactionNotFoundError||b instanceof k.TransactionReceiptNotFoundError){if(!c){i=!1;return}try{a=c,i=!0;const p=await y.withRetry(()=>g.getAction(n,P.getBlock,"getBlock")({blockNumber:l,includeTransactions:!0}),{delay:R,retryCount:w,shouldRetry:({error:s})=>s instanceof M.BlockNotFoundError});i=!1;const r=p.transactions.find(({from:s,nonce:I})=>s===a.from&&I===a.nonce);if(!r||(e=await g.getAction(n,q.getTransactionReceipt,"getTransactionReceipt")({hash:r.hash}),o>1&&(!e.blockNumber||l-e.blockNumber+1n<o)))return;let T="replaced";r.to===a.to&&r.value===a.value?T="repriced":r.from===r.to&&r.value===0n&&(T="cancelled"),u(()=>{var s;(s=t.onReplaced)==null||s.call(t,{reason:T,replacedTransaction:a,transaction:r,transactionReceipt:e}),t.resolve(e)})}catch(p){u(()=>t.reject(p))}}else u(()=>t.reject(b))}}})});return B}exports.waitForTransactionReceipt=z;
package/dist/index11.js CHANGED
@@ -1,20 +1,96 @@
1
- import { BlockNotFoundError as i } from "./index12.js";
2
- import { numberToHex as l } from "./index13.js";
3
- import { formatBlock as p } from "./index14.js";
4
- async function T(e, { blockHash: t, blockNumber: r, blockTag: f, includeTransactions: u } = {}) {
5
- var m, s, c;
6
- const d = f ?? "latest", a = u ?? !1, n = r !== void 0 ? l(r) : void 0;
7
- let o = null;
8
- if (t ? o = await e.request({
9
- method: "eth_getBlockByHash",
10
- params: [t, a]
11
- }, { dedupe: !0 }) : o = await e.request({
12
- method: "eth_getBlockByNumber",
13
- params: [n || d, a]
14
- }, { dedupe: !!n }), !o)
15
- throw new i({ blockHash: t, blockNumber: r });
16
- return (((c = (s = (m = e.chain) == null ? void 0 : m.formatters) == null ? void 0 : s.block) == null ? void 0 : c.format) || p)(o);
1
+ import { BlockNotFoundError as A } from "./index16.js";
2
+ import { WaitForTransactionReceiptTimeoutError as M, TransactionNotFoundError as O, TransactionReceiptNotFoundError as W } from "./index22.js";
3
+ import { getAction as p } from "./index28.js";
4
+ import { observe as q } from "./index29.js";
5
+ import { withResolvers as z } from "./index32.js";
6
+ import { withRetry as v } from "./index33.js";
7
+ import { stringify as G } from "./index31.js";
8
+ import { getBlock as H } from "./index15.js";
9
+ import { getTransaction as J } from "./index21.js";
10
+ import { getTransactionReceipt as R } from "./index24.js";
11
+ import { watchBlockNumber as K } from "./index26.js";
12
+ async function D(o, {
13
+ confirmations: n = 1,
14
+ hash: m,
15
+ onReplaced: y,
16
+ pollingInterval: B = o.pollingInterval,
17
+ retryCount: k = 6,
18
+ retryDelay: N = ({ count: b }) => ~~(1 << b) * 200,
19
+ // exponential backoff
20
+ timeout: w = 18e4
21
+ }) {
22
+ const b = G(["waitForTransactionReceipt", o.uid, m]);
23
+ let a, c, r, i = !1;
24
+ const { promise: h, resolve: F, reject: g } = z(), E = w ? setTimeout(() => g(new M({ hash: m })), w) : void 0, _ = q(b, { onReplaced: y, resolve: F, reject: g }, (e) => {
25
+ const j = p(o, K, "watchBlockNumber")({
26
+ emitMissed: !0,
27
+ emitOnBegin: !0,
28
+ poll: !0,
29
+ pollingInterval: B,
30
+ async onBlockNumber(I) {
31
+ const l = (f) => {
32
+ clearTimeout(E), j(), f(), _();
33
+ };
34
+ let u = I;
35
+ if (!i)
36
+ try {
37
+ if (r) {
38
+ if (n > 1 && (!r.blockNumber || u - r.blockNumber + 1n < n))
39
+ return;
40
+ l(() => e.resolve(r));
41
+ return;
42
+ }
43
+ if (a || (i = !0, await v(async () => {
44
+ a = await p(o, J, "getTransaction")({ hash: m }), a.blockNumber && (u = a.blockNumber);
45
+ }, {
46
+ delay: N,
47
+ retryCount: k
48
+ }), i = !1), r = await p(o, R, "getTransactionReceipt")({ hash: m }), n > 1 && (!r.blockNumber || u - r.blockNumber + 1n < n))
49
+ return;
50
+ l(() => e.resolve(r));
51
+ } catch (f) {
52
+ if (f instanceof O || f instanceof W) {
53
+ if (!a) {
54
+ i = !1;
55
+ return;
56
+ }
57
+ try {
58
+ c = a, i = !0;
59
+ const d = await v(() => p(o, H, "getBlock")({
60
+ blockNumber: u,
61
+ includeTransactions: !0
62
+ }), {
63
+ delay: N,
64
+ retryCount: k,
65
+ shouldRetry: ({ error: s }) => s instanceof A
66
+ });
67
+ i = !1;
68
+ const t = d.transactions.find(({ from: s, nonce: x }) => s === c.from && x === c.nonce);
69
+ if (!t || (r = await p(o, R, "getTransactionReceipt")({
70
+ hash: t.hash
71
+ }), n > 1 && (!r.blockNumber || u - r.blockNumber + 1n < n)))
72
+ return;
73
+ let T = "replaced";
74
+ t.to === c.to && t.value === c.value ? T = "repriced" : t.from === t.to && t.value === 0n && (T = "cancelled"), l(() => {
75
+ var s;
76
+ (s = e.onReplaced) == null || s.call(e, {
77
+ reason: T,
78
+ replacedTransaction: c,
79
+ transaction: t,
80
+ transactionReceipt: r
81
+ }), e.resolve(r);
82
+ });
83
+ } catch (d) {
84
+ l(() => e.reject(d));
85
+ }
86
+ } else
87
+ l(() => e.reject(f));
88
+ }
89
+ }
90
+ });
91
+ });
92
+ return h;
17
93
  }
18
94
  export {
19
- T as getBlock
95
+ D as waitForTransactionReceipt
20
96
  };
package/dist/index12.cjs CHANGED
@@ -1 +1,16 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./index31.cjs");class n extends t.BaseError{constructor({blockHash:r,blockNumber:e}){let o="Block";r&&(o=`Block at hash "${r}"`),e&&(o=`Block at number "${e}"`),super(`${o} could not be found.`,{name:"BlockNotFoundError"})}}exports.BlockNotFoundError=n;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index48.cjs"),M=require("./index41.cjs"),h=require("./index49.cjs");function R(r){const{chainId:o,domain:s,expirationTime:l,issuedAt:m=new Date,nonce:a,notBefore:f,requestId:w,resources:g,scheme:i,uri:c,version:d}=r;{if(o!==Math.floor(o))throw new e.SiweInvalidMessageFieldError({field:"chainId",metaMessages:["- Chain ID must be a EIP-155 chain ID.","- See https://eips.ethereum.org/EIPS/eip-155","",`Provided value: ${o}`]});if(!(E.test(s)||F.test(s)||b.test(s)))throw new e.SiweInvalidMessageFieldError({field:"domain",metaMessages:["- Domain must be an RFC 3986 authority.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${s}`]});if(!A.test(a))throw new e.SiweInvalidMessageFieldError({field:"nonce",metaMessages:["- Nonce must be at least 8 characters.","- Nonce must be alphanumeric.","",`Provided value: ${a}`]});if(!h.isUri(c))throw new e.SiweInvalidMessageFieldError({field:"uri",metaMessages:["- URI must be a RFC 3986 URI referring to the resource that is the subject of the signing.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${c}`]});if(d!=="1")throw new e.SiweInvalidMessageFieldError({field:"version",metaMessages:["- Version must be '1'.","",`Provided value: ${d}`]});if(i&&!P.test(i))throw new e.SiweInvalidMessageFieldError({field:"scheme",metaMessages:["- Scheme must be an RFC 3986 URI scheme.","- See https://www.rfc-editor.org/rfc/rfc3986#section-3.1","",`Provided value: ${i}`]});const t=r.statement;if(t!=null&&t.includes(`
2
+ `))throw new e.SiweInvalidMessageFieldError({field:"statement",metaMessages:["- Statement must not include '\\n'.","",`Provided value: ${t}`]})}const $=M.getAddress(r.address),v=i?`${i}://${s}`:s,I=r.statement?`${r.statement}
3
+ `:"",S=`${v} wants you to sign in with your Ethereum account:
4
+ ${$}
5
+
6
+ ${I}`;let n=`URI: ${c}
7
+ Version: ${d}
8
+ Chain ID: ${o}
9
+ Nonce: ${a}
10
+ Issued At: ${m.toISOString()}`;if(l&&(n+=`
11
+ Expiration Time: ${l.toISOString()}`),f&&(n+=`
12
+ Not Before: ${f.toISOString()}`),w&&(n+=`
13
+ Request ID: ${w}`),g){let t=`
14
+ Resources:`;for(const u of g){if(!h.isUri(u))throw new e.SiweInvalidMessageFieldError({field:"resources",metaMessages:["- Every resource must be a RFC 3986 URI.","- See https://www.rfc-editor.org/rfc/rfc3986","",`Provided value: ${u}`]});t+=`
15
+ - ${u}`}n+=t}return`${S}
16
+ ${n}`}const E=/^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?$/,F=/^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:[0-9]{1,5})?$/,b=/^localhost(:[0-9]{1,5})?$/,A=/^[a-zA-Z0-9]{8,}$/,P=/^([a-zA-Z][a-zA-Z0-9+-.]*)$/;exports.createSiweMessage=R;
package/dist/index12.js CHANGED
@@ -1,10 +1,116 @@
1
- import { BaseError as e } from "./index31.js";
2
- class d extends e {
3
- constructor({ blockHash: r, blockNumber: t }) {
4
- let o = "Block";
5
- r && (o = `Block at hash "${r}"`), t && (o = `Block at number "${t}"`), super(`${o} could not be found.`, { name: "BlockNotFoundError" });
1
+ import { SiweInvalidMessageFieldError as e } from "./index48.js";
2
+ import { getAddress as S } from "./index41.js";
3
+ import { isUri as $ } from "./index49.js";
4
+ function C(n) {
5
+ const { chainId: i, domain: s, expirationTime: u, issuedAt: g = /* @__PURE__ */ new Date(), nonce: a, notBefore: m, requestId: h, resources: w, scheme: o, uri: c, version: f } = n;
6
+ {
7
+ if (i !== Math.floor(i))
8
+ throw new e({
9
+ field: "chainId",
10
+ metaMessages: [
11
+ "- Chain ID must be a EIP-155 chain ID.",
12
+ "- See https://eips.ethereum.org/EIPS/eip-155",
13
+ "",
14
+ `Provided value: ${i}`
15
+ ]
16
+ });
17
+ if (!(p.test(s) || M.test(s) || x.test(s)))
18
+ throw new e({
19
+ field: "domain",
20
+ metaMessages: [
21
+ "- Domain must be an RFC 3986 authority.",
22
+ "- See https://www.rfc-editor.org/rfc/rfc3986",
23
+ "",
24
+ `Provided value: ${s}`
25
+ ]
26
+ });
27
+ if (!A.test(a))
28
+ throw new e({
29
+ field: "nonce",
30
+ metaMessages: [
31
+ "- Nonce must be at least 8 characters.",
32
+ "- Nonce must be alphanumeric.",
33
+ "",
34
+ `Provided value: ${a}`
35
+ ]
36
+ });
37
+ if (!$(c))
38
+ throw new e({
39
+ field: "uri",
40
+ metaMessages: [
41
+ "- URI must be a RFC 3986 URI referring to the resource that is the subject of the signing.",
42
+ "- See https://www.rfc-editor.org/rfc/rfc3986",
43
+ "",
44
+ `Provided value: ${c}`
45
+ ]
46
+ });
47
+ if (f !== "1")
48
+ throw new e({
49
+ field: "version",
50
+ metaMessages: [
51
+ "- Version must be '1'.",
52
+ "",
53
+ `Provided value: ${f}`
54
+ ]
55
+ });
56
+ if (o && !P.test(o))
57
+ throw new e({
58
+ field: "scheme",
59
+ metaMessages: [
60
+ "- Scheme must be an RFC 3986 URI scheme.",
61
+ "- See https://www.rfc-editor.org/rfc/rfc3986#section-3.1",
62
+ "",
63
+ `Provided value: ${o}`
64
+ ]
65
+ });
66
+ const t = n.statement;
67
+ if (t != null && t.includes(`
68
+ `))
69
+ throw new e({
70
+ field: "statement",
71
+ metaMessages: [
72
+ "- Statement must not include '\\n'.",
73
+ "",
74
+ `Provided value: ${t}`
75
+ ]
76
+ });
6
77
  }
78
+ const l = S(n.address), v = o ? `${o}://${s}` : s, I = n.statement ? `${n.statement}
79
+ ` : "", R = `${v} wants you to sign in with your Ethereum account:
80
+ ${l}
81
+
82
+ ${I}`;
83
+ let r = `URI: ${c}
84
+ Version: ${f}
85
+ Chain ID: ${i}
86
+ Nonce: ${a}
87
+ Issued At: ${g.toISOString()}`;
88
+ if (u && (r += `
89
+ Expiration Time: ${u.toISOString()}`), m && (r += `
90
+ Not Before: ${m.toISOString()}`), h && (r += `
91
+ Request ID: ${h}`), w) {
92
+ let t = `
93
+ Resources:`;
94
+ for (const d of w) {
95
+ if (!$(d))
96
+ throw new e({
97
+ field: "resources",
98
+ metaMessages: [
99
+ "- Every resource must be a RFC 3986 URI.",
100
+ "- See https://www.rfc-editor.org/rfc/rfc3986",
101
+ "",
102
+ `Provided value: ${d}`
103
+ ]
104
+ });
105
+ t += `
106
+ - ${d}`;
107
+ }
108
+ r += t;
109
+ }
110
+ return `${R}
111
+ ${r}`;
7
112
  }
113
+ const p = /^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,}(:[0-9]{1,5})?$/, M = /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(:[0-9]{1,5})?$/, x = /^localhost(:[0-9]{1,5})?$/, A = /^[a-zA-Z0-9]{8,}$/, P = /^([a-zA-Z][a-zA-Z0-9+-.]*)$/;
8
114
  export {
9
- d as BlockNotFoundError
115
+ C as createSiweMessage
10
116
  };
package/dist/index13.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s=require("./index29.cjs"),c=require("./index30.cjs");function m(i,f={}){const{signed:r,size:e}=f,t=BigInt(i);let n;e?r?n=(1n<<BigInt(e)*8n-1n)-1n:n=2n**(BigInt(e)*8n)-1n:typeof i=="number"&&(n=BigInt(Number.MAX_SAFE_INTEGER));const u=typeof n=="bigint"&&r?-n-1n:0;if(n&&t>n||t<u){const o=typeof i=="bigint"?"n":"";throw new s.IntegerOutOfRangeError({max:n?`${n}${o}`:void 0,min:`${u}${o}`,signed:r,size:e,value:`${i}${o}`})}const g=`0x${(r&&t<0?(1n<<BigInt(e*8))+BigInt(t):t).toString(16)}`;return e?c.pad(g,{size:e}):g}exports.numberToHex=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index50.cjs"),a=e.defineChain({id:1,name:"Ethereum",nativeCurrency:{name:"Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://cloudflare-eth.com"]}},blockExplorers:{default:{name:"Etherscan",url:"https://etherscan.io",apiUrl:"https://api.etherscan.io/api"}},contracts:{ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xce01f8eee7E479C928F8919abD53E553a36CeF67",blockCreated:19258213},multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:14353601}}});exports.mainnet=a;
package/dist/index13.js CHANGED
@@ -1,23 +1,34 @@
1
- import { IntegerOutOfRangeError as s } from "./index29.js";
2
- import { pad as u } from "./index30.js";
3
- function x(i, m = {}) {
4
- const { signed: o, size: t } = m, e = BigInt(i);
5
- let n;
6
- t ? o ? n = (1n << BigInt(t) * 8n - 1n) - 1n : n = 2n ** (BigInt(t) * 8n) - 1n : typeof i == "number" && (n = BigInt(Number.MAX_SAFE_INTEGER));
7
- const f = typeof n == "bigint" && o ? -n - 1n : 0;
8
- if (n && e > n || e < f) {
9
- const r = typeof i == "bigint" ? "n" : "";
10
- throw new s({
11
- max: n ? `${n}${r}` : void 0,
12
- min: `${f}${r}`,
13
- signed: o,
14
- size: t,
15
- value: `${i}${r}`
16
- });
1
+ import { defineChain as e } from "./index50.js";
2
+ const t = /* @__PURE__ */ e({
3
+ id: 1,
4
+ name: "Ethereum",
5
+ nativeCurrency: { name: "Ether", symbol: "ETH", decimals: 18 },
6
+ rpcUrls: {
7
+ default: {
8
+ http: ["https://cloudflare-eth.com"]
9
+ }
10
+ },
11
+ blockExplorers: {
12
+ default: {
13
+ name: "Etherscan",
14
+ url: "https://etherscan.io",
15
+ apiUrl: "https://api.etherscan.io/api"
16
+ }
17
+ },
18
+ contracts: {
19
+ ensRegistry: {
20
+ address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"
21
+ },
22
+ ensUniversalResolver: {
23
+ address: "0xce01f8eee7E479C928F8919abD53E553a36CeF67",
24
+ blockCreated: 19258213
25
+ },
26
+ multicall3: {
27
+ address: "0xca11bde05977b3631167028862be2a173976ca11",
28
+ blockCreated: 14353601
29
+ }
17
30
  }
18
- const g = `0x${(o && e < 0 ? (1n << BigInt(t * 8)) + BigInt(e) : e).toString(16)}`;
19
- return t ? u(g, { size: t }) : g;
20
- }
31
+ });
21
32
  export {
22
- x as numberToHex
33
+ t as mainnet
23
34
  };
package/dist/index14.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("./index19.cjs");function a(e){var s;const t=(s=e.transactions)==null?void 0:s.map(n=>typeof n=="string"?n:i.formatTransaction(n));return{...e,baseFeePerGas:e.baseFeePerGas?BigInt(e.baseFeePerGas):null,blobGasUsed:e.blobGasUsed?BigInt(e.blobGasUsed):void 0,difficulty:e.difficulty?BigInt(e.difficulty):void 0,excessBlobGas:e.excessBlobGas?BigInt(e.excessBlobGas):void 0,gasLimit:e.gasLimit?BigInt(e.gasLimit):void 0,gasUsed:e.gasUsed?BigInt(e.gasUsed):void 0,hash:e.hash?e.hash:null,logsBloom:e.logsBloom?e.logsBloom:null,nonce:e.nonce?e.nonce:null,number:e.number?BigInt(e.number):null,size:e.size?BigInt(e.size):void 0,timestamp:e.timestamp?BigInt(e.timestamp):void 0,transactions:t,totalDifficulty:e.totalDifficulty?BigInt(e.totalDifficulty):null}}exports.formatBlock=a;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./index50.cjs"),a=e.defineChain({id:11155111,name:"Sepolia",nativeCurrency:{name:"Sepolia Ether",symbol:"ETH",decimals:18},rpcUrls:{default:{http:["https://sepolia.drpc.org"]}},blockExplorers:{default:{name:"Etherscan",url:"https://sepolia.etherscan.io",apiUrl:"https://api-sepolia.etherscan.io/api"}},contracts:{multicall3:{address:"0xca11bde05977b3631167028862be2a173976ca11",blockCreated:751532},ensRegistry:{address:"0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e"},ensUniversalResolver:{address:"0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",blockCreated:5317080}},testnet:!0});exports.sepolia=a;
package/dist/index14.js CHANGED
@@ -1,25 +1,33 @@
1
- import { formatTransaction as t } from "./index19.js";
2
- function u(e) {
3
- var s;
4
- const i = (s = e.transactions) == null ? void 0 : s.map((n) => typeof n == "string" ? n : t(n));
5
- return {
6
- ...e,
7
- baseFeePerGas: e.baseFeePerGas ? BigInt(e.baseFeePerGas) : null,
8
- blobGasUsed: e.blobGasUsed ? BigInt(e.blobGasUsed) : void 0,
9
- difficulty: e.difficulty ? BigInt(e.difficulty) : void 0,
10
- excessBlobGas: e.excessBlobGas ? BigInt(e.excessBlobGas) : void 0,
11
- gasLimit: e.gasLimit ? BigInt(e.gasLimit) : void 0,
12
- gasUsed: e.gasUsed ? BigInt(e.gasUsed) : void 0,
13
- hash: e.hash ? e.hash : null,
14
- logsBloom: e.logsBloom ? e.logsBloom : null,
15
- nonce: e.nonce ? e.nonce : null,
16
- number: e.number ? BigInt(e.number) : null,
17
- size: e.size ? BigInt(e.size) : void 0,
18
- timestamp: e.timestamp ? BigInt(e.timestamp) : void 0,
19
- transactions: i,
20
- totalDifficulty: e.totalDifficulty ? BigInt(e.totalDifficulty) : null
21
- };
22
- }
1
+ import { defineChain as e } from "./index50.js";
2
+ const s = /* @__PURE__ */ e({
3
+ id: 11155111,
4
+ name: "Sepolia",
5
+ nativeCurrency: { name: "Sepolia Ether", symbol: "ETH", decimals: 18 },
6
+ rpcUrls: {
7
+ default: {
8
+ http: ["https://sepolia.drpc.org"]
9
+ }
10
+ },
11
+ blockExplorers: {
12
+ default: {
13
+ name: "Etherscan",
14
+ url: "https://sepolia.etherscan.io",
15
+ apiUrl: "https://api-sepolia.etherscan.io/api"
16
+ }
17
+ },
18
+ contracts: {
19
+ multicall3: {
20
+ address: "0xca11bde05977b3631167028862be2a173976ca11",
21
+ blockCreated: 751532
22
+ },
23
+ ensRegistry: { address: "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e" },
24
+ ensUniversalResolver: {
25
+ address: "0xc8Af999e38273D658BE1b921b88A9Ddf005769cC",
26
+ blockCreated: 5317080
27
+ }
28
+ },
29
+ testnet: !0
30
+ });
23
31
  export {
24
- u as formatBlock
32
+ s as sepolia
25
33
  };
package/dist/index15.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("./index16.cjs"),r=e=>`blockNumber.${e}`;async function u(e,{cacheTime:c=e.cacheTime}={}){const t=await o.withCache(()=>e.request({method:"eth_blockNumber"}),{cacheKey:r(e.uid),cacheTime:c});return BigInt(t)}exports.getBlockNumber=u;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("./index16.cjs"),m=require("./index17.cjs"),k=require("./index18.cjs");async function B(t,{blockHash:o,blockNumber:r,blockTag:l,includeTransactions:i}={}){var c,s,u;const d=l??"latest",n=i??!1,a=r!==void 0?m.numberToHex(r):void 0;let e=null;if(o?e=await t.request({method:"eth_getBlockByHash",params:[o,n]},{dedupe:!0}):e=await t.request({method:"eth_getBlockByNumber",params:[a||d,n]},{dedupe:!!a}),!e)throw new f.BlockNotFoundError({blockHash:o,blockNumber:r});return(((u=(s=(c=t.chain)==null?void 0:c.formatters)==null?void 0:s.block)==null?void 0:u.format)||k.formatBlock)(e)}exports.getBlock=B;