viem 0.2.0-0-2-0.20230320T235312 → 0.2.0-0-2-0.20230328T054201

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 (72) hide show
  1. package/accounts/package.json +4 -0
  2. package/dist/abi.d.ts +3 -3
  3. package/dist/abi.js +2 -2
  4. package/dist/abi.mjs +1 -1
  5. package/dist/accounts/index.d.ts +90 -0
  6. package/dist/accounts/index.js +152 -0
  7. package/dist/accounts/index.js.map +1 -0
  8. package/dist/accounts/index.mjs +152 -0
  9. package/dist/accounts/index.mjs.map +1 -0
  10. package/dist/{chain-c4f924cf.d.ts → chain-40443542.d.ts} +1 -1
  11. package/dist/{chain-b2e88e30.d.ts → chain-4af995bf.d.ts} +121 -85
  12. package/dist/chains.d.ts +3 -3
  13. package/dist/chains.js +63 -63
  14. package/dist/chains.mjs +1 -1
  15. package/dist/chunk-43HQD3IL.js +31 -0
  16. package/dist/chunk-43HQD3IL.js.map +1 -0
  17. package/dist/{chunk-4DIN6KDM.mjs → chunk-DFMQLPHS.mjs} +2 -2
  18. package/dist/chunk-DFMQLPHS.mjs.map +1 -0
  19. package/dist/{chunk-BLB7NERO.js → chunk-FZPFAAOJ.js} +19 -19
  20. package/dist/chunk-FZPFAAOJ.js.map +1 -0
  21. package/dist/{chunk-KOAJUBTN.mjs → chunk-HYEOQX7O.mjs} +802 -193
  22. package/dist/chunk-HYEOQX7O.mjs.map +1 -0
  23. package/dist/{chunk-T4AH4Y6Y.js → chunk-OW7TKT7L.js} +812 -203
  24. package/dist/chunk-OW7TKT7L.js.map +1 -0
  25. package/dist/chunk-UK6FAD4V.mjs +31 -0
  26. package/dist/chunk-UK6FAD4V.mjs.map +1 -0
  27. package/dist/contract.d.ts +9 -8
  28. package/dist/contract.js +2 -2
  29. package/dist/contract.mjs +1 -1
  30. package/dist/{createClient-d4f1dea1.d.ts → createClient-1f19be8d.d.ts} +23 -9
  31. package/dist/{createPublicClient-3a714a8d.d.ts → createPublicClient-fd8b1349.d.ts} +166 -126
  32. package/dist/{eip1193-cd3e872a.d.ts → eip1193-210ab776.d.ts} +1 -1
  33. package/dist/{encodeFunctionResult-750c9055.d.ts → encodeFunctionResult-a252fba1.d.ts} +1 -1
  34. package/dist/{encodePacked-de74201f.d.ts → encodePacked-a9464e97.d.ts} +1 -1
  35. package/dist/ens.d.ts +6 -5
  36. package/dist/ens.js +3 -3
  37. package/dist/ens.mjs +2 -2
  38. package/dist/ethers.d.ts +5 -4
  39. package/dist/ethers.js +7 -5
  40. package/dist/ethers.js.map +1 -1
  41. package/dist/ethers.mjs +7 -5
  42. package/dist/ethers.mjs.map +1 -1
  43. package/dist/{formatAbiItem-fdbdda39.d.ts → formatAbiItem-6ed70dbd.d.ts} +1 -1
  44. package/dist/{getAbiItem-9d709e3b.d.ts → getAbiItem-1ff0f41a.d.ts} +1 -1
  45. package/dist/index.d.ts +22 -15
  46. package/dist/index.js +130 -103
  47. package/dist/index.js.map +1 -1
  48. package/dist/index.mjs +72 -45
  49. package/dist/index.mjs.map +1 -1
  50. package/dist/parseAccount-8e131c73.d.ts +6 -0
  51. package/dist/{parseGwei-f930d155.d.ts → parseGwei-5e2a8e87.d.ts} +61 -18
  52. package/dist/public.d.ts +6 -5
  53. package/dist/public.js +2 -2
  54. package/dist/public.mjs +1 -1
  55. package/dist/test-e28db435.d.ts +198 -0
  56. package/dist/test.d.ts +11 -11
  57. package/dist/test.js +2 -2
  58. package/dist/test.mjs +1 -1
  59. package/dist/{account-07d04222.d.ts → typedData-848139b1.d.ts} +46 -27
  60. package/dist/utils/index.d.ts +17 -35
  61. package/dist/utils/index.js +18 -2
  62. package/dist/utils/index.mjs +19 -3
  63. package/dist/wallet.d.ts +6 -5
  64. package/dist/wallet.js +2 -2
  65. package/dist/wallet.mjs +1 -1
  66. package/dist/window.d.ts +2 -2
  67. package/package.json +9 -1
  68. package/dist/chunk-4DIN6KDM.mjs.map +0 -1
  69. package/dist/chunk-BLB7NERO.js.map +0 -1
  70. package/dist/chunk-KOAJUBTN.mjs.map +0 -1
  71. package/dist/chunk-T4AH4Y6Y.js.map +0 -1
  72. package/dist/test-c70126a6.d.ts +0 -206
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/clients/transports/createTransport.ts","../src/clients/transports/custom.ts","../src/clients/transports/fallback.ts","../src/clients/transports/http.ts","../src/clients/transports/webSocket.ts","../src/utils/uid.ts","../src/clients/createClient.ts","../src/clients/decorators/public.ts","../src/clients/decorators/test.ts","../src/clients/decorators/wallet.ts","../src/clients/createPublicClient.ts","../src/clients/createTestClient.ts","../src/clients/createWalletClient.ts"],"names":["size"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8CO,SAAS,gBAId;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA,aAAa;AAAA,EACb,aAAa;AAAA,EACb;AAAA,EACA;AACF,GACA,OAC8C;AAC9C,SAAO;AAAA,IACL,QAAQ,EAAE,KAAK,MAAM,SAAS,YAAY,YAAY,SAAS,KAAK;AAAA,IACpE,SAAS,aAAa,SAAS,EAAE,YAAY,WAAW,CAAC;AAAA,IACzD;AAAA,EACF;AACF;;;ACzCO,SAAS,OACd,UACA,SAAgC,CAAC,GAChB;AACjB,QAAM,EAAE,MAAM,UAAU,OAAO,mBAAmB,WAAW,IAAI;AACjE,SAAO,CAAC,EAAE,YAAY,kBAAkB,MACtC,gBAAgB;AAAA,IACd;AAAA,IACA;AAAA,IACA,SAAS,SAAS,QAAQ,KAAK,QAAQ;AAAA,IACvC,YAAY,OAAO,cAAc;AAAA,IACjC;AAAA,IACA,MAAM;AAAA,EACR,CAAC;AACL;;;ACnBO,SAAS,SACd,YACA,SAAkC,CAAC,GAChB;AACnB,QAAM,EAAE,MAAM,YAAY,OAAO,YAAY,YAAY,WAAW,IAAI;AACxE,SAAO,CAAC,EAAE,MAAM,MACd;AAAA,IACE;AAAA,MACE;AAAA,MACA;AAAA,MACA,MAAM,QAAQ,EAAE,QAAQ,OAAO,GAAG;AAChC,cAAM,QAAQ,OAAO,IAAY,MAAoB;AACnD,gBAAM,YAAY,WAAW,CAAC,EAAE,EAAE,OAAO,YAAY,EAAE,CAAC;AACxD,cAAI;AACF,mBAAO,MAAM,UAAU,QAAQ;AAAA,cAC7B;AAAA,cACA;AAAA,YACF,CAAQ;AAAA,UACV,SAAS,KAAP;AAGA,gBAAI,qBAAqB,GAAY;AAAG,oBAAM;AAG9C,gBAAI,MAAM,WAAW,SAAS;AAAG,oBAAM;AAGvC,mBAAO,MAAM,IAAI,CAAC;AAAA,UACpB;AAAA,QACF;AACA,eAAO,MAAM;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM;AAAA,IACR;AAAA,IACA;AAAA,MACE,YAAY,WAAW;AAAA,QACrB,CAAC,OAAO,GAAG,EAAE,OAAO,YAAY,EAAE,CAAC;AAAA,MACrC;AAAA,IACF;AAAA,EACF;AACJ;;;AC5BO,SAAS,KAEd,KACA,SAA8B,CAAC,GAChB;AACf,QAAM;AAAA,IACJ;AAAA,IACA,MAAM;AAAA,IACN,OAAO;AAAA,IACP;AAAA,IACA,UAAU;AAAA,EACZ,IAAI;AACJ,SAAO,CAAC,EAAE,OAAO,YAAY,kBAAkB,MAAM;AACnD,UAAM,aAAa,OAAO,cAAc;AACxC,UAAM,OAAO,OAAO,OAAO,QAAQ,QAAQ,KAAK,CAAC;AACjD,QAAI,CAAC;AAAM,YAAM,IAAI,iBAAiB;AACtC,WAAO;AAAA,MACL;AAAA,QACE;AAAA,QACA;AAAA,QACA,MAAM,QAAQ,EAAE,QAAQ,OAAO,GAAG;AAChC,gBAAM,EAAE,OAAO,IAAI,MAAM,IAAI,KAAK,MAAM;AAAA,YACtC,MAAM;AAAA,cACJ;AAAA,cACA;AAAA,YACF;AAAA,YACA;AAAA,YACA;AAAA,UACF,CAAC;AACD,iBAAO;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACR;AAAA,MACA;AAAA,QACE;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACrBO,SAAS,UAEd,KACA,SAAmC,CAAC,GAChB;AACpB,QAAM;AAAA,IACJ,MAAM;AAAA,IACN,OAAO;AAAA,IACP;AAAA,IACA,UAAU;AAAA,EACZ,IAAI;AACJ,SAAO,CAAC,EAAE,OAAO,YAAY,kBAAkB,MAAM;AACnD,UAAM,aAAa,OAAO,cAAc;AACxC,UAAM,OAAO,OAAO,OAAO,QAAQ,QAAQ,YAAY,CAAC;AACxD,QAAI,CAAC;AAAM,YAAM,IAAI,iBAAiB;AACtC,WAAO;AAAA,MACL;AAAA,QACE;AAAA,QACA;AAAA,QACA,MAAM,QAAQ,EAAE,QAAQ,OAAO,GAAG;AAChC,gBAAM,SAAS,MAAM,UAAU,IAAI;AACnC,gBAAM,EAAE,OAAO,IAAI,MAAM,IAAI,eAAe,QAAQ;AAAA,YAClD,MAAM,EAAE,QAAQ,OAAO;AAAA,YACvB;AAAA,UACF,CAAC;AACD,iBAAO;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACR;AAAA,MACA;AAAA,QACE,YAAY;AACV,iBAAO,UAAU,IAAI;AAAA,QACvB;AAAA,QACA,MAAM,UAAU,EAAE,QAAQ,QAAQ,QAAQ,GAAQ;AAChD,gBAAM,SAAS,MAAM,UAAU,IAAI;AACnC,gBAAM,EAAE,QAAQ,eAAe,IAAI,MAAM,IAAI;AAAA,YAC3C,CAAC,SAAS,WACR,IAAI,UAAU,QAAQ;AAAA,cACpB,MAAM;AAAA,gBACJ,QAAQ;AAAA,gBACR;AAAA,cACF;AAAA,cACA,QAAQ,CAAC,SAAS;AAChB,oBAAI,OAAO,KAAK,OAAO,UAAU;AAC/B,0BAAQ,IAAI;AACZ;AAAA,gBACF;AACA,uBAAO,IAAI;AAAA,cACb;AAAA,cACA,SAAS,CAAC,UAAU;AAClB,uBAAO,KAAK;AACZ,0BAAU,KAAK;AAAA,cACjB;AAAA,YACF,CAAC;AAAA,UACL;AACA,iBAAO;AAAA,YACL;AAAA,YACA,MAAM,cAAc;AAClB,qBAAO,IAAI;AAAA,gBAAa,CAAC,SAAS,WAChC,IAAI,UAAU,QAAQ;AAAA,kBACpB,MAAM;AAAA,oBACJ,QAAQ;AAAA,oBACR,QAAQ,CAAC,cAAc;AAAA,kBACzB;AAAA,kBACA,QAAQ;AAAA,kBACR,SAAS;AAAA,gBACX,CAAC;AAAA,cACH;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA,EACF;AACF;;;ACnIA,IAAIA,QAAO;AACX,IAAI,QAAQA;AACZ,IAAI;AAEG,SAAS,IAAI,SAAS,IAAI;AAC/B,MAAI,CAAC,UAAU,QAAQ,SAASA,QAAO,GAAG;AACxC,aAAS;AACT,YAAQ;AACR,aAAS,IAAI,GAAG,IAAIA,OAAM,KAAK;AAC7B,iBAAY,MAAM,KAAK,OAAO,IAAI,MAAO,GAAG,SAAS,EAAE,EAAE,UAAU,CAAC;AAAA,IACtE;AAAA,EACF;AACA,SAAO,OAAO,UAAU,OAAO,UAAU,MAAM;AACjD;;;AC+BO,SAAS,aAId;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,OAAO;AAAA,EACP,kBAAkB;AAAA,EAClB;AAAA,EACA,OAAO;AACT,GAIE;AACA,QAAM,EAAE,QAAQ,SAAS,MAAM,IAAI,UAAU,EAAE,MAAM,CAAC;AACtD,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,EAAE,GAAG,QAAQ,GAAG,MAAM;AAAA,IACjC;AAAA,IACA,KAAK,IAAI;AAAA,EACX;AACF;;;ACgLO,IAAM,gBAAgB,CAI3B,YAC2B;AAAA,EAC3B,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI;AAAA,EACjC,mBAAmB,MAAM,kBAAkB,MAAM;AAAA,EACjD,2BAA2B,CAAC,SAAS,0BAA0B,QAAQ,IAAI;AAAA,EAC3E,mBAAmB,CAAC,SAAS,kBAAkB,QAAQ,IAAI;AAAA,EAC3D,gCAAgC,MAAM,+BAA+B,MAAM;AAAA,EAC3E,qBAAqB,CAAC,SAAS,oBAAoB,QAAQ,IAAI;AAAA,EAC/D,aAAa,CAAC,SAAS,YAAY,QAAQ,IAAI;AAAA,EAC/C,YAAY,CAAC,SAAS,WAAW,QAAQ,IAAI;AAAA,EAC7C,UAAU,CAAC,SAAS,SAAS,QAAQ,IAAI;AAAA,EACzC,gBAAgB,CAAC,SAAS,eAAe,QAAQ,IAAI;AAAA,EACrD,0BAA0B,CAAC,SAAS,yBAAyB,QAAQ,IAAI;AAAA,EACzE,aAAa,CAAC,SAAS,YAAY,QAAQ,IAAI;AAAA,EAC/C,YAAY,MAAM,WAAW,MAAM;AAAA,EACnC,eAAe,CAAC,SAAS,cAAc,QAAQ,IAAI;AAAA,EACnD,YAAY,CAAC,SAAS,WAAW,QAAQ,IAAI;AAAA,EAC7C,eAAe,CAAC,SAAS,cAAc,QAAQ,IAAI;AAAA,EACnD,kBAAkB,CAAC,SAAS,iBAAiB,QAAQ,IAAI;AAAA,EACzD,eAAe,CAAC,SAAS,cAAc,QAAQ,IAAI;AAAA,EACnD,aAAa,MAAM,YAAY,MAAM;AAAA,EACrC,SAAS,CAAC,SAAS,QAAQ,QAAQ,IAAI;AAAA,EACvC,cAAc,CAAC,SAAS,aAAa,QAAQ,IAAI;AAAA,EACjD,gBAAgB,CAAC,SAAS,eAAe,QAAQ,IAAI;AAAA,EACrD,6BAA6B,CAAC,SAC5B,4BAA4B,QAAQ,IAAI;AAAA,EAC1C,qBAAqB,CAAC,SAAS,oBAAoB,QAAQ,IAAI;AAAA,EAC/D,uBAAuB,CAAC,SAAS,sBAAsB,QAAQ,IAAI;AAAA,EACnE,WAAW,CAAC,SAAS,UAAU,QAAQ,IAAI;AAAA,EAC3C,cAAc,CAAC,SAAS,aAAa,QAAQ,IAAI;AAAA,EACjD,kBAAkB,CAAC,SAAS,iBAAiB,QAAQ,IAAI;AAAA,EACzD,iBAAiB,CAAC,SAAS,gBAAgB,QAAQ,IAAI;AAAA,EACvD,2BAA2B,CAAC,SAAS,0BAA0B,QAAQ,IAAI;AAAA,EAC3E,aAAa,CAAC,SAAS,YAAY,QAAQ,IAAI;AAAA,EAC/C,kBAAkB,CAAC,SAAS,iBAAiB,QAAQ,IAAI;AAAA,EACzD,oBAAoB,CAAC,SAAS,mBAAmB,QAAQ,IAAI;AAAA,EAC7D,YAAY,CAAC,SAAS,WAAW,QAAQ,IAAI;AAAA,EAC7C,0BAA0B,CAAC,SAAS,yBAAyB,QAAQ,IAAI;AAC3E;;;AC7LO,IAAM,cAAc,CACzB,YACiB;AAAA,EACjB,iBAAiB,CAAC,SAAS,gBAAgB,QAAQ,IAAI;AAAA,EACvD,aAAa,MAAM,YAAY,MAAM;AAAA,EACrC,kBAAkB,MAAM,iBAAiB,MAAM;AAAA,EAC/C,iBAAiB,MAAM,gBAAgB,MAAM;AAAA,EAC7C,oBAAoB,CAAC,SAAS,mBAAmB,QAAQ,IAAI;AAAA,EAC7D,cAAc,CAAC,SAAS,aAAa,QAAQ,IAAI;AAAA,EACjD,eAAe,MAAM,cAAc,MAAM;AAAA,EACzC,MAAM,CAAC,SAAS,KAAK,QAAQ,IAAI;AAAA,EACjC,8BAA8B,MAAM,6BAA6B,MAAM;AAAA,EACvE,OAAO,CAAC,SAAS,MAAM,QAAQ,IAAI;AAAA,EACnC,QAAQ,CAAC,SAAS,OAAO,QAAQ,IAAI;AAAA,EACrC,yBAAyB,CAAC,SAAS,wBAAwB,QAAQ,IAAI;AAAA,EACvE,aAAa,CAAC,SAAS,YAAY,QAAQ,IAAI;AAAA,EAC/C,YAAY,CAAC,SAAS,WAAW,QAAQ,IAAI;AAAA,EAC7C,kBAAkB,CAAC,SAAS,iBAAiB,QAAQ,IAAI;AAAA,EACzD,2BAA2B,CAAC,SAAS,0BAA0B,QAAQ,IAAI;AAAA,EAC3E,SAAS,CAAC,SAAS,QAAQ,QAAQ,IAAI;AAAA,EACvC,aAAa,CAAC,SAAS,YAAY,QAAQ,IAAI;AAAA,EAC/C,mBAAmB,CAAC,SAAS,kBAAkB,QAAQ,IAAI;AAAA,EAC3D,mBAAmB,CAAC,SAAS,kBAAkB,QAAQ,IAAI;AAAA,EAC3D,gBAAgB,CAAC,SAAS,eAAe,QAAQ,IAAI;AAAA,EACrD,2BAA2B,CAAC,SAAS,0BAA0B,QAAQ,IAAI;AAAA,EAC3E,uBAAuB,CAAC,SAAS,sBAAsB,QAAQ,IAAI;AAAA,EACnE,UAAU,CAAC,SAAS,SAAS,QAAQ,IAAI;AAAA,EACzC,WAAW,CAAC,SAAS,UAAU,QAAQ,IAAI;AAAA,EAC3C,cAAc,CAAC,SAAS,aAAa,QAAQ,IAAI;AAAA,EACjD,UAAU,MAAM,SAAS,MAAM;AAAA,EAC/B,0BAA0B,CAAC,SAAS,yBAAyB,QAAQ,IAAI;AAC3E;;;AC3CO,IAAM,gBAAgB,CAI3B,YAC2B;AAAA,EAC3B,UAAU,CAAC,SAAS,SAAS,QAAQ,IAAI;AAAA,EACzC,gBAAgB,CAAC,SAAS,eAAe,QAAQ,IAAI;AAAA,EACrD,cAAc,MAAM,aAAa,MAAM;AAAA,EACvC,YAAY,MAAM,WAAW,MAAM;AAAA,EACnC,gBAAgB,MAAM,eAAe,MAAM;AAAA,EAC3C,kBAAkB,MAAM,iBAAiB,MAAM;AAAA,EAC/C,oBAAoB,CAAC,SAAS,mBAAmB,QAAQ,IAAI;AAAA,EAC7D,iBAAiB,CAAC,SAAS,gBAAgB,QAAQ,IAAI;AAAA,EACvD,aAAa,CAAC,SAAS,YAAY,QAAQ,IAAI;AAAA,EAC/C,eAAe,CAAC,SAAS,cAAc,QAAQ,IAAI;AAAA,EACnD,aAAa,CAAC,SAAS,YAAY,QAAQ,IAAI;AAAA,EAC/C,YAAY,CAAC,SAAS,WAAW,QAAQ,IAAI;AAAA,EAC7C,eAAe,CAAC,SAAS,cAAc,QAAQ,IAAI;AACrD;;;AC5EO,SAAS,mBAGd;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,OAAO;AAAA,EACP;AAAA,EACA;AACF,GAIE;AACA,QAAM,SAAS,aAAa;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,EACR,CAAC;AACD,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG,cAAc,MAAsB;AAAA,EACzC;AACF;;;ACZO,SAAS,iBAId;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,OAAO;AAAA,EACP;AAAA,EACA;AAAA,EACA;AACF,GAKE;AACA,QAAM,SAAS;AAAA,IACb,GAAG,aAAa;AAAA,MACd;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,MAAM;AAAA,IACR,CAAC;AAAA,IACD;AAAA,EACF;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAG,YAAY,MAAmC;AAAA,EACpD;AACF;;;ACnCO,SAAS,mBAKd;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,MAAM;AAAA,EACN,OAAO;AAAA,EACP;AACF,GAKE;AACA,QAAM,aAAa,aAAa;AAAA,IAC9B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,WAAW,MAAM,UAAU,EAAE,YAAY,EAAE,CAAC;AAAA,IAC5C,MAAM;AAAA,EACR,CAAC;AACD,QAAM,SAAS;AAAA,IACb,SAAS,UAAU,aAAa,OAAO,IAAI;AAAA,IAC3C,GAAG;AAAA,EACL;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,GAAI,cAAc,MAAa;AAAA,EACjC;AACF","sourcesContent":["import type { Chain } from '../../types'\nimport type { Requests } from '../../types/eip1193'\nimport { buildRequest } from '../../utils'\n\nexport type BaseRpcRequests = {\n request(...args: any): Promise<any>\n}\n\nexport type TransportConfig<\n TType extends string = string,\n TRequests extends BaseRpcRequests['request'] = Requests['request'],\n> = {\n /** The name of the transport. */\n name: string\n /** The key of the transport. */\n key: string\n /** The JSON-RPC request function that matches the EIP-1193 request spec. */\n request: TRequests\n /** The base delay (in ms) between retries. */\n retryDelay?: number\n /** The max number of times to retry. */\n retryCount?: number\n /** The timeout (in ms) for requests. */\n timeout?: number\n /** The type of the transport. */\n type: TType\n}\n\nexport type Transport<\n TType extends string = string,\n TRpcAttributes = Record<string, any>,\n TRequests extends BaseRpcRequests['request'] = Requests['request'],\n> = <TChain extends Chain | undefined = Chain>({\n chain,\n}: {\n chain?: TChain\n retryCount?: TransportConfig['retryCount']\n}) => {\n config: TransportConfig<TType>\n request: TRequests\n value?: TRpcAttributes\n}\n\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport<\n TType extends string = string,\n TRpcAttributes = any,\n>(\n {\n key,\n name,\n request,\n retryCount = 3,\n retryDelay = 150,\n timeout,\n type,\n }: TransportConfig<TType>,\n value?: TRpcAttributes,\n): ReturnType<Transport<TType, TRpcAttributes>> {\n return {\n config: { key, name, request, retryCount, retryDelay, timeout, type },\n request: buildRequest(request, { retryCount, retryDelay }),\n value,\n }\n}\n","import type {\n BaseRpcRequests,\n Transport,\n TransportConfig,\n} from './createTransport'\nimport { createTransport } from './createTransport'\n\ntype EthereumProvider = { request: BaseRpcRequests['request'] }\n\nexport type CustomTransportConfig = {\n /** The key of the transport. */\n key?: TransportConfig['key']\n /** The name of the transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n}\n\nexport type CustomTransport = Transport<'custom', EthereumProvider['request']>\n\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom<TProvider extends EthereumProvider>(\n provider: TProvider,\n config: CustomTransportConfig = {},\n): CustomTransport {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config\n return ({ retryCount: defaultRetryCount }) =>\n createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n })\n}\n","import { isDeterministicError } from '../../utils/buildRequest'\nimport type { Transport, TransportConfig } from './createTransport'\nimport { createTransport } from './createTransport'\n\nexport type FallbackTransportConfig = {\n /** The key of the Fallback transport. */\n key?: TransportConfig['key']\n /** The name of the Fallback transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n}\n\nexport type FallbackTransport = Transport<\n 'fallback',\n { transports: Transport[] }\n>\n\nexport function fallback(\n transports: Transport[],\n config: FallbackTransportConfig = {},\n): FallbackTransport {\n const { key = 'fallback', name = 'Fallback', retryCount, retryDelay } = config\n return ({ chain }) =>\n createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const fetch = async (i: number = 0): Promise<any> => {\n const transport = transports[i]({ chain, retryCount: 0 })\n try {\n return await transport.request({\n method,\n params,\n } as any)\n } catch (err) {\n // If the error is deterministic, we don't need to fall back.\n // So throw the error.\n if (isDeterministicError(err as Error)) throw err\n\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1) throw err\n\n // Otherwise, try the next fallback.\n return fetch(i + 1)\n }\n }\n return fetch()\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n },\n {\n transports: transports.map(\n (fn) => fn({ chain, retryCount: 0 }) as unknown as Transport,\n ),\n },\n )\n}\n","import { UrlRequiredError } from '../../errors'\nimport type { HttpOptions } from '../../utils'\nimport { rpc } from '../../utils'\nimport type { Transport, TransportConfig } from './createTransport'\nimport { createTransport } from './createTransport'\n\nexport type HttpTransportConfig = {\n /**\n * Request configuration to pass to `fetch`.\n * @link https://developer.mozilla.org/en-US/docs/Web/API/fetch\n */\n fetchOptions?: HttpOptions['fetchOptions']\n /** The key of the HTTP transport. */\n key?: TransportConfig['key']\n /** The name of the HTTP transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n /** The timeout (in ms) for the HTTP request. Default: 10_000 */\n timeout?: TransportConfig['timeout']\n}\n\nexport type HttpTransport = Transport<\n 'http',\n {\n url?: string\n }\n>\n\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http(\n /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\n url?: string,\n config: HttpTransportConfig = {},\n): HttpTransport {\n const {\n fetchOptions,\n key = 'http',\n name = 'HTTP JSON-RPC',\n retryDelay,\n timeout = 10_000,\n } = config\n return ({ chain, retryCount: defaultRetryCount }) => {\n const retryCount = config.retryCount ?? defaultRetryCount\n const url_ = url || chain?.rpcUrls.default.http[0]\n if (!url_) throw new UrlRequiredError()\n return createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const { result } = await rpc.http(url_, {\n body: {\n method,\n params,\n },\n fetchOptions,\n timeout,\n })\n return result\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n },\n {\n url,\n },\n )\n }\n}\n","import type WebSocket from 'isomorphic-ws'\nimport { UrlRequiredError } from '../../errors'\nimport type { Hash } from '../../types'\nimport type { RpcResponse } from '../../utils/rpc'\nimport { getSocket, rpc } from '../../utils/rpc'\nimport type { Transport, TransportConfig } from './createTransport'\nimport { createTransport } from './createTransport'\n\ntype WebSocketTransportSubscribeParameters = {\n onData: (data: RpcResponse) => void\n onError?: (error: any) => void\n}\n\ntype WebSocketTransportSubscribeReturnType = {\n subscriptionId: Hash\n unsubscribe: () => Promise<RpcResponse<boolean>>\n}\n\ntype WebSocketTransportSubscribe = {\n subscribe(\n args: WebSocketTransportSubscribeParameters & {\n /**\n * @description Add information about compiled contracts\n * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_addcompilationresult\n */\n params: ['newHeads']\n },\n ): Promise<WebSocketTransportSubscribeReturnType>\n}\n\nexport type WebSocketTransportConfig = {\n /** The key of the WebSocket transport. */\n key?: TransportConfig['key']\n /** The name of the WebSocket transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n /** The timeout (in ms) for async WebSocket requests. Default: 10_000 */\n timeout?: TransportConfig['timeout']\n}\n\nexport type WebSocketTransport = Transport<\n 'webSocket',\n {\n getSocket(): Promise<WebSocket>\n subscribe: WebSocketTransportSubscribe['subscribe']\n }\n>\n\n/**\n * @description Creates a WebSocket transport that connects to a JSON-RPC API.\n */\nexport function webSocket(\n /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\n url?: string,\n config: WebSocketTransportConfig = {},\n): WebSocketTransport {\n const {\n key = 'webSocket',\n name = 'WebSocket JSON-RPC',\n retryDelay,\n timeout = 10_000,\n } = config\n return ({ chain, retryCount: defaultRetryCount }) => {\n const retryCount = config.retryCount ?? defaultRetryCount\n const url_ = url || chain?.rpcUrls.default.webSocket?.[0]\n if (!url_) throw new UrlRequiredError()\n return createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const socket = await getSocket(url_)\n const { result } = await rpc.webSocketAsync(socket, {\n body: { method, params },\n timeout,\n })\n return result\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'webSocket',\n },\n {\n getSocket() {\n return getSocket(url_)\n },\n async subscribe({ params, onData, onError }: any) {\n const socket = await getSocket(url_)\n const { result: subscriptionId } = await new Promise<any>(\n (resolve, reject) =>\n rpc.webSocket(socket, {\n body: {\n method: 'eth_subscribe',\n params,\n },\n onData: (data) => {\n if (typeof data.id === 'number') {\n resolve(data)\n return\n }\n onData(data)\n },\n onError: (error) => {\n reject(error)\n onError?.(error)\n },\n }),\n )\n return {\n subscriptionId,\n async unsubscribe() {\n return new Promise<any>((resolve, reject) =>\n rpc.webSocket(socket, {\n body: {\n method: 'eth_unsubscribe',\n params: [subscriptionId],\n },\n onData: resolve,\n onError: reject,\n }),\n )\n },\n }\n },\n },\n )\n }\n}\n","let size = 256\nlet index = size\nlet buffer: string\n\nexport function uid(length = 11) {\n if (!buffer || index + length > size * 2) {\n buffer = ''\n index = 0\n for (let i = 0; i < size; i++) {\n buffer += ((256 + Math.random() * 256) | 0).toString(16).substring(1)\n }\n }\n return buffer.substring(index, index++ + length)\n}\n","import type { Chain } from '../types'\nimport type { Requests } from '../types/eip1193'\nimport { uid } from '../utils/uid'\nimport type { BaseRpcRequests, Transport } from './transports/createTransport'\n\nexport type Client<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain,\n TRequests extends BaseRpcRequests = Requests,\n> = {\n /** Chain for the client. */\n chain?: TChain\n /** A key for the client. */\n key: string\n /** A name for the client. */\n name: string\n /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */\n pollingInterval: number\n /** Request function wrapped with friendly error handling */\n request: TRequests['request']\n /** The RPC transport (http, webSocket, custom, etc) */\n transport: ReturnType<TTransport>['config'] & ReturnType<TTransport>['value']\n /** The type of client. */\n type: string\n /** A unique ID for the client. */\n uid: string\n}\n\nexport type ClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain,\n TRequests extends BaseRpcRequests = Requests,\n> = Partial<\n Pick<\n Client<TTransport, TChain, TRequests>,\n 'chain' | 'key' | 'name' | 'pollingInterval' | 'type'\n >\n> & {\n transport: TTransport\n}\n\n/**\n * @description Creates a base client with the given transport.\n */\nexport function createClient<\n TTransport extends Transport,\n TChain extends Chain | undefined,\n TRequests extends BaseRpcRequests,\n>({\n chain,\n key = 'base',\n name = 'Base Client',\n pollingInterval = 4_000,\n transport,\n type = 'base',\n}: ClientConfig<TTransport, TChain, TRequests>): Client<\n TTransport,\n TChain,\n TRequests\n> {\n const { config, request, value } = transport({ chain })\n return {\n chain,\n key,\n name,\n pollingInterval,\n request,\n transport: { ...config, ...value },\n type,\n uid: uid(),\n }\n}\n","import type { Abi, AbiEvent } from 'abitype'\nimport type {\n GetEnsAddressParameters,\n GetEnsAddressReturnType,\n GetEnsNameParameters,\n GetEnsNameReturnType,\n} from '../../actions/ens'\nimport { getEnsAddress, getEnsName } from '../../actions/ens'\nimport type {\n CallParameters,\n CallReturnType,\n CreateBlockFilterReturnType,\n CreateContractEventFilterParameters,\n CreateContractEventFilterReturnType,\n CreateEventFilterParameters,\n CreateEventFilterReturnType,\n CreatePendingTransactionFilterReturnType,\n EstimateContractGasParameters,\n EstimateContractGasReturnType,\n EstimateGasParameters,\n EstimateGasReturnType,\n GetBalanceParameters,\n GetBalanceReturnType,\n GetBlockNumberParameters,\n GetBlockNumberReturnType,\n GetBlockParameters,\n GetBlockReturnType,\n GetBlockTransactionCountParameters,\n GetBlockTransactionCountReturnType,\n GetBytecodeParameters,\n GetBytecodeReturnType,\n GetChainIdReturnType,\n GetFeeHistoryParameters,\n GetFeeHistoryReturnType,\n GetFilterChangesParameters,\n GetFilterChangesReturnType,\n GetFilterLogsParameters,\n GetFilterLogsReturnType,\n GetGasPriceReturnType,\n GetLogsParameters,\n GetLogsReturnType,\n GetStorageAtParameters,\n GetStorageAtReturnType,\n GetTransactionConfirmationsParameters,\n GetTransactionConfirmationsReturnType,\n GetTransactionCountParameters,\n GetTransactionCountReturnType,\n GetTransactionParameters,\n GetTransactionReceiptParameters,\n GetTransactionReceiptReturnType,\n GetTransactionReturnType,\n MulticallParameters,\n MulticallReturnType,\n ReadContractParameters,\n ReadContractReturnType,\n SimulateContractParameters,\n SimulateContractReturnType,\n UninstallFilterParameters,\n UninstallFilterReturnType,\n WaitForTransactionReceiptParameters,\n WaitForTransactionReceiptReturnType,\n WatchBlockNumberParameters,\n WatchBlocksParameters,\n WatchContractEventParameters,\n WatchEventParameters,\n WatchPendingTransactionsParameters,\n} from '../../actions/public'\nimport {\n call,\n createBlockFilter,\n createContractEventFilter,\n createEventFilter,\n createPendingTransactionFilter,\n estimateContractGas,\n estimateGas,\n getBalance,\n getBlock,\n getBlockNumber,\n getBlockTransactionCount,\n getBytecode,\n getChainId,\n getFeeHistory,\n getFilterChanges,\n getFilterLogs,\n getGasPrice,\n getLogs,\n getStorageAt,\n getTransaction,\n getTransactionConfirmations,\n getTransactionCount,\n getTransactionReceipt,\n multicall,\n readContract,\n simulateContract,\n uninstallFilter,\n waitForTransactionReceipt,\n watchBlockNumber,\n watchBlocks,\n watchContractEvent,\n watchEvent,\n watchPendingTransactions,\n} from '../../actions/public'\nimport type {\n Chain,\n ContractConfig,\n FilterType,\n MaybeExtractEventArgsFromAbi,\n} from '../../types'\nimport type { PublicClient } from '../createPublicClient'\n\nexport type PublicActions<TChain extends Chain | undefined = Chain> = {\n call: (args: CallParameters<TChain>) => Promise<CallReturnType>\n createBlockFilter: () => Promise<CreateBlockFilterReturnType>\n createContractEventFilter: <\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined,\n >(\n args: CreateContractEventFilterParameters<TAbi, TEventName, TArgs>,\n ) => Promise<CreateContractEventFilterReturnType<TAbi, TEventName, TArgs>>\n createEventFilter: <\n TAbiEvent extends AbiEvent | undefined,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined,\n >(\n args?: CreateEventFilterParameters<TAbiEvent, TAbi, TEventName, TArgs>,\n ) => Promise<CreateEventFilterReturnType<TAbiEvent, TAbi, TEventName, TArgs>>\n createPendingTransactionFilter: () => Promise<CreatePendingTransactionFilterReturnType>\n estimateContractGas: <\n TChain extends Chain | undefined,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n >(\n args: EstimateContractGasParameters<TChain, TAbi, TFunctionName>,\n ) => Promise<EstimateContractGasReturnType>\n estimateGas: (\n args: EstimateGasParameters<TChain>,\n ) => Promise<EstimateGasReturnType>\n getBalance: (args: GetBalanceParameters) => Promise<GetBalanceReturnType>\n getBlock: (args?: GetBlockParameters) => Promise<GetBlockReturnType<TChain>>\n getBlockNumber: (\n args?: GetBlockNumberParameters,\n ) => Promise<GetBlockNumberReturnType>\n getBlockTransactionCount: (\n args?: GetBlockTransactionCountParameters,\n ) => Promise<GetBlockTransactionCountReturnType>\n getBytecode: (args: GetBytecodeParameters) => Promise<GetBytecodeReturnType>\n getChainId: () => Promise<GetChainIdReturnType>\n getEnsAddress: (\n args: GetEnsAddressParameters,\n ) => Promise<GetEnsAddressReturnType>\n getEnsName: (args: GetEnsNameParameters) => Promise<GetEnsNameReturnType>\n getFeeHistory: (\n args: GetFeeHistoryParameters,\n ) => Promise<GetFeeHistoryReturnType>\n getFilterChanges: <\n TFilterType extends FilterType,\n TAbiEvent extends AbiEvent | undefined,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n >(\n args: GetFilterChangesParameters<TFilterType, TAbiEvent, TAbi, TEventName>,\n ) => Promise<\n GetFilterChangesReturnType<TFilterType, TAbiEvent, TAbi, TEventName>\n >\n getFilterLogs: <\n TAbiEvent extends AbiEvent | undefined,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n >(\n args: GetFilterLogsParameters<TAbiEvent, TAbi, TEventName>,\n ) => Promise<GetFilterLogsReturnType<TAbiEvent, TAbi, TEventName>>\n getGasPrice: () => Promise<GetGasPriceReturnType>\n getLogs: <TAbiEvent extends AbiEvent | undefined>(\n args?: GetLogsParameters<TAbiEvent>,\n ) => Promise<GetLogsReturnType<TAbiEvent>>\n getStorageAt: (\n args: GetStorageAtParameters,\n ) => Promise<GetStorageAtReturnType>\n getTransaction: (\n args: GetTransactionParameters,\n ) => Promise<GetTransactionReturnType<TChain>>\n getTransactionConfirmations: (\n args: GetTransactionConfirmationsParameters<TChain>,\n ) => Promise<GetTransactionConfirmationsReturnType>\n getTransactionCount: (\n args: GetTransactionCountParameters,\n ) => Promise<GetTransactionCountReturnType>\n getTransactionReceipt: (\n args: GetTransactionReceiptParameters,\n ) => Promise<GetTransactionReceiptReturnType<TChain>>\n multicall: <\n TContracts extends ContractConfig[],\n TAllowFailure extends boolean = true,\n >(\n args: MulticallParameters<TContracts, TAllowFailure>,\n ) => Promise<MulticallReturnType<TContracts, TAllowFailure>>\n readContract: <\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n >(\n args: ReadContractParameters<TAbi, TFunctionName>,\n ) => Promise<ReadContractReturnType<TAbi, TFunctionName>>\n simulateContract: <\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = any,\n TChainOverride extends Chain | undefined = undefined,\n >(\n args: SimulateContractParameters<\n TChain,\n TAbi,\n TFunctionName,\n TChainOverride\n >,\n ) => Promise<\n SimulateContractReturnType<TChain, TAbi, TFunctionName, TChainOverride>\n >\n uninstallFilter: (\n args: UninstallFilterParameters,\n ) => Promise<UninstallFilterReturnType>\n waitForTransactionReceipt: (\n args: WaitForTransactionReceiptParameters<TChain>,\n ) => Promise<WaitForTransactionReceiptReturnType<TChain>>\n watchBlockNumber: (\n args: WatchBlockNumberParameters,\n ) => ReturnType<typeof watchBlockNumber>\n watchBlocks: (\n args: WatchBlocksParameters<TChain>,\n ) => ReturnType<typeof watchBlocks>\n watchContractEvent: <\n TAbi extends Abi | readonly unknown[],\n TEventName extends string,\n >(\n args: WatchContractEventParameters<TAbi, TEventName>,\n ) => ReturnType<typeof watchContractEvent>\n watchEvent: <\n TAbiEvent extends AbiEvent | undefined,\n TEventName extends string | undefined,\n >(\n args: WatchEventParameters<TAbiEvent>,\n ) => ReturnType<typeof watchEvent>\n watchPendingTransactions: (\n args: WatchPendingTransactionsParameters,\n ) => ReturnType<typeof watchPendingTransactions>\n}\n\nexport const publicActions = <\n TChain extends Chain | undefined,\n TClient extends PublicClient<any, any>,\n>(\n client: TClient,\n): PublicActions<TChain> => ({\n call: (args) => call(client, args),\n createBlockFilter: () => createBlockFilter(client),\n createContractEventFilter: (args) => createContractEventFilter(client, args),\n createEventFilter: (args) => createEventFilter(client, args),\n createPendingTransactionFilter: () => createPendingTransactionFilter(client),\n estimateContractGas: (args) => estimateContractGas(client, args),\n estimateGas: (args) => estimateGas(client, args),\n getBalance: (args) => getBalance(client, args),\n getBlock: (args) => getBlock(client, args),\n getBlockNumber: (args) => getBlockNumber(client, args),\n getBlockTransactionCount: (args) => getBlockTransactionCount(client, args),\n getBytecode: (args) => getBytecode(client, args),\n getChainId: () => getChainId(client),\n getEnsAddress: (args) => getEnsAddress(client, args),\n getEnsName: (args) => getEnsName(client, args),\n getFeeHistory: (args) => getFeeHistory(client, args),\n getFilterChanges: (args) => getFilterChanges(client, args),\n getFilterLogs: (args) => getFilterLogs(client, args),\n getGasPrice: () => getGasPrice(client),\n getLogs: (args) => getLogs(client, args),\n getStorageAt: (args) => getStorageAt(client, args),\n getTransaction: (args) => getTransaction(client, args),\n getTransactionConfirmations: (args) =>\n getTransactionConfirmations(client, args),\n getTransactionCount: (args) => getTransactionCount(client, args),\n getTransactionReceipt: (args) => getTransactionReceipt(client, args),\n multicall: (args) => multicall(client, args),\n readContract: (args) => readContract(client, args),\n simulateContract: (args) => simulateContract(client, args),\n uninstallFilter: (args) => uninstallFilter(client, args),\n waitForTransactionReceipt: (args) => waitForTransactionReceipt(client, args),\n watchBlocks: (args) => watchBlocks(client, args),\n watchBlockNumber: (args) => watchBlockNumber(client, args),\n watchContractEvent: (args) => watchContractEvent(client, args),\n watchEvent: (args) => watchEvent(client, args),\n watchPendingTransactions: (args) => watchPendingTransactions(client, args),\n})\n","import type {\n DropTransactionParameters,\n GetAutomineReturnType,\n GetTxpoolContentReturnType,\n GetTxpoolStatusReturnType,\n ImpersonateAccountParameters,\n IncreaseTimeParameters,\n InspectTxpoolReturnType,\n MineParameters,\n ResetParameters,\n RevertParameters,\n SendUnsignedTransactionParameters,\n SendUnsignedTransactionReturnType,\n SetBalanceParameters,\n SetBlockGasLimitParameters,\n SetBlockTimestampIntervalParameters,\n SetCodeParameters,\n SetCoinbaseParameters,\n SetIntervalMiningParameters,\n SetMinGasPriceParameters,\n SetNextBlockBaseFeePerGasParameters,\n SetNextBlockTimestampParameters,\n SetNonceParameters,\n SetStorageAtParameters,\n StopImpersonatingAccountParameters,\n} from '../../actions/test'\nimport {\n dropTransaction,\n getAutomine,\n getTxpoolContent,\n getTxpoolStatus,\n impersonateAccount,\n increaseTime,\n inspectTxpool,\n mine,\n removeBlockTimestampInterval,\n reset,\n revert,\n sendUnsignedTransaction,\n setAutomine,\n setBalance,\n setBlockGasLimit,\n setBlockTimestampInterval,\n setCode,\n setCoinbase,\n setIntervalMining,\n setLoggingEnabled,\n setMinGasPrice,\n setNextBlockBaseFeePerGas,\n setNextBlockTimestamp,\n setNonce,\n setRpcUrl,\n setStorageAt,\n snapshot,\n stopImpersonatingAccount,\n} from '../../actions/test'\nimport type { Quantity } from '../../types'\nimport type { TestClient } from '../createTestClient'\n\nexport type TestActions = {\n dropTransaction: (args: DropTransactionParameters) => Promise<void>\n getAutomine: () => Promise<GetAutomineReturnType>\n getTxpoolContent: () => Promise<GetTxpoolContentReturnType>\n getTxpoolStatus: () => Promise<GetTxpoolStatusReturnType>\n impersonateAccount: (args: ImpersonateAccountParameters) => Promise<void>\n increaseTime: (args: IncreaseTimeParameters) => Promise<Quantity>\n inspectTxpool: () => Promise<InspectTxpoolReturnType>\n mine: (args: MineParameters) => Promise<void>\n removeBlockTimestampInterval: () => Promise<void>\n reset: (args?: ResetParameters) => Promise<void>\n revert: (args: RevertParameters) => Promise<void>\n sendUnsignedTransaction: (\n args: SendUnsignedTransactionParameters,\n ) => Promise<SendUnsignedTransactionReturnType>\n setAutomine: (args: boolean) => Promise<void>\n setBalance: (args: SetBalanceParameters) => Promise<void>\n setBlockGasLimit: (args: SetBlockGasLimitParameters) => Promise<void>\n setBlockTimestampInterval: (\n args: SetBlockTimestampIntervalParameters,\n ) => Promise<void>\n setCode: (args: SetCodeParameters) => Promise<void>\n setCoinbase: (args: SetCoinbaseParameters) => Promise<void>\n setIntervalMining: (args: SetIntervalMiningParameters) => Promise<void>\n setLoggingEnabled: (args: boolean) => Promise<void>\n setMinGasPrice: (args: SetMinGasPriceParameters) => Promise<void>\n setNextBlockBaseFeePerGas: (\n args: SetNextBlockBaseFeePerGasParameters,\n ) => Promise<void>\n setNextBlockTimestamp: (\n args: SetNextBlockTimestampParameters,\n ) => Promise<void>\n setNonce: (args: SetNonceParameters) => Promise<void>\n setRpcUrl: (args: string) => Promise<void>\n setStorageAt: (args: SetStorageAtParameters) => Promise<void>\n snapshot: () => Promise<Quantity>\n stopImpersonatingAccount: (\n args: StopImpersonatingAccountParameters,\n ) => Promise<void>\n}\n\nexport const testActions = <TClient extends TestClient<any, any>>(\n client: TClient,\n): TestActions => ({\n dropTransaction: (args) => dropTransaction(client, args),\n getAutomine: () => getAutomine(client),\n getTxpoolContent: () => getTxpoolContent(client),\n getTxpoolStatus: () => getTxpoolStatus(client),\n impersonateAccount: (args) => impersonateAccount(client, args),\n increaseTime: (args) => increaseTime(client, args),\n inspectTxpool: () => inspectTxpool(client),\n mine: (args) => mine(client, args),\n removeBlockTimestampInterval: () => removeBlockTimestampInterval(client),\n reset: (args) => reset(client, args),\n revert: (args) => revert(client, args),\n sendUnsignedTransaction: (args) => sendUnsignedTransaction(client, args),\n setAutomine: (args) => setAutomine(client, args),\n setBalance: (args) => setBalance(client, args),\n setBlockGasLimit: (args) => setBlockGasLimit(client, args),\n setBlockTimestampInterval: (args) => setBlockTimestampInterval(client, args),\n setCode: (args) => setCode(client, args),\n setCoinbase: (args) => setCoinbase(client, args),\n setIntervalMining: (args) => setIntervalMining(client, args),\n setLoggingEnabled: (args) => setLoggingEnabled(client, args),\n setMinGasPrice: (args) => setMinGasPrice(client, args),\n setNextBlockBaseFeePerGas: (args) => setNextBlockBaseFeePerGas(client, args),\n setNextBlockTimestamp: (args) => setNextBlockTimestamp(client, args),\n setNonce: (args) => setNonce(client, args),\n setRpcUrl: (args) => setRpcUrl(client, args),\n setStorageAt: (args) => setStorageAt(client, args),\n snapshot: () => snapshot(client),\n stopImpersonatingAccount: (args) => stopImpersonatingAccount(client, args),\n})\n","import type { Abi, TypedData } from 'abitype'\nimport type {\n AddChainParameters,\n DeployContractParameters,\n DeployContractReturnType,\n GetAddressesReturnType,\n GetChainIdReturnType,\n GetPermissionsReturnType,\n RequestAddressesReturnType,\n RequestPermissionsParameters,\n RequestPermissionsReturnType,\n SendTransactionParameters,\n SendTransactionReturnType,\n SignMessageParameters,\n SignMessageReturnType,\n SignTypedDataParameters,\n SignTypedDataReturnType,\n SwitchChainParameters,\n WatchAssetParameters,\n WatchAssetReturnType,\n WriteContractParameters,\n WriteContractReturnType,\n} from '../../actions/wallet'\nimport {\n addChain,\n deployContract,\n getAddresses,\n getChainId,\n getPermissions,\n requestAddresses,\n requestPermissions,\n sendTransaction,\n signMessage,\n signTypedData,\n switchChain,\n watchAsset,\n writeContract,\n} from '../../actions/wallet'\nimport type { Account, Chain } from '../../types'\nimport type { WalletClient } from '../createWalletClient'\n\nexport type WalletActions<\n TChain extends Chain | undefined = Chain,\n TAccount extends Account | undefined = undefined,\n> = {\n addChain: (args: AddChainParameters) => Promise<void>\n deployContract: <\n TAbi extends Abi | readonly unknown[],\n TChainOverride extends Chain | undefined,\n >(\n args: DeployContractParameters<TChain, TAbi, TAccount, TChainOverride>,\n ) => Promise<DeployContractReturnType>\n getAddresses: () => Promise<GetAddressesReturnType>\n getChainId: () => Promise<GetChainIdReturnType>\n getPermissions: () => Promise<GetPermissionsReturnType>\n requestAddresses: () => Promise<RequestAddressesReturnType>\n requestPermissions: (\n args: RequestPermissionsParameters,\n ) => Promise<RequestPermissionsReturnType>\n sendTransaction: <TChainOverride extends Chain | undefined>(\n args: SendTransactionParameters<TChain, TAccount, TChainOverride>,\n ) => Promise<SendTransactionReturnType>\n signMessage: (\n args: SignMessageParameters<TAccount>,\n ) => Promise<SignMessageReturnType>\n signTypedData: <\n TTypedData extends TypedData | { [key: string]: unknown },\n TPrimaryType extends string = string,\n >(\n args: SignTypedDataParameters<TTypedData, TPrimaryType, TAccount>,\n ) => Promise<SignTypedDataReturnType>\n switchChain: (args: SwitchChainParameters) => Promise<void>\n watchAsset: (args: WatchAssetParameters) => Promise<WatchAssetReturnType>\n writeContract: <\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n TChainOverride extends Chain | undefined,\n >(\n args: WriteContractParameters<\n TChainOverride,\n TAbi,\n TFunctionName,\n TAccount,\n TChainOverride\n >,\n ) => Promise<WriteContractReturnType>\n}\n\nexport const walletActions = <\n TChain extends Chain | undefined,\n TClient extends WalletClient<any, any, any>,\n>(\n client: TClient,\n): WalletActions<TChain> => ({\n addChain: (args) => addChain(client, args),\n deployContract: (args) => deployContract(client, args),\n getAddresses: () => getAddresses(client),\n getChainId: () => getChainId(client),\n getPermissions: () => getPermissions(client),\n requestAddresses: () => requestAddresses(client),\n requestPermissions: (args) => requestPermissions(client, args),\n sendTransaction: (args) => sendTransaction(client, args),\n signMessage: (args) => signMessage(client, args),\n signTypedData: (args) => signTypedData(client, args),\n switchChain: (args) => switchChain(client, args),\n watchAsset: (args) => watchAsset(client, args),\n writeContract: (args) => writeContract(client, args),\n})\n","import type { PublicRequests } from '../types/eip1193'\nimport type { Transport } from './transports/createTransport'\nimport type { Client, ClientConfig } from './createClient'\nimport { createClient } from './createClient'\nimport { publicActions, PublicActions } from './decorators'\nimport type { Chain } from '../types'\n\nexport type PublicClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain,\n> = Pick<\n ClientConfig<TTransport, TChain>,\n 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'\n>\n\nexport type PublicClient<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain,\n TIncludeActions extends boolean = true,\n> = Client<TTransport, TChain, PublicRequests> &\n (TIncludeActions extends true ? PublicActions<TChain> : {})\n\nexport type PublicClientArg<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TIncludeActions extends boolean = boolean,\n> = PublicClient<TTransport, TChain, TIncludeActions>\n\n/**\n * @description Creates a public client with a given transport.\n */\nexport function createPublicClient<\n TTransport extends Transport,\n TChain extends Chain | undefined,\n>({\n chain,\n key = 'public',\n name = 'Public Client',\n transport,\n pollingInterval,\n}: PublicClientConfig<TTransport, TChain>): PublicClient<\n TTransport,\n TChain,\n true\n> {\n const client = createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport,\n type: 'publicClient',\n })\n return {\n ...client,\n ...publicActions(client as PublicClient),\n }\n}\n","import type { Chain } from '../types'\nimport type { TestRequests } from '../types/eip1193'\nimport type { Client, ClientConfig } from './createClient'\nimport { createClient } from './createClient'\nimport { testActions, TestActions } from './decorators'\nimport type { Transport } from './transports/createTransport'\n\ntype TestClientModes = 'anvil' | 'hardhat'\n\nexport type TestClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain,\n TMode extends TestClientModes = TestClientModes,\n> = {\n chain?: ClientConfig<TTransport, TChain>['chain']\n /** The key of the client. */\n key?: ClientConfig['key']\n /** Mode of the test client. Available: \"anvil\" | \"hardhat\" */\n mode: TMode\n /** The name of the client. */\n name?: ClientConfig['name']\n /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */\n pollingInterval?: ClientConfig['pollingInterval']\n transport: ClientConfig<TTransport, TChain>['transport']\n}\n\nexport type TestClient<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain,\n TMode extends TestClientModes = TestClientModes,\n TIncludeActions extends boolean = true,\n> = Client<TTransport, TChain, TestRequests<TMode>> & {\n mode: TMode\n} & (TIncludeActions extends true ? TestActions : {})\n\nexport type TestClientArg<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TMode extends TestClientModes = TestClientModes,\n TIncludeActions extends boolean = boolean,\n> = TestClient<TTransport, TChain, TMode, TIncludeActions>\n\n/**\n * @description Creates a test client with a given transport.\n */\nexport function createTestClient<\n TTransport extends Transport,\n TChain extends Chain | undefined,\n TMode extends TestClientModes,\n>({\n chain,\n key = 'test',\n name = 'Test Client',\n mode,\n pollingInterval,\n transport,\n}: TestClientConfig<TTransport, TChain, TMode>): TestClient<\n TTransport,\n TChain,\n TMode,\n true\n> {\n const client = {\n ...createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport,\n type: 'testClient',\n }),\n mode,\n }\n return {\n ...client,\n ...testActions(client as TestClient<any, any, any>),\n }\n}\n","import type { Client, ClientConfig } from './createClient'\nimport { createClient } from './createClient'\nimport type { Transport } from './transports/createTransport'\nimport type { Account, Address, Chain, ParseAccount } from '../types'\nimport { WalletActions, walletActions } from './decorators'\nimport { parseAccount } from '../utils'\n\nexport type WalletClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain,\n TAccount extends Account | Address | undefined = undefined,\n> = {\n account?: TAccount\n chain?: TChain\n /** The key of the Wallet Client. */\n key?: ClientConfig['key']\n /** The name of the Wallet Client. */\n name?: ClientConfig['name']\n /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */\n pollingInterval?: ClientConfig['pollingInterval']\n transport: ClientConfig<TTransport, TChain>['transport']\n}\n\nexport type WalletClient<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = undefined,\n TAccount extends Account | undefined = undefined,\n TIncludeActions extends boolean = true,\n> = Client<TTransport, TChain> & {\n account: TAccount\n} & (TIncludeActions extends true ? WalletActions<TChain, TAccount> : {})\n\nexport type WalletClientArg<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n TIncludeActions extends boolean = boolean,\n> = WalletClient<TTransport, TChain, TAccount, TIncludeActions>\n\n/**\n * @description Creates a wallet client with a given transport.\n */\nexport function createWalletClient<\n TTransport extends Transport,\n TChain extends Chain | undefined = undefined,\n TAccountOrAddress extends Account | Address | undefined = undefined,\n TAccount extends Account | undefined = ParseAccount<TAccountOrAddress>,\n>({\n account,\n chain,\n transport,\n key = 'wallet',\n name = 'Wallet Client',\n pollingInterval,\n}: WalletClientConfig<TTransport, TChain, TAccountOrAddress>): WalletClient<\n TTransport,\n TChain,\n TAccount,\n true\n> {\n const baseClient = createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport: () => transport({ retryCount: 0 }),\n type: 'walletClient',\n })\n const client = {\n account: account ? parseAccount(account) : undefined,\n ...baseClient,\n }\n return {\n ...client,\n ...(walletActions(client as any) as any),\n }\n}\n"]}
1
+ {"version":3,"sources":["../src/clients/transports/createTransport.ts","../src/clients/transports/custom.ts","../src/clients/transports/fallback.ts","../src/clients/transports/http.ts","../src/clients/transports/webSocket.ts","../src/utils/uid.ts","../src/clients/createClient.ts","../src/clients/decorators/public.ts","../src/clients/decorators/test.ts","../src/clients/decorators/wallet.ts","../src/clients/createPublicClient.ts","../src/clients/createTestClient.ts","../src/clients/createWalletClient.ts"],"names":["size"],"mappings":"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","sourcesContent":["import type { Chain } from '../../types'\nimport type { Requests } from '../../types/eip1193'\nimport { buildRequest } from '../../utils'\n\nexport type BaseRpcRequests = {\n request(...args: any): Promise<any>\n}\n\nexport type TransportConfig<\n TType extends string = string,\n TRequests extends BaseRpcRequests['request'] = Requests['request'],\n> = {\n /** The name of the transport. */\n name: string\n /** The key of the transport. */\n key: string\n /** The JSON-RPC request function that matches the EIP-1193 request spec. */\n request: TRequests\n /** The base delay (in ms) between retries. */\n retryDelay?: number\n /** The max number of times to retry. */\n retryCount?: number\n /** The timeout (in ms) for requests. */\n timeout?: number\n /** The type of the transport. */\n type: TType\n}\n\nexport type Transport<\n TType extends string = string,\n TRpcAttributes = Record<string, any>,\n TRequests extends BaseRpcRequests['request'] = Requests['request'],\n> = <TChain extends Chain | undefined = Chain>({\n chain,\n}: {\n chain?: TChain\n retryCount?: TransportConfig['retryCount']\n}) => {\n config: TransportConfig<TType>\n request: TRequests\n value?: TRpcAttributes\n}\n\n/**\n * @description Creates an transport intended to be used with a client.\n */\nexport function createTransport<\n TType extends string,\n TRpcAttributes extends Record<string, any>,\n>(\n {\n key,\n name,\n request,\n retryCount = 3,\n retryDelay = 150,\n timeout,\n type,\n }: TransportConfig<TType>,\n value?: TRpcAttributes,\n): ReturnType<Transport<TType, TRpcAttributes>> {\n return {\n config: { key, name, request, retryCount, retryDelay, timeout, type },\n request: buildRequest(request, { retryCount, retryDelay }),\n value,\n }\n}\n","import type {\n BaseRpcRequests,\n Transport,\n TransportConfig,\n} from './createTransport'\nimport { createTransport } from './createTransport'\n\ntype EthereumProvider = { request: BaseRpcRequests['request'] }\n\nexport type CustomTransportConfig = {\n /** The key of the transport. */\n key?: TransportConfig['key']\n /** The name of the transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n}\n\nexport type CustomTransport = Transport<'custom', EthereumProvider['request']>\n\n/**\n * @description Creates a custom transport given an EIP-1193 compliant `request` attribute.\n */\nexport function custom<TProvider extends EthereumProvider>(\n provider: TProvider,\n config: CustomTransportConfig = {},\n): CustomTransport {\n const { key = 'custom', name = 'Custom Provider', retryDelay } = config\n return ({ retryCount: defaultRetryCount }) =>\n createTransport({\n key,\n name,\n request: provider.request.bind(provider),\n retryCount: config.retryCount ?? defaultRetryCount,\n retryDelay,\n type: 'custom',\n })\n}\n","import { isDeterministicError } from '../../utils/buildRequest'\nimport type { Transport, TransportConfig } from './createTransport'\nimport { createTransport } from './createTransport'\n\nexport type FallbackTransportConfig = {\n /** The key of the Fallback transport. */\n key?: TransportConfig['key']\n /** The name of the Fallback transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n}\n\nexport type FallbackTransport = Transport<\n 'fallback',\n { transports: Transport[] }\n>\n\nexport function fallback(\n transports: Transport[],\n config: FallbackTransportConfig = {},\n): FallbackTransport {\n const { key = 'fallback', name = 'Fallback', retryCount, retryDelay } = config\n return ({ chain }) =>\n createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const fetch = async (i: number = 0): Promise<any> => {\n const transport = transports[i]({ chain, retryCount: 0 })\n try {\n return await transport.request({\n method,\n params,\n } as any)\n } catch (err) {\n // If the error is deterministic, we don't need to fall back.\n // So throw the error.\n if (isDeterministicError(err as Error)) throw err\n\n // If we've reached the end of the fallbacks, throw the error.\n if (i === transports.length - 1) throw err\n\n // Otherwise, try the next fallback.\n return fetch(i + 1)\n }\n }\n return fetch()\n },\n retryCount,\n retryDelay,\n type: 'fallback',\n },\n {\n transports: transports.map(\n (fn) => fn({ chain, retryCount: 0 }) as unknown as Transport,\n ),\n },\n )\n}\n","import { UrlRequiredError } from '../../errors'\nimport type { HttpOptions } from '../../utils'\nimport { rpc } from '../../utils'\nimport type { Transport, TransportConfig } from './createTransport'\nimport { createTransport } from './createTransport'\n\nexport type HttpTransportConfig = {\n /**\n * Request configuration to pass to `fetch`.\n * @link https://developer.mozilla.org/en-US/docs/Web/API/fetch\n */\n fetchOptions?: HttpOptions['fetchOptions']\n /** The key of the HTTP transport. */\n key?: TransportConfig['key']\n /** The name of the HTTP transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n /** The timeout (in ms) for the HTTP request. Default: 10_000 */\n timeout?: TransportConfig['timeout']\n}\n\nexport type HttpTransport = Transport<\n 'http',\n {\n url?: string\n }\n>\n\n/**\n * @description Creates a HTTP transport that connects to a JSON-RPC API.\n */\nexport function http(\n /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\n url?: string,\n config: HttpTransportConfig = {},\n): HttpTransport {\n const {\n fetchOptions,\n key = 'http',\n name = 'HTTP JSON-RPC',\n retryDelay,\n timeout = 10_000,\n } = config\n return ({ chain, retryCount: defaultRetryCount }) => {\n const retryCount = config.retryCount ?? defaultRetryCount\n const url_ = url || chain?.rpcUrls.default.http[0]\n if (!url_) throw new UrlRequiredError()\n return createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const { result } = await rpc.http(url_, {\n body: {\n method,\n params,\n },\n fetchOptions,\n timeout,\n })\n return result\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'http',\n },\n {\n url,\n },\n )\n }\n}\n","import type WebSocket from 'isomorphic-ws'\nimport { UrlRequiredError } from '../../errors'\nimport type { Hash } from '../../types'\nimport type { RpcResponse } from '../../utils/rpc'\nimport { getSocket, rpc } from '../../utils/rpc'\nimport type { Transport, TransportConfig } from './createTransport'\nimport { createTransport } from './createTransport'\n\ntype WebSocketTransportSubscribeParameters = {\n onData: (data: RpcResponse) => void\n onError?: (error: any) => void\n}\n\ntype WebSocketTransportSubscribeReturnType = {\n subscriptionId: Hash\n unsubscribe: () => Promise<RpcResponse<boolean>>\n}\n\ntype WebSocketTransportSubscribe = {\n subscribe(\n args: WebSocketTransportSubscribeParameters & {\n /**\n * @description Add information about compiled contracts\n * @link https://hardhat.org/hardhat-network/docs/reference#hardhat_addcompilationresult\n */\n params: ['newHeads']\n },\n ): Promise<WebSocketTransportSubscribeReturnType>\n}\n\nexport type WebSocketTransportConfig = {\n /** The key of the WebSocket transport. */\n key?: TransportConfig['key']\n /** The name of the WebSocket transport. */\n name?: TransportConfig['name']\n /** The max number of times to retry. */\n retryCount?: TransportConfig['retryCount']\n /** The base delay (in ms) between retries. */\n retryDelay?: TransportConfig['retryDelay']\n /** The timeout (in ms) for async WebSocket requests. Default: 10_000 */\n timeout?: TransportConfig['timeout']\n}\n\nexport type WebSocketTransport = Transport<\n 'webSocket',\n {\n getSocket(): Promise<WebSocket>\n subscribe: WebSocketTransportSubscribe['subscribe']\n }\n>\n\n/**\n * @description Creates a WebSocket transport that connects to a JSON-RPC API.\n */\nexport function webSocket(\n /** URL of the JSON-RPC API. Defaults to the chain's public RPC URL. */\n url?: string,\n config: WebSocketTransportConfig = {},\n): WebSocketTransport {\n const {\n key = 'webSocket',\n name = 'WebSocket JSON-RPC',\n retryDelay,\n timeout = 10_000,\n } = config\n return ({ chain, retryCount: defaultRetryCount }) => {\n const retryCount = config.retryCount ?? defaultRetryCount\n const url_ = url || chain?.rpcUrls.default.webSocket?.[0]\n if (!url_) throw new UrlRequiredError()\n return createTransport(\n {\n key,\n name,\n async request({ method, params }) {\n const socket = await getSocket(url_)\n const { result } = await rpc.webSocketAsync(socket, {\n body: { method, params },\n timeout,\n })\n return result\n },\n retryCount,\n retryDelay,\n timeout,\n type: 'webSocket',\n },\n {\n getSocket() {\n return getSocket(url_)\n },\n async subscribe({ params, onData, onError }: any) {\n const socket = await getSocket(url_)\n const { result: subscriptionId } = await new Promise<any>(\n (resolve, reject) =>\n rpc.webSocket(socket, {\n body: {\n method: 'eth_subscribe',\n params,\n },\n onData: (data) => {\n if (typeof data.id === 'number') {\n resolve(data)\n return\n }\n if (data.method !== 'eth_subscription') return\n onData(data.params)\n },\n onError: (error) => {\n reject(error)\n onError?.(error)\n },\n }),\n )\n return {\n subscriptionId,\n async unsubscribe() {\n return new Promise<any>((resolve, reject) =>\n rpc.webSocket(socket, {\n body: {\n method: 'eth_unsubscribe',\n params: [subscriptionId],\n },\n onData: resolve,\n onError: reject,\n }),\n )\n },\n }\n },\n },\n )\n }\n}\n","let size = 256\nlet index = size\nlet buffer: string\n\nexport function uid(length = 11) {\n if (!buffer || index + length > size * 2) {\n buffer = ''\n index = 0\n for (let i = 0; i < size; i++) {\n buffer += ((256 + Math.random() * 256) | 0).toString(16).substring(1)\n }\n }\n return buffer.substring(index, index++ + length)\n}\n","import type { Chain } from '../types'\nimport type { Requests } from '../types/eip1193'\nimport { uid } from '../utils/uid'\nimport type { BaseRpcRequests, Transport } from './transports/createTransport'\n\nexport type ClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n> = {\n /** Chain for the client. */\n chain?: TChain\n /** A key for the client. */\n key?: string\n /** A name for the client. */\n name?: string\n /**\n * Frequency (in ms) for polling enabled actions & events.\n * @default 4_000\n */\n pollingInterval?: number\n /** The RPC transport */\n transport: TTransport\n /** The type of client. */\n type?: string\n}\n\nexport type Client<\n TTransport extends Transport = Transport,\n TRequests extends BaseRpcRequests = Requests,\n TChain extends Chain | undefined = Chain | undefined,\n> = {\n /** Chain for the client. */\n chain: TChain\n /** A key for the client. */\n key: string\n /** A name for the client. */\n name: string\n /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */\n pollingInterval: number\n /** Request function wrapped with friendly error handling */\n request: TRequests['request']\n /** The RPC transport */\n transport: ReturnType<TTransport>['config'] & ReturnType<TTransport>['value']\n /** The type of client. */\n type: string\n /** A unique ID for the client. */\n uid: string\n}\n\n/**\n * @description Creates a base client with the given transport.\n */\nexport function createClient<\n TTransport extends Transport,\n TRequests extends BaseRpcRequests,\n TChain extends Chain | undefined = undefined,\n>({\n chain,\n key = 'base',\n name = 'Base Client',\n pollingInterval = 4_000,\n transport,\n type = 'base',\n}: ClientConfig<TTransport, TChain>): Client<TTransport, TRequests, TChain> {\n const { config, request, value } = transport({ chain })\n return {\n chain: chain as TChain,\n key,\n name,\n pollingInterval,\n request,\n transport: { ...config, ...value },\n type,\n uid: uid(),\n }\n}\n","import type { Abi, AbiEvent } from 'abitype'\nimport type {\n GetEnsAddressParameters,\n GetEnsAddressReturnType,\n GetEnsNameParameters,\n GetEnsNameReturnType,\n} from '../../actions/ens'\nimport { getEnsAddress, getEnsName } from '../../actions/ens'\nimport type {\n CallParameters,\n CallReturnType,\n CreateBlockFilterReturnType,\n CreateContractEventFilterParameters,\n CreateContractEventFilterReturnType,\n CreateEventFilterParameters,\n CreateEventFilterReturnType,\n CreatePendingTransactionFilterReturnType,\n EstimateContractGasParameters,\n EstimateContractGasReturnType,\n EstimateGasParameters,\n EstimateGasReturnType,\n GetBalanceParameters,\n GetBalanceReturnType,\n GetBlockNumberParameters,\n GetBlockNumberReturnType,\n GetBlockParameters,\n GetBlockReturnType,\n GetBlockTransactionCountParameters,\n GetBlockTransactionCountReturnType,\n GetBytecodeParameters,\n GetBytecodeReturnType,\n GetChainIdReturnType,\n GetFeeHistoryParameters,\n GetFeeHistoryReturnType,\n GetFilterChangesParameters,\n GetFilterChangesReturnType,\n GetFilterLogsParameters,\n GetFilterLogsReturnType,\n GetGasPriceReturnType,\n GetLogsParameters,\n GetLogsReturnType,\n GetStorageAtParameters,\n GetStorageAtReturnType,\n GetTransactionConfirmationsParameters,\n GetTransactionConfirmationsReturnType,\n GetTransactionCountParameters,\n GetTransactionCountReturnType,\n GetTransactionParameters,\n GetTransactionReceiptParameters,\n GetTransactionReceiptReturnType,\n GetTransactionReturnType,\n MulticallParameters,\n MulticallReturnType,\n ReadContractParameters,\n ReadContractReturnType,\n SimulateContractParameters,\n SimulateContractReturnType,\n UninstallFilterParameters,\n UninstallFilterReturnType,\n WaitForTransactionReceiptParameters,\n WaitForTransactionReceiptReturnType,\n WatchBlockNumberParameters,\n WatchBlockNumberReturnType,\n WatchBlocksParameters,\n WatchBlocksReturnType,\n WatchContractEventParameters,\n WatchContractEventReturnType,\n WatchEventParameters,\n WatchEventReturnType,\n WatchPendingTransactionsParameters,\n WatchPendingTransactionsReturnType,\n} from '../../actions/public'\nimport {\n call,\n createBlockFilter,\n createContractEventFilter,\n createEventFilter,\n createPendingTransactionFilter,\n estimateContractGas,\n estimateGas,\n getBalance,\n getBlock,\n getBlockNumber,\n getBlockTransactionCount,\n getBytecode,\n getChainId,\n getFeeHistory,\n getFilterChanges,\n getFilterLogs,\n getGasPrice,\n getLogs,\n getStorageAt,\n getTransaction,\n getTransactionConfirmations,\n getTransactionCount,\n getTransactionReceipt,\n multicall,\n readContract,\n simulateContract,\n uninstallFilter,\n waitForTransactionReceipt,\n watchBlockNumber,\n watchBlocks,\n watchContractEvent,\n watchEvent,\n watchPendingTransactions,\n} from '../../actions/public'\nimport type {\n Chain,\n ContractConfig,\n FilterType,\n MaybeExtractEventArgsFromAbi,\n} from '../../types'\nimport type { PublicClient } from '../createPublicClient'\nimport type { Transport } from '../transports'\n\nexport type PublicActions<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n> = {\n call: (args: CallParameters<TChain>) => Promise<CallReturnType>\n createBlockFilter: () => Promise<CreateBlockFilterReturnType>\n createContractEventFilter: <\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined,\n >(\n args: CreateContractEventFilterParameters<TAbi, TEventName, TArgs>,\n ) => Promise<CreateContractEventFilterReturnType<TAbi, TEventName, TArgs>>\n createEventFilter: <\n TAbiEvent extends AbiEvent | undefined,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n TArgs extends MaybeExtractEventArgsFromAbi<TAbi, TEventName> | undefined,\n >(\n args?: CreateEventFilterParameters<TAbiEvent, TAbi, TEventName, TArgs>,\n ) => Promise<CreateEventFilterReturnType<TAbiEvent, TAbi, TEventName, TArgs>>\n createPendingTransactionFilter: () => Promise<CreatePendingTransactionFilterReturnType>\n estimateContractGas: <\n TChain extends Chain | undefined,\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n >(\n args: EstimateContractGasParameters<TAbi, TFunctionName, TChain>,\n ) => Promise<EstimateContractGasReturnType>\n estimateGas: (\n args: EstimateGasParameters<TChain>,\n ) => Promise<EstimateGasReturnType>\n getBalance: (args: GetBalanceParameters) => Promise<GetBalanceReturnType>\n getBlock: (args?: GetBlockParameters) => Promise<GetBlockReturnType<TChain>>\n getBlockNumber: (\n args?: GetBlockNumberParameters,\n ) => Promise<GetBlockNumberReturnType>\n getBlockTransactionCount: (\n args?: GetBlockTransactionCountParameters,\n ) => Promise<GetBlockTransactionCountReturnType>\n getBytecode: (args: GetBytecodeParameters) => Promise<GetBytecodeReturnType>\n getChainId: () => Promise<GetChainIdReturnType>\n getEnsAddress: (\n args: GetEnsAddressParameters,\n ) => Promise<GetEnsAddressReturnType>\n getEnsName: (args: GetEnsNameParameters) => Promise<GetEnsNameReturnType>\n getFeeHistory: (\n args: GetFeeHistoryParameters,\n ) => Promise<GetFeeHistoryReturnType>\n getFilterChanges: <\n TFilterType extends FilterType,\n TAbiEvent extends AbiEvent | undefined,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n >(\n args: GetFilterChangesParameters<TFilterType, TAbiEvent, TAbi, TEventName>,\n ) => Promise<\n GetFilterChangesReturnType<TFilterType, TAbiEvent, TAbi, TEventName>\n >\n getFilterLogs: <\n TAbiEvent extends AbiEvent | undefined,\n TAbi extends Abi | readonly unknown[],\n TEventName extends string | undefined,\n >(\n args: GetFilterLogsParameters<TAbiEvent, TAbi, TEventName>,\n ) => Promise<GetFilterLogsReturnType<TAbiEvent, TAbi, TEventName>>\n getGasPrice: () => Promise<GetGasPriceReturnType>\n getLogs: <TAbiEvent extends AbiEvent | undefined>(\n args?: GetLogsParameters<TAbiEvent>,\n ) => Promise<GetLogsReturnType<TAbiEvent>>\n getStorageAt: (\n args: GetStorageAtParameters,\n ) => Promise<GetStorageAtReturnType>\n getTransaction: (\n args: GetTransactionParameters,\n ) => Promise<GetTransactionReturnType<TChain>>\n getTransactionConfirmations: (\n args: GetTransactionConfirmationsParameters<TChain>,\n ) => Promise<GetTransactionConfirmationsReturnType>\n getTransactionCount: (\n args: GetTransactionCountParameters,\n ) => Promise<GetTransactionCountReturnType>\n getTransactionReceipt: (\n args: GetTransactionReceiptParameters,\n ) => Promise<GetTransactionReceiptReturnType<TChain>>\n multicall: <\n TContracts extends ContractConfig[],\n TAllowFailure extends boolean = true,\n >(\n args: MulticallParameters<TContracts, TAllowFailure>,\n ) => Promise<MulticallReturnType<TContracts, TAllowFailure>>\n readContract: <\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n >(\n args: ReadContractParameters<TAbi, TFunctionName>,\n ) => Promise<ReadContractReturnType<TAbi, TFunctionName>>\n simulateContract: <\n TAbi extends Abi | readonly unknown[] = Abi,\n TFunctionName extends string = any,\n TChainOverride extends Chain | undefined = undefined,\n >(\n args: SimulateContractParameters<\n TAbi,\n TFunctionName,\n TChain,\n TChainOverride\n >,\n ) => Promise<\n SimulateContractReturnType<TAbi, TFunctionName, TChain, TChainOverride>\n >\n uninstallFilter: (\n args: UninstallFilterParameters,\n ) => Promise<UninstallFilterReturnType>\n waitForTransactionReceipt: (\n args: WaitForTransactionReceiptParameters<TChain>,\n ) => Promise<WaitForTransactionReceiptReturnType<TChain>>\n watchBlockNumber: (\n args: WatchBlockNumberParameters,\n ) => WatchBlockNumberReturnType\n watchBlocks: (\n args: WatchBlocksParameters<TTransport, TChain>,\n ) => WatchBlocksReturnType\n watchContractEvent: <\n TAbi extends Abi | readonly unknown[],\n TEventName extends string,\n >(\n args: WatchContractEventParameters<TAbi, TEventName>,\n ) => WatchContractEventReturnType\n watchEvent: <TAbiEvent extends AbiEvent | undefined>(\n args: WatchEventParameters<TAbiEvent>,\n ) => WatchEventReturnType\n watchPendingTransactions: (\n args: WatchPendingTransactionsParameters<TTransport>,\n ) => WatchPendingTransactionsReturnType\n}\n\nexport const publicActions = <\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n>(\n client: PublicClient<TTransport, TChain>,\n): PublicActions<TTransport, TChain> => ({\n call: (args) => call(client, args),\n createBlockFilter: () => createBlockFilter(client),\n createContractEventFilter: (args) => createContractEventFilter(client, args),\n createEventFilter: (args) => createEventFilter(client, args),\n createPendingTransactionFilter: () => createPendingTransactionFilter(client),\n estimateContractGas: (args) => estimateContractGas(client, args),\n estimateGas: (args) => estimateGas(client, args),\n getBalance: (args) => getBalance(client, args),\n getBlock: (args) => getBlock(client, args),\n getBlockNumber: (args) => getBlockNumber(client, args),\n getBlockTransactionCount: (args) => getBlockTransactionCount(client, args),\n getBytecode: (args) => getBytecode(client, args),\n getChainId: () => getChainId(client),\n getEnsAddress: (args) => getEnsAddress(client, args),\n getEnsName: (args) => getEnsName(client, args),\n getFeeHistory: (args) => getFeeHistory(client, args),\n getFilterChanges: (args) => getFilterChanges(client, args),\n getFilterLogs: (args) => getFilterLogs(client, args),\n getGasPrice: () => getGasPrice(client),\n getLogs: (args) => getLogs(client, args),\n getStorageAt: (args) => getStorageAt(client, args),\n getTransaction: (args) => getTransaction(client, args),\n getTransactionConfirmations: (args) =>\n getTransactionConfirmations(client, args),\n getTransactionCount: (args) => getTransactionCount(client, args),\n getTransactionReceipt: (args) => getTransactionReceipt(client, args),\n multicall: (args) => multicall(client, args),\n readContract: (args) => readContract(client, args),\n simulateContract: (args) => simulateContract(client, args),\n uninstallFilter: (args) => uninstallFilter(client, args),\n waitForTransactionReceipt: (args) => waitForTransactionReceipt(client, args),\n watchBlocks: (args) => watchBlocks(client, args),\n watchBlockNumber: (args) => watchBlockNumber(client, args),\n watchContractEvent: (args) => watchContractEvent(client, args),\n watchEvent: (args) => watchEvent(client, args),\n watchPendingTransactions: (args) => watchPendingTransactions(client, args),\n})\n","import type {\n DropTransactionParameters,\n GetAutomineReturnType,\n GetTxpoolContentReturnType,\n GetTxpoolStatusReturnType,\n ImpersonateAccountParameters,\n IncreaseTimeParameters,\n InspectTxpoolReturnType,\n MineParameters,\n ResetParameters,\n RevertParameters,\n SendUnsignedTransactionParameters,\n SendUnsignedTransactionReturnType,\n SetBalanceParameters,\n SetBlockGasLimitParameters,\n SetBlockTimestampIntervalParameters,\n SetCodeParameters,\n SetCoinbaseParameters,\n SetIntervalMiningParameters,\n SetMinGasPriceParameters,\n SetNextBlockBaseFeePerGasParameters,\n SetNextBlockTimestampParameters,\n SetNonceParameters,\n SetStorageAtParameters,\n StopImpersonatingAccountParameters,\n} from '../../actions/test'\nimport {\n dropTransaction,\n getAutomine,\n getTxpoolContent,\n getTxpoolStatus,\n impersonateAccount,\n increaseTime,\n inspectTxpool,\n mine,\n removeBlockTimestampInterval,\n reset,\n revert,\n sendUnsignedTransaction,\n setAutomine,\n setBalance,\n setBlockGasLimit,\n setBlockTimestampInterval,\n setCode,\n setCoinbase,\n setIntervalMining,\n setLoggingEnabled,\n setMinGasPrice,\n setNextBlockBaseFeePerGas,\n setNextBlockTimestamp,\n setNonce,\n setRpcUrl,\n setStorageAt,\n snapshot,\n stopImpersonatingAccount,\n} from '../../actions/test'\nimport type { Chain, Quantity } from '../../types'\nimport type { TestClient, TestClientMode } from '../createTestClient'\nimport type { Transport } from '../transports'\n\nexport type TestActions = {\n dropTransaction: (args: DropTransactionParameters) => Promise<void>\n getAutomine: () => Promise<GetAutomineReturnType>\n getTxpoolContent: () => Promise<GetTxpoolContentReturnType>\n getTxpoolStatus: () => Promise<GetTxpoolStatusReturnType>\n impersonateAccount: (args: ImpersonateAccountParameters) => Promise<void>\n increaseTime: (args: IncreaseTimeParameters) => Promise<Quantity>\n inspectTxpool: () => Promise<InspectTxpoolReturnType>\n mine: (args: MineParameters) => Promise<void>\n removeBlockTimestampInterval: () => Promise<void>\n reset: (args?: ResetParameters) => Promise<void>\n revert: (args: RevertParameters) => Promise<void>\n sendUnsignedTransaction: (\n args: SendUnsignedTransactionParameters,\n ) => Promise<SendUnsignedTransactionReturnType>\n setAutomine: (args: boolean) => Promise<void>\n setBalance: (args: SetBalanceParameters) => Promise<void>\n setBlockGasLimit: (args: SetBlockGasLimitParameters) => Promise<void>\n setBlockTimestampInterval: (\n args: SetBlockTimestampIntervalParameters,\n ) => Promise<void>\n setCode: (args: SetCodeParameters) => Promise<void>\n setCoinbase: (args: SetCoinbaseParameters) => Promise<void>\n setIntervalMining: (args: SetIntervalMiningParameters) => Promise<void>\n setLoggingEnabled: (args: boolean) => Promise<void>\n setMinGasPrice: (args: SetMinGasPriceParameters) => Promise<void>\n setNextBlockBaseFeePerGas: (\n args: SetNextBlockBaseFeePerGasParameters,\n ) => Promise<void>\n setNextBlockTimestamp: (\n args: SetNextBlockTimestampParameters,\n ) => Promise<void>\n setNonce: (args: SetNonceParameters) => Promise<void>\n setRpcUrl: (args: string) => Promise<void>\n setStorageAt: (args: SetStorageAtParameters) => Promise<void>\n snapshot: () => Promise<Quantity>\n stopImpersonatingAccount: (\n args: StopImpersonatingAccountParameters,\n ) => Promise<void>\n}\n\nexport function testActions<TChain extends Chain | undefined>(\n client: TestClient<TestClientMode, Transport, TChain>,\n): TestActions {\n return {\n dropTransaction: (args) => dropTransaction(client, args),\n getAutomine: () => getAutomine(client),\n getTxpoolContent: () => getTxpoolContent(client),\n getTxpoolStatus: () => getTxpoolStatus(client),\n impersonateAccount: (args) => impersonateAccount(client, args),\n increaseTime: (args) => increaseTime(client, args),\n inspectTxpool: () => inspectTxpool(client),\n mine: (args) => mine(client, args),\n removeBlockTimestampInterval: () => removeBlockTimestampInterval(client),\n reset: (args) => reset(client, args),\n revert: (args) => revert(client, args),\n sendUnsignedTransaction: (args) => sendUnsignedTransaction(client, args),\n setAutomine: (args) => setAutomine(client, args),\n setBalance: (args) => setBalance(client, args),\n setBlockGasLimit: (args) => setBlockGasLimit(client, args),\n setBlockTimestampInterval: (args) =>\n setBlockTimestampInterval(client, args),\n setCode: (args) => setCode(client, args),\n setCoinbase: (args) => setCoinbase(client, args),\n setIntervalMining: (args) => setIntervalMining(client, args),\n setLoggingEnabled: (args) => setLoggingEnabled(client, args),\n setMinGasPrice: (args) => setMinGasPrice(client, args),\n setNextBlockBaseFeePerGas: (args) =>\n setNextBlockBaseFeePerGas(client, args),\n setNextBlockTimestamp: (args) => setNextBlockTimestamp(client, args),\n setNonce: (args) => setNonce(client, args),\n setRpcUrl: (args) => setRpcUrl(client, args),\n setStorageAt: (args) => setStorageAt(client, args),\n snapshot: () => snapshot(client),\n stopImpersonatingAccount: (args) => stopImpersonatingAccount(client, args),\n }\n}\n","import type { Abi, TypedData } from 'abitype'\nimport type {\n AddChainParameters,\n DeployContractParameters,\n DeployContractReturnType,\n GetAddressesReturnType,\n GetChainIdReturnType,\n GetPermissionsReturnType,\n RequestAddressesReturnType,\n RequestPermissionsParameters,\n RequestPermissionsReturnType,\n SendTransactionParameters,\n SendTransactionReturnType,\n SignMessageParameters,\n SignMessageReturnType,\n SignTypedDataParameters,\n SignTypedDataReturnType,\n SwitchChainParameters,\n WatchAssetParameters,\n WatchAssetReturnType,\n WriteContractParameters,\n WriteContractReturnType,\n} from '../../actions/wallet'\nimport {\n addChain,\n deployContract,\n getAddresses,\n getChainId,\n getPermissions,\n requestAddresses,\n requestPermissions,\n sendTransaction,\n signMessage,\n signTypedData,\n switchChain,\n watchAsset,\n writeContract,\n} from '../../actions/wallet'\nimport type { Account, Chain } from '../../types'\nimport type { WalletClient } from '../createWalletClient'\nimport type { Transport } from '../transports'\n\nexport type WalletActions<\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n> = {\n addChain: (args: AddChainParameters) => Promise<void>\n deployContract: <\n TAbi extends Abi | readonly unknown[],\n TChainOverride extends Chain | undefined,\n >(\n args: DeployContractParameters<TAbi, TChain, TAccount, TChainOverride>,\n ) => Promise<DeployContractReturnType>\n getAddresses: () => Promise<GetAddressesReturnType>\n getChainId: () => Promise<GetChainIdReturnType>\n getPermissions: () => Promise<GetPermissionsReturnType>\n requestAddresses: () => Promise<RequestAddressesReturnType>\n requestPermissions: (\n args: RequestPermissionsParameters,\n ) => Promise<RequestPermissionsReturnType>\n sendTransaction: <TChainOverride extends Chain | undefined>(\n args: SendTransactionParameters<TChain, TAccount, TChainOverride>,\n ) => Promise<SendTransactionReturnType>\n signMessage: (\n args: SignMessageParameters<TAccount>,\n ) => Promise<SignMessageReturnType>\n signTypedData: <\n TTypedData extends TypedData | { [key: string]: unknown },\n TPrimaryType extends string,\n >(\n args: SignTypedDataParameters<TTypedData, TPrimaryType, TAccount>,\n ) => Promise<SignTypedDataReturnType>\n switchChain: (args: SwitchChainParameters) => Promise<void>\n watchAsset: (args: WatchAssetParameters) => Promise<WatchAssetReturnType>\n writeContract: <\n TAbi extends Abi | readonly unknown[],\n TFunctionName extends string,\n TChainOverride extends Chain | undefined,\n >(\n args: WriteContractParameters<\n TAbi,\n TFunctionName,\n TChain,\n TAccount,\n TChainOverride\n >,\n ) => Promise<WriteContractReturnType>\n}\n\nexport const walletActions = <\n TTransport extends Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n>(\n client: WalletClient<TTransport, TChain, TAccount>,\n): WalletActions<TChain, TAccount> => ({\n addChain: (args) => addChain(client, args),\n deployContract: (args) => deployContract(client, args),\n getAddresses: () => getAddresses(client),\n getChainId: () => getChainId(client),\n getPermissions: () => getPermissions(client),\n requestAddresses: () => requestAddresses(client),\n requestPermissions: (args) => requestPermissions(client, args),\n sendTransaction: (args) => sendTransaction(client, args),\n signMessage: (args) => signMessage(client, args),\n signTypedData: (args) => signTypedData(client, args),\n switchChain: (args) => switchChain(client, args),\n watchAsset: (args) => watchAsset(client, args),\n writeContract: (args) => writeContract(client, args),\n})\n","import type { PublicRequests } from '../types/eip1193'\nimport type { Transport } from './transports/createTransport'\nimport type { Client, ClientConfig } from './createClient'\nimport { createClient } from './createClient'\nimport { publicActions, PublicActions } from './decorators'\nimport type { Chain, Prettify } from '../types'\n\nexport type PublicClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n> = Pick<\n ClientConfig<TTransport, TChain>,\n 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'\n>\n\nexport type PublicClient<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TIncludeActions extends boolean = true,\n> = Prettify<\n Client<TTransport, PublicRequests, TChain> &\n (TIncludeActions extends true ? PublicActions<TTransport, TChain> : unknown)\n>\n\n/**\n * @description Creates a public client with a given transport.\n */\nexport function createPublicClient<\n TTransport extends Transport,\n TChain extends Chain | undefined = undefined,\n>({\n chain,\n key = 'public',\n name = 'Public Client',\n transport,\n pollingInterval,\n}: PublicClientConfig<TTransport, TChain>): PublicClient<\n TTransport,\n TChain,\n true\n> {\n const client = createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport,\n type: 'publicClient',\n }) as PublicClient<TTransport, TChain>\n return {\n ...client,\n ...publicActions(client),\n }\n}\n","import type { Chain } from '../types'\nimport type { TestRequests } from '../types/eip1193'\nimport type { Client, ClientConfig } from './createClient'\nimport { createClient } from './createClient'\nimport { testActions, TestActions } from './decorators'\nimport type { Transport } from './transports/createTransport'\n\nexport type TestClientMode = 'anvil' | 'hardhat'\n\nexport type TestClientConfig<\n TMode extends TestClientMode = TestClientMode,\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n> = Pick<\n ClientConfig<TTransport, TChain>,\n 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'\n> & {\n /** Mode of the test client. Available: \"anvil\" | \"hardhat\" */\n mode: TMode\n}\n\nexport type TestClient<\n TMode extends TestClientMode = TestClientMode,\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TIncludeActions extends boolean = true,\n> = Client<TTransport, TestRequests<TMode>, TChain> &\n (TIncludeActions extends true ? TestActions : unknown) & {\n mode: TMode\n }\n\n/**\n * @description Creates a test client with a given transport.\n */\nexport function createTestClient<\n TMode extends TestClientMode,\n TTransport extends Transport,\n TChain extends Chain | undefined = undefined,\n>({\n chain,\n key = 'test',\n name = 'Test Client',\n mode,\n pollingInterval,\n transport,\n}: TestClientConfig<TMode, TTransport, TChain>): TestClient<\n TMode,\n TTransport,\n TChain,\n true\n> {\n const client = {\n ...createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport,\n type: 'testClient',\n }),\n mode,\n } as TestClient<TMode, TTransport, TChain>\n return {\n ...client,\n ...testActions(client),\n }\n}\n","import type { Client, ClientConfig } from './createClient'\nimport { createClient } from './createClient'\nimport type { Transport } from './transports/createTransport'\nimport type {\n Account,\n Address,\n Chain,\n JsonRpcAccount,\n Prettify,\n} from '../types'\nimport { WalletActions, walletActions } from './decorators'\nimport { parseAccount } from '../utils'\nimport type { Requests } from '../types/eip1193'\n\nexport type WalletClientConfig<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccountOrAddress extends Account | Address | undefined =\n | Account\n | Address\n | undefined,\n> = Pick<\n ClientConfig<TTransport, TChain>,\n 'chain' | 'key' | 'name' | 'pollingInterval' | 'transport'\n> & {\n /** The Account to use for the Wallet Client. This will be used for Actions that require an account as an argument. */\n account?: TAccountOrAddress\n}\n\nexport type WalletClient<\n TTransport extends Transport = Transport,\n TChain extends Chain | undefined = Chain | undefined,\n TAccount extends Account | undefined = Account | undefined,\n TIncludeActions extends boolean = true,\n> = Prettify<\n Client<TTransport, Requests, TChain> &\n (TIncludeActions extends true\n ? WalletActions<TChain, TAccount>\n : unknown) & {\n /** The Account to use for the Wallet Client. */\n account: TAccount\n }\n>\n\n/**\n * @description Creates a wallet client with a given transport.\n */\nexport function createWalletClient<\n TTransport extends Transport,\n TChain extends Chain | undefined = undefined,\n TAccountOrAddress extends Account | Address | undefined = undefined,\n>({\n account,\n chain,\n transport,\n key = 'wallet',\n name = 'Wallet Client',\n pollingInterval,\n}: WalletClientConfig<TTransport, TChain, TAccountOrAddress>): WalletClient<\n TTransport,\n TChain,\n TAccountOrAddress extends Address\n ? Prettify<JsonRpcAccount<TAccountOrAddress>>\n : TAccountOrAddress,\n true\n> {\n const client = {\n ...createClient({\n chain,\n key,\n name,\n pollingInterval,\n transport: () => transport({ retryCount: 0 }),\n type: 'walletClient',\n }),\n account: account ? parseAccount(account) : undefined,\n } as WalletClient<\n TTransport,\n TChain,\n TAccountOrAddress extends Address\n ? JsonRpcAccount<TAccountOrAddress>\n : TAccountOrAddress\n >\n return {\n ...client,\n ...walletActions(client),\n }\n}\n"]}
package/dist/index.mjs CHANGED
@@ -3,7 +3,7 @@ import {
3
3
  getEnsName,
4
4
  labelhash,
5
5
  namehash
6
- } from "./chunk-4DIN6KDM.mjs";
6
+ } from "./chunk-DFMQLPHS.mjs";
7
7
  import {
8
8
  AbiConstructorNotFoundError,
9
9
  AbiConstructorParamsNotFoundError,
@@ -45,10 +45,12 @@ import {
45
45
  InvalidAddressError,
46
46
  InvalidArrayError,
47
47
  InvalidBytesBooleanError,
48
+ InvalidChainIdError,
48
49
  InvalidDefinitionTypeError,
49
50
  InvalidHexBooleanError,
50
51
  InvalidHexValueError,
51
52
  InvalidInputRpcError,
53
+ InvalidLegacyVError,
52
54
  InvalidParamsRpcError,
53
55
  InvalidRequestRpcError,
54
56
  JsonRpcVersionUnsupportedError,
@@ -82,6 +84,10 @@ import {
82
84
  WaitForTransactionReceiptTimeoutError,
83
85
  WebSocketRequestError,
84
86
  addChain,
87
+ assertRequest,
88
+ assertTransactionEIP1559,
89
+ assertTransactionEIP2930,
90
+ assertTransactionLegacy,
85
91
  boolToBytes,
86
92
  boolToHex,
87
93
  buildRequest,
@@ -130,7 +136,6 @@ import {
130
136
  fromHex,
131
137
  fromRlp,
132
138
  getAbiItem,
133
- getAccount,
134
139
  getAddress,
135
140
  getAddresses,
136
141
  getAutomine,
@@ -152,12 +157,14 @@ import {
152
157
  getGasPrice,
153
158
  getLogs,
154
159
  getPermissions,
160
+ getSerializedTransactionType,
155
161
  getSocket,
156
162
  getStorageAt,
157
163
  getTransaction,
158
164
  getTransactionConfirmations,
159
165
  getTransactionCount,
160
166
  getTransactionReceipt,
167
+ getTransactionType,
161
168
  getTxpoolContent,
162
169
  getTxpoolStatus,
163
170
  gweiUnits,
@@ -175,6 +182,7 @@ import {
175
182
  isAddressEqual,
176
183
  isBytes,
177
184
  isDeterministicError,
185
+ isHash,
178
186
  isHex,
179
187
  keccak256,
180
188
  mine,
@@ -192,7 +200,9 @@ import {
192
200
  parseAccount,
193
201
  parseEther,
194
202
  parseGwei,
203
+ parseTransaction,
195
204
  parseUnits,
205
+ prepareRequest,
196
206
  readContract,
197
207
  recoverAddress,
198
208
  recoverMessageAddress,
@@ -204,6 +214,7 @@ import {
204
214
  rpc,
205
215
  sendTransaction,
206
216
  sendUnsignedTransaction,
217
+ serializeTransaction,
207
218
  setAutomine,
208
219
  setBalance,
209
220
  setBlockGasLimit,
@@ -237,6 +248,7 @@ import {
237
248
  transactionType,
238
249
  trim,
239
250
  uninstallFilter,
251
+ validateTypedData,
240
252
  verifyMessage,
241
253
  waitForTransactionReceipt,
242
254
  watchAsset,
@@ -247,7 +259,7 @@ import {
247
259
  watchPendingTransactions,
248
260
  weiUnits,
249
261
  writeContract
250
- } from "./chunk-KOAJUBTN.mjs";
262
+ } from "./chunk-HYEOQX7O.mjs";
251
263
 
252
264
  // src/clients/transports/createTransport.ts
253
265
  function createTransport({
@@ -404,7 +416,9 @@ function webSocket(url, config = {}) {
404
416
  resolve(data);
405
417
  return;
406
418
  }
407
- onData(data);
419
+ if (data.method !== "eth_subscription")
420
+ return;
421
+ onData(data.params);
408
422
  },
409
423
  onError: (error) => {
410
424
  reject(error);
@@ -510,36 +524,38 @@ var publicActions = (client) => ({
510
524
  });
511
525
 
512
526
  // src/clients/decorators/test.ts
513
- var testActions = (client) => ({
514
- dropTransaction: (args) => dropTransaction(client, args),
515
- getAutomine: () => getAutomine(client),
516
- getTxpoolContent: () => getTxpoolContent(client),
517
- getTxpoolStatus: () => getTxpoolStatus(client),
518
- impersonateAccount: (args) => impersonateAccount(client, args),
519
- increaseTime: (args) => increaseTime(client, args),
520
- inspectTxpool: () => inspectTxpool(client),
521
- mine: (args) => mine(client, args),
522
- removeBlockTimestampInterval: () => removeBlockTimestampInterval(client),
523
- reset: (args) => reset(client, args),
524
- revert: (args) => revert(client, args),
525
- sendUnsignedTransaction: (args) => sendUnsignedTransaction(client, args),
526
- setAutomine: (args) => setAutomine(client, args),
527
- setBalance: (args) => setBalance(client, args),
528
- setBlockGasLimit: (args) => setBlockGasLimit(client, args),
529
- setBlockTimestampInterval: (args) => setBlockTimestampInterval(client, args),
530
- setCode: (args) => setCode(client, args),
531
- setCoinbase: (args) => setCoinbase(client, args),
532
- setIntervalMining: (args) => setIntervalMining(client, args),
533
- setLoggingEnabled: (args) => setLoggingEnabled(client, args),
534
- setMinGasPrice: (args) => setMinGasPrice(client, args),
535
- setNextBlockBaseFeePerGas: (args) => setNextBlockBaseFeePerGas(client, args),
536
- setNextBlockTimestamp: (args) => setNextBlockTimestamp(client, args),
537
- setNonce: (args) => setNonce(client, args),
538
- setRpcUrl: (args) => setRpcUrl(client, args),
539
- setStorageAt: (args) => setStorageAt(client, args),
540
- snapshot: () => snapshot(client),
541
- stopImpersonatingAccount: (args) => stopImpersonatingAccount(client, args)
542
- });
527
+ function testActions(client) {
528
+ return {
529
+ dropTransaction: (args) => dropTransaction(client, args),
530
+ getAutomine: () => getAutomine(client),
531
+ getTxpoolContent: () => getTxpoolContent(client),
532
+ getTxpoolStatus: () => getTxpoolStatus(client),
533
+ impersonateAccount: (args) => impersonateAccount(client, args),
534
+ increaseTime: (args) => increaseTime(client, args),
535
+ inspectTxpool: () => inspectTxpool(client),
536
+ mine: (args) => mine(client, args),
537
+ removeBlockTimestampInterval: () => removeBlockTimestampInterval(client),
538
+ reset: (args) => reset(client, args),
539
+ revert: (args) => revert(client, args),
540
+ sendUnsignedTransaction: (args) => sendUnsignedTransaction(client, args),
541
+ setAutomine: (args) => setAutomine(client, args),
542
+ setBalance: (args) => setBalance(client, args),
543
+ setBlockGasLimit: (args) => setBlockGasLimit(client, args),
544
+ setBlockTimestampInterval: (args) => setBlockTimestampInterval(client, args),
545
+ setCode: (args) => setCode(client, args),
546
+ setCoinbase: (args) => setCoinbase(client, args),
547
+ setIntervalMining: (args) => setIntervalMining(client, args),
548
+ setLoggingEnabled: (args) => setLoggingEnabled(client, args),
549
+ setMinGasPrice: (args) => setMinGasPrice(client, args),
550
+ setNextBlockBaseFeePerGas: (args) => setNextBlockBaseFeePerGas(client, args),
551
+ setNextBlockTimestamp: (args) => setNextBlockTimestamp(client, args),
552
+ setNonce: (args) => setNonce(client, args),
553
+ setRpcUrl: (args) => setRpcUrl(client, args),
554
+ setStorageAt: (args) => setStorageAt(client, args),
555
+ snapshot: () => snapshot(client),
556
+ stopImpersonatingAccount: (args) => stopImpersonatingAccount(client, args)
557
+ };
558
+ }
543
559
 
544
560
  // src/clients/decorators/wallet.ts
545
561
  var walletActions = (client) => ({
@@ -615,17 +631,16 @@ function createWalletClient({
615
631
  name = "Wallet Client",
616
632
  pollingInterval
617
633
  }) {
618
- const baseClient = createClient({
619
- chain,
620
- key,
621
- name,
622
- pollingInterval,
623
- transport: () => transport({ retryCount: 0 }),
624
- type: "walletClient"
625
- });
626
634
  const client = {
627
- account: account ? parseAccount(account) : void 0,
628
- ...baseClient
635
+ ...createClient({
636
+ chain,
637
+ key,
638
+ name,
639
+ pollingInterval,
640
+ transport: () => transport({ retryCount: 0 }),
641
+ type: "walletClient"
642
+ }),
643
+ account: account ? parseAccount(account) : void 0
629
644
  };
630
645
  return {
631
646
  ...client,
@@ -673,10 +688,12 @@ export {
673
688
  InvalidAddressError,
674
689
  InvalidArrayError,
675
690
  InvalidBytesBooleanError,
691
+ InvalidChainIdError,
676
692
  InvalidDefinitionTypeError,
677
693
  InvalidHexBooleanError,
678
694
  InvalidHexValueError,
679
695
  InvalidInputRpcError,
696
+ InvalidLegacyVError,
680
697
  InvalidParamsRpcError,
681
698
  InvalidRequestRpcError,
682
699
  JsonRpcVersionUnsupportedError,
@@ -709,6 +726,10 @@ export {
709
726
  UserRejectedRequestError,
710
727
  WaitForTransactionReceiptTimeoutError,
711
728
  WebSocketRequestError,
729
+ assertRequest,
730
+ assertTransactionEIP1559,
731
+ assertTransactionEIP2930,
732
+ assertTransactionLegacy,
712
733
  boolToBytes,
713
734
  boolToHex,
714
735
  bytesToBigint,
@@ -754,7 +775,6 @@ export {
754
775
  fromHex,
755
776
  fromRlp,
756
777
  getAbiItem,
757
- getAccount,
758
778
  getAddress,
759
779
  getContractAddress,
760
780
  getContractError,
@@ -762,6 +782,8 @@ export {
762
782
  getCreateAddress,
763
783
  getEventSelector,
764
784
  getFunctionSelector,
785
+ getSerializedTransactionType,
786
+ getTransactionType,
765
787
  gweiUnits,
766
788
  hashMessage,
767
789
  hashTypedData,
@@ -774,6 +796,7 @@ export {
774
796
  isAddress,
775
797
  isAddressEqual,
776
798
  isBytes,
799
+ isHash,
777
800
  isHex,
778
801
  keccak256,
779
802
  labelhash,
@@ -790,9 +813,12 @@ export {
790
813
  parseAbiParameters,
791
814
  parseEther,
792
815
  parseGwei,
816
+ parseTransaction,
793
817
  parseUnits,
818
+ prepareRequest,
794
819
  recoverAddress,
795
820
  recoverMessageAddress,
821
+ serializeTransaction,
796
822
  size,
797
823
  slice,
798
824
  sliceBytes,
@@ -805,6 +831,7 @@ export {
805
831
  toRlp,
806
832
  transactionType,
807
833
  trim,
834
+ validateTypedData,
808
835
  verifyMessage,
809
836
  webSocket,
810
837
  weiUnits