@w3lib/evm-batch-call 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/README.md +103 -12
  3. package/dist/call.d.ts +8 -2
  4. package/dist/call.d.ts.map +1 -1
  5. package/dist/call.js +25 -1
  6. package/dist/call.js.map +1 -1
  7. package/dist/chains.d.ts +13 -0
  8. package/dist/chains.d.ts.map +1 -0
  9. package/dist/chains.js +35 -0
  10. package/dist/chains.js.map +1 -0
  11. package/dist/detect.d.ts +23 -0
  12. package/dist/detect.d.ts.map +1 -0
  13. package/dist/detect.js +178 -0
  14. package/dist/detect.js.map +1 -0
  15. package/dist/erc20.d.ts +83 -7
  16. package/dist/erc20.d.ts.map +1 -1
  17. package/dist/erc20.js +36 -5
  18. package/dist/erc20.js.map +1 -1
  19. package/dist/fallback.d.ts +2 -0
  20. package/dist/fallback.d.ts.map +1 -1
  21. package/dist/fallback.js +6 -18
  22. package/dist/fallback.js.map +1 -1
  23. package/dist/index.d.ts +7 -3
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +6 -2
  26. package/dist/index.js.map +1 -1
  27. package/dist/nft.d.ts +71 -0
  28. package/dist/nft.d.ts.map +1 -0
  29. package/dist/nft.js +194 -0
  30. package/dist/nft.js.map +1 -0
  31. package/dist/provider.d.ts +93 -12
  32. package/dist/provider.d.ts.map +1 -1
  33. package/dist/provider.js +306 -48
  34. package/dist/provider.js.map +1 -1
  35. package/dist/shortcuts.d.ts +95 -0
  36. package/dist/shortcuts.d.ts.map +1 -0
  37. package/dist/shortcuts.js +175 -0
  38. package/dist/shortcuts.js.map +1 -0
  39. package/dist/source.d.ts +21 -1
  40. package/dist/source.d.ts.map +1 -1
  41. package/dist/source.js +96 -3
  42. package/dist/source.js.map +1 -1
  43. package/dist/tron.d.ts +6 -0
  44. package/dist/tron.d.ts.map +1 -1
  45. package/dist/tron.js +16 -1
  46. package/dist/tron.js.map +1 -1
  47. package/dist/util.d.ts +6 -0
  48. package/dist/util.d.ts.map +1 -0
  49. package/dist/util.js +20 -0
  50. package/dist/util.js.map +1 -0
  51. package/package.json +3 -2
  52. package/src/call.ts +32 -3
  53. package/src/chains.ts +46 -0
  54. package/src/detect.ts +193 -0
  55. package/src/erc20.ts +111 -9
  56. package/src/fallback.ts +7 -20
  57. package/src/index.ts +55 -4
  58. package/src/nft.ts +298 -0
  59. package/src/provider.ts +416 -54
  60. package/src/shortcuts.ts +256 -0
  61. package/src/source.ts +102 -3
  62. package/src/tron.ts +21 -2
  63. package/src/util.ts +20 -0
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAqB,MAAM,QAAQ,CAAA;AAE1C,OAAO,EAAE,SAAS,EAAqF,MAAM,gBAAgB,CAAA;AAC7H,OAAO,EAAE,OAAO,EAAqB,MAAM,cAAc,CAAA;AACzD,OAAO,EAAE,UAAU,EAAE,UAAU,EAAkF,MAAM,WAAW,CAAA;AAClI,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAyC,MAAM,eAAe,CAAA;AACzF,OAAO,EAAE,qBAAqB,EAAE,SAAS,EAAsC,MAAM,YAAY,CAAA;AACjG,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC/D,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAkB,MAAM,gBAAgB,CAAA;AAClF,OAAO,EAAE,aAAa,EAA2C,MAAM,aAAa,CAAA;AAqCpF,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,CAAU,CAAA;AACvE,MAAM,mBAAmB,GAAG,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAU,CAAA;AAE3E;;;;;;;GAOG;AACH,MAAM,OAAO,QAAQ;IACV,IAAI,CAAkB;IACtB,QAAQ,CAAS;IACjB,aAAa,CAAa;IAEnC;;;;;OAKG;IACH,YAAY,OAAwB,EAAE,QAAqD,EAAE,SAAyB,EAAE;QACtH,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,IAAI,GAAG;YACV,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,CAAC;YAC7C,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,SAAS,CAAC;YAC5E,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,GAAG;SACnC,CAAA;QACD,IAAI,CAAC,QAAQ,GAAG,IAAI,OAAO,CAAC,CAAC,QAAQ,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAA;QACxG,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,IAAI,qBAAqB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;IAC1G,CAAC;IAED;;;;;;;;OAQG;IACH,QAAQ,CAAC,OAAe,EAAE,GAAgB;QACxC,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,CAAA;IACzC,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,OAAe;QACnB,OAAO,IAAI,QAAQ,CAAC,OAAO,EAAE,SAAgC,EAAE,IAAI,CAAkB,CAAA;IACvF,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,KAAa,EAAE,MAAyB,EAAE,SAAyB;QAChF,MAAM,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CACjC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAC7G,CAAA;QACD,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAS,KAAK,EAAE,SAAS,CAAC,CAAA;QAC3D,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,IAAI,EAAE,CAAC,CAAA;IAChD,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,SAAS,CAAC,MAAyB,EAAE,SAAyB;QAClE,kBAAkB;QAClB,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC,CAAA;QACtF,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;YACtC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA;YAC/B,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;QACzD,CAAC,CAAC,CAAA;QACF,MAAM,OAAO,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;QACvE,MAAM,WAAW,GAAG,IAAI,GAAG,EAA4B,CAAA;QACvD,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;YAC7B,MAAM,QAAQ,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAkB,CAAA;YACpD,WAAW,CAAC,GAAG,CACb,OAAO,EACP,QAAQ,KAAK,IAAI;gBACf,CAAC,CAAC,IAAI;gBACN,CAAC,CAAC;oBACE,OAAO;oBACP,MAAM,EAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAmB,IAAI,IAAI;oBACjD,IAAI,EAAG,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAmB,IAAI,IAAI;oBACnD,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAC;iBAC3B,CACN,CAAA;QACH,CAAC,CAAC,CAAA;QACF,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,CAAA;IAC9D,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,OAAe;QAC3B,MAAM,IAAI,GAAiB;YACzB,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,IAAI,kBAAkB,EAAE;YACzE,IAAI,EAAE,eAAe;YACrB,MAAM,EAAE,kBAAkB;YAC1B,OAAO,EAAE,mBAAmB;YAC5B,MAAM,EAAE,CAAC,OAAO,CAAC;YACjB,IAAI,EAAE,YAAY;SACnB,CAAA;QACD,OAAO,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IAC7B,CAAC;IAQD,KAAK,CAAC,GAAG,CAAC,KAAgB,EAAE,SAAyB;QACnD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAClC,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,EAAE,SAAS,CAAC,CAAA;QAC7F,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,EAAG,OAAO,CAAC,CAAC,CAAe,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;IAC5F,CAAC;IAQD,KAAK,CAAC,MAAM,CAAC,KAAgB,EAAE,SAAyB;QACtD,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAA;QAClC,OAAO,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAA;IACxE,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAU,KAAsB,EAAE,OAA2B,EAAE,SAAyB;QACnG,wCAAwC;QACxC,MAAM,QAAQ,GAA8B,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;YAChE,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAA;YAC9B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAA;YACvD,CAAC;YACD,IAAI,CAAC;gBACH,OAAO,UAAU,CAAC,IAAI,EAAE,WAAW,CAAC,CAAA;YACtC,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAA;gBACb,CAAC;gBACD,MAAM,GAAG,CAAA;YACX,CAAC;QACH,CAAC,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAsB,EAAE,CAAC,GAAG,KAAK,IAAI,CAAC,CAAA;QACxE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,SAAS,CAAC,CAAA;QACvD,IAAI,CAAC,GAAG,CAAC,CAAA;QACT,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAE,OAAO,CAAC,CAAC,EAAE,CAAe,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAC,CAAA;QACjH,OAAO,SAAS,CAAI,KAAK,EAAE,OAAO,CAAC,CAAA;IACrC,CAAC;IAED;;;OAGG;IACH,IAAI,CAAU,IAAU,EAAE,SAAyB;QACjD,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAA;QAC1B,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAI,IAAI,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,CAAC,CAAC,CAAA;IACpG,CAAC;IAED;;;;;;;;OAQG;IACH,KAAK,CAAC,UAAU,CAAU,IAAU,EAAE,YAAiC,EAAE;QACvE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,WAAW,CAAI,IAAI,EAAE,SAAS,CAAC,CAAA;QACzD,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,MAAM,CAAC,KAAK,CAAA;QACpB,CAAC;QACD,OAAO,MAAM,CAAC,IAAI,CAAA;IACpB,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,aAAa,CACjB,KAA2C,EAC3C,YAAiC,EAAE;QAEnC,OAAO,OAAO,CAAC,GAAG,CAChB,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CACjB,MAAM,IAAI,IAAI,IAAI,UAAU,IAAI,IAAI,CAAC,IAAI;YACvC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAI,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC;YAC3D,CAAC,CAAC,IAAI,CAAC,WAAW,CAAI,IAAY,EAAE,SAAS,EAAE,SAAS,CAAC,CAC5D,CACF,CAAA;IACH,CAAC;IAED,qEAAqE;IACrE,KAAK,CAAC,WAAW,CACf,IAAU,EACV,QAA8B,EAC9B,MAA4B;QAE5B,MAAM,MAAM,GAAwB,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,MAAM,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,CAAC,CAAA;QACzF,IAAI,IAAI,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;YAC/B,IAAI,CAAC;gBACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAM,EAAE,CAAA;YAC7G,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;YACvF,CAAC;QACH,CAAC;QACD,IAAI,UAAkB,CAAA;QACtB,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,EAAE,KAAK,CAAC,CAAA;YACvC,UAAU,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;gBACzC,EAAE,EAAE,OAAO,CAAC,MAAM;gBAClB,IAAI,EAAE,OAAO,CAAC,QAAQ;gBACtB,IAAI,EAAE,MAAM,CAAC,IAAI;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,QAAQ,EAAE,MAAM,CAAC,QAAQ;gBACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ;aAC1B,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,6CAA6C;YAC7C,IAAI,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,eAAe,CAAC,IAAI,EAAG,GAAgC,CAAC,IAAI,IAAI,IAAI,EAAE,GAAG,CAAC,EAAE,CAAA;YAClH,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAA;QACvF,CAAC;QACD,IAAI,CAAC;YACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,CAAI,IAAI,EAAE,UAAU,CAAC,EAAE,CAAA;QACjE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,sBAAsB;YACtB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,eAAe,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,CAAC,EAAE,CAAA;QAC9E,CAAC;IACH,CAAC;IAED,8BAA8B;IAC9B,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAA;IAC3B,CAAC;IAED,6CAA6C;IAC7C,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAA;IAC5B,CAAC;IAED,UAAU,CAAC,QAAuB,EAAE,SAAyB;QAC3D,OAAO,SAAS,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;IAClD,CAAC;CACF;AAED,SAAS,gBAAgB,CAAC,OAAe,EAAE,MAA2B;IACpE,IAAI,MAAM,EAAE,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,EAAE,CAAA;IAC9D,CAAC;IACD,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA;AACjE,CAAC;AAED,6CAA6C;AAC7C,SAAS,KAAK,CAAmB,MAAS,EAAE,MAAe;IACzD,MAAM,GAAG,GAAG,EAAE,GAAG,MAAM,EAA6B,CAAA;IACpD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;QACxD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QAClB,CAAC;IACH,CAAC;IACD,OAAO,GAAQ,CAAA;AACjB,CAAC;AAED,6CAA6C;AAC7C,SAAS,MAAM,CAAC,KAAgB;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,KAAK,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,CAAA;IACtC,CAAC;IACD,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC/B,MAAM,MAAM,GAAG,KAAuC,CAAA;IACtD,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAS,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AAC3H,CAAC;AAED,SAAS,SAAS,CAAI,KAAyC,EAAE,OAAoB;IACnF,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE;QAC3B,MAAM,MAAM,GAAG,OAAO,CAAC,CAAC,CAAc,CAAA;QACtC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,IAAI,CAAA;QACb,CAAC;QACD,IAAI,CAAC;YACH,OAAO,UAAU,CAAI,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;QAC/C,CAAC;QAAC,MAAM,CAAC;YACP,mBAAmB;YACnB,OAAO,IAAI,CAAA;QACb,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,eAAe,QAAQ,CAAA"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,95 @@
1
+ import type { CallOverrides } from './aggregate.js';
2
+ import type { BalanceToken, DefaultTokenField, TokenAllowance, TokenBalance, TokenDetails, TokenField } from './erc20.js';
3
+ import type { DefaultNftCollectionField, Erc1155Balance, NftBalance, NftCollection, NftCollectionField, NftCollectionsOptions, NftItem, NftOwner, NftTokenUri } from './nft.js';
4
+ import { Provider, type BalancesOptions, type ProviderConfig, type TokensOptions } from './provider.js';
5
+ import type { ProviderSource } from './source.js';
6
+ /** getBalances / getTokens 共用的节点参数 */
7
+ export interface ShortcutProviderOptions extends ProviderConfig {
8
+ /** 链 ID。传了 provider 时可省略(从节点识别,结果会缓存);不传 provider 时必填(用于选择内置公共节点) */
9
+ chainId?: number | string;
10
+ /**
11
+ * 节点,与 `new Provider(...)` 相同,不传则使用内置公共节点:
12
+ * - RPC URL,或 URL 数组(主节点 + 备用节点)
13
+ * - ethers Provider
14
+ * - 浏览器插件钱包:`window.ethereum`(EIP-1193)、`window.tronWeb`
15
+ * - 混合数组,如 `[window.ethereum, 'https://…']`:钱包出错或不在这条链上时自动用后面的节点
16
+ */
17
+ provider?: ProviderSource | readonly ProviderSource[];
18
+ }
19
+ export interface GetBalancesOptions extends BalancesOptions, ShortcutProviderOptions {
20
+ }
21
+ export interface GetTokensOptions<F extends TokenField = DefaultTokenField> extends TokensOptions<F>, ShortcutProviderOptions {
22
+ }
23
+ export interface ShortcutOptions extends CallOverrides, ShortcutProviderOptions {
24
+ }
25
+ /**
26
+ * 批量查余额(主币 + 代币,一次请求),返回原始余额、decimals 和换算后的数值。
27
+ *
28
+ * ```ts
29
+ * import { NATIVE_TOKEN, getBalances } from '@w3lib/evm-batch-call'
30
+ *
31
+ * await getBalances(user, [NATIVE_TOKEN, USDT], { chainId: 56 }) // 内置公共节点
32
+ * await getBalances(user, tokens, { provider: window.ethereum }) // 钱包,chainId 自动识别
33
+ * await getBalances(user, tokens, { provider: 'https://bsc-dataseed.bnbchain.org' })
34
+ * await getBalances(user, tokens, { chainId: 56, provider: [window.ethereum, 'https://…'] }) // 钱包优先,失败用公共节点
35
+ * await getBalances(user, tokens, { chainId: 56, symbol: true }) // 同时返回 symbol
36
+ * // [{ token: NATIVE_TOKEN, native: true, balance: '1500000000000000000', decimals: 18, formatted: '1.5', success: true }, ...]
37
+ * ```
38
+ */
39
+ export declare function getBalances(owner: string, tokens: readonly BalanceToken[], options?: GetBalancesOptions): Promise<TokenBalance[]>;
40
+ /**
41
+ * 批量查 ERC20 代币详情(一次请求),可以选择返回哪些字段。节点参数与 getBalances 相同。
42
+ *
43
+ * ```ts
44
+ * import { NATIVE_TOKEN, getTokens } from '@w3lib/evm-batch-call'
45
+ *
46
+ * await getTokens([USDT, NATIVE_TOKEN], { chainId: 56 }) // 默认 name / symbol / decimals
47
+ * await getTokens([USDT], { provider: window.ethereum, fields: ['symbol', 'decimals', 'totalSupply'] })
48
+ * // [{ address: USDT, native: false, symbol: 'USDT', decimals: 18, totalSupply: '…', totalSupplyFormatted: '…', success: true }]
49
+ * ```
50
+ */
51
+ export declare function getTokens<const F extends TokenField = DefaultTokenField>(tokens: readonly string[], options?: GetTokensOptions<F>): Promise<TokenDetails<F>[]>;
52
+ /**
53
+ * 批量查 ERC20 授权额度(一次请求)。
54
+ *
55
+ * ```ts
56
+ * const [usdt] = await getAllowances(user, router, [USDT], { chainId: 56 })
57
+ * if (!usdt.unlimited && BigInt(usdt.allowance) < amount) { // 需要 approve
58
+ * ```
59
+ */
60
+ export declare function getAllowances(owner: string, spender: string, tokens: readonly BalanceToken[], options?: ShortcutOptions): Promise<TokenAllowance[]>;
61
+ export interface GetNftCollectionsOptions<F extends NftCollectionField = DefaultNftCollectionField> extends NftCollectionsOptions<F>, ShortcutProviderOptions {
62
+ }
63
+ /**
64
+ * 批量查 NFT 集合信息,字段可选(默认 standard / name / symbol)。
65
+ *
66
+ * ```ts
67
+ * await getNftCollections([BAYC, MAYC], { chainId: 1, fields: ['standard', 'name', 'totalSupply'] })
68
+ * // [{ address: BAYC, standard: 'ERC721', name: 'BoredApeYachtClub', totalSupply: '10000', success: true }, ...]
69
+ * ```
70
+ */
71
+ export declare function getNftCollections<const F extends NftCollectionField = DefaultNftCollectionField>(collections: readonly string[], options?: GetNftCollectionsOptions<F>): Promise<NftCollection<F>[]>;
72
+ /** 批量查 ERC721 持有数量:`await getNftBalances(user, [BAYC, MAYC], { chainId: 1 })` */
73
+ export declare function getNftBalances(owner: string, collections: readonly string[], options?: ShortcutOptions): Promise<NftBalance[]>;
74
+ /** 批量查 ERC721 持有人:`await getNftOwners([{ contract: BAYC, tokenId: 1 }], { chainId: 1 })` */
75
+ export declare function getNftOwners(items: readonly NftItem[], options?: ShortcutOptions): Promise<NftOwner[]>;
76
+ export interface GetNftTokenUrisOptions extends ShortcutOptions {
77
+ /** 把 ipfs://xxx 转成 `${ipfsGateway}xxx`,如 'https://ipfs.io/ipfs/' */
78
+ ipfsGateway?: string;
79
+ }
80
+ /**
81
+ * 批量查 NFT 元数据地址(ERC721 tokenURI / ERC1155 uri 自动兼容)。
82
+ *
83
+ * ```ts
84
+ * await getNftTokenUris([{ contract: BAYC, tokenId: 1 }], { chainId: 1, ipfsGateway: 'https://ipfs.io/ipfs/' })
85
+ * // [{ contract: BAYC, tokenId: '1', uri: 'https://ipfs.io/ipfs/Qm…/1', success: true }]
86
+ * ```
87
+ */
88
+ export declare function getNftTokenUris(items: readonly NftItem[], options?: GetNftTokenUrisOptions): Promise<NftTokenUri[]>;
89
+ /** 批量查 ERC1155 余额:`await getErc1155Balances(user, [{ contract, tokenId: 1 }], { chainId: 137 })` */
90
+ export declare function getErc1155Balances(owner: string, items: readonly NftItem[], options?: ShortcutOptions): Promise<Erc1155Balance[]>;
91
+ /** 测试用:按参数取(或创建)Provider,用于验证缓存复用(不在包的公开导出里) */
92
+ export declare function resolveProviderForTest(options: ShortcutOptions): Provider;
93
+ /** 测试用:清空 getBalances / getTokens 的 Provider 缓存 */
94
+ export declare function resetBalancesProviderCache(): void;
95
+ //# sourceMappingURL=shortcuts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcuts.d.ts","sourceRoot":"","sources":["../src/shortcuts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,175 @@
1
+ import { Provider } from './provider.js';
2
+ const providerCache = new Map();
3
+ /** 缓存上限(分组数、每组 URL 数),超出时淘汰最早加入的;对象来源用 WeakMap,随对象回收 */
4
+ const MAX_CACHED = 32;
5
+ function setBounded(map, key, value) {
6
+ map.set(key, value);
7
+ if (map.size > MAX_CACHED) {
8
+ map.delete(map.keys().next().value);
9
+ }
10
+ }
11
+ function configKey(config) {
12
+ try {
13
+ return JSON.stringify(config, (_key, value) => {
14
+ if (typeof value === 'function') {
15
+ throw new Error('not comparable');
16
+ }
17
+ return typeof value === 'bigint' ? value.toString() : value;
18
+ });
19
+ }
20
+ catch {
21
+ return null;
22
+ }
23
+ }
24
+ function sourceKey(chainId, source) {
25
+ if (source === undefined) {
26
+ return 'default';
27
+ }
28
+ if (typeof source === 'string') {
29
+ return `url:${source}`;
30
+ }
31
+ if (Array.isArray(source)) {
32
+ // URL 数组每次调用都是新数组,按内容缓存
33
+ return source.every((item) => typeof item === 'string') ? `urls:${source.join('\n')}` : null;
34
+ }
35
+ return chainId === undefined ? null : source;
36
+ }
37
+ function getProvider(chainId, source, config) {
38
+ if (chainId === undefined && source === undefined) {
39
+ throw new Error('getBalances / getTokens requires chainId or provider');
40
+ }
41
+ const create = () => (chainId === undefined ? new Provider(source, config) : new Provider(chainId, source, config));
42
+ const cfg = configKey(config);
43
+ const key = sourceKey(chainId, source);
44
+ if (cfg === null || key === null) {
45
+ return create();
46
+ }
47
+ const groupKey = `${chainId ?? 'auto'}|${cfg}`;
48
+ let group = providerCache.get(groupKey);
49
+ if (!group) {
50
+ group = { byString: new Map(), byObject: new WeakMap() };
51
+ setBounded(providerCache, groupKey, group);
52
+ }
53
+ let provider = typeof key === 'string' ? group.byString.get(key) : group.byObject.get(key);
54
+ if (!provider) {
55
+ provider = create();
56
+ if (typeof key === 'string') {
57
+ setBounded(group.byString, key, provider);
58
+ }
59
+ else {
60
+ group.byObject.set(key, provider);
61
+ }
62
+ }
63
+ return provider;
64
+ }
65
+ /** 拆出节点参数、调用参数和函数自己的参数(ownKeys),其余作为 Provider 配置;值为 undefined 的参数忽略 */
66
+ function resolve(options, ownKeys = []) {
67
+ const { chainId, provider, blockTag, from, ...others } = options;
68
+ const own = {};
69
+ const config = {};
70
+ for (const [key, value] of Object.entries(others)) {
71
+ if (value !== undefined) {
72
+ ;
73
+ (ownKeys.includes(key) ? own : config)[key] = value;
74
+ }
75
+ }
76
+ return {
77
+ // null / 空字符串(如状态里还没有 chainId)按“未传”处理,走自动识别,而不是变成 chainId 0
78
+ provider: getProvider(chainId === undefined || chainId === null || chainId === '' ? undefined : Number(chainId), provider, config),
79
+ overrides: { blockTag, from },
80
+ own: own,
81
+ };
82
+ }
83
+ /**
84
+ * 批量查余额(主币 + 代币,一次请求),返回原始余额、decimals 和换算后的数值。
85
+ *
86
+ * ```ts
87
+ * import { NATIVE_TOKEN, getBalances } from '@w3lib/evm-batch-call'
88
+ *
89
+ * await getBalances(user, [NATIVE_TOKEN, USDT], { chainId: 56 }) // 内置公共节点
90
+ * await getBalances(user, tokens, { provider: window.ethereum }) // 钱包,chainId 自动识别
91
+ * await getBalances(user, tokens, { provider: 'https://bsc-dataseed.bnbchain.org' })
92
+ * await getBalances(user, tokens, { chainId: 56, provider: [window.ethereum, 'https://…'] }) // 钱包优先,失败用公共节点
93
+ * await getBalances(user, tokens, { chainId: 56, symbol: true }) // 同时返回 symbol
94
+ * // [{ token: NATIVE_TOKEN, native: true, balance: '1500000000000000000', decimals: 18, formatted: '1.5', success: true }, ...]
95
+ * ```
96
+ */
97
+ export function getBalances(owner, tokens, options = {}) {
98
+ const { provider, overrides, own } = resolve(options, ['symbol']);
99
+ return provider.balances(owner, tokens, { ...overrides, symbol: own.symbol });
100
+ }
101
+ /**
102
+ * 批量查 ERC20 代币详情(一次请求),可以选择返回哪些字段。节点参数与 getBalances 相同。
103
+ *
104
+ * ```ts
105
+ * import { NATIVE_TOKEN, getTokens } from '@w3lib/evm-batch-call'
106
+ *
107
+ * await getTokens([USDT, NATIVE_TOKEN], { chainId: 56 }) // 默认 name / symbol / decimals
108
+ * await getTokens([USDT], { provider: window.ethereum, fields: ['symbol', 'decimals', 'totalSupply'] })
109
+ * // [{ address: USDT, native: false, symbol: 'USDT', decimals: 18, totalSupply: '…', totalSupplyFormatted: '…', success: true }]
110
+ * ```
111
+ */
112
+ export function getTokens(tokens, options = {}) {
113
+ const { provider, overrides, own } = resolve(options, ['fields']);
114
+ return provider.tokens(tokens, { ...overrides, fields: own.fields });
115
+ }
116
+ /**
117
+ * 批量查 ERC20 授权额度(一次请求)。
118
+ *
119
+ * ```ts
120
+ * const [usdt] = await getAllowances(user, router, [USDT], { chainId: 56 })
121
+ * if (!usdt.unlimited && BigInt(usdt.allowance) < amount) { // 需要 approve
122
+ * ```
123
+ */
124
+ export function getAllowances(owner, spender, tokens, options = {}) {
125
+ const { provider, overrides } = resolve(options);
126
+ return provider.allowances(owner, spender, tokens, overrides);
127
+ }
128
+ /**
129
+ * 批量查 NFT 集合信息,字段可选(默认 standard / name / symbol)。
130
+ *
131
+ * ```ts
132
+ * await getNftCollections([BAYC, MAYC], { chainId: 1, fields: ['standard', 'name', 'totalSupply'] })
133
+ * // [{ address: BAYC, standard: 'ERC721', name: 'BoredApeYachtClub', totalSupply: '10000', success: true }, ...]
134
+ * ```
135
+ */
136
+ export function getNftCollections(collections, options = {}) {
137
+ const { provider, overrides, own } = resolve(options, ['fields']);
138
+ return provider.nftCollections(collections, { ...overrides, fields: own.fields });
139
+ }
140
+ /** 批量查 ERC721 持有数量:`await getNftBalances(user, [BAYC, MAYC], { chainId: 1 })` */
141
+ export function getNftBalances(owner, collections, options = {}) {
142
+ const { provider, overrides } = resolve(options);
143
+ return provider.nftBalances(owner, collections, overrides);
144
+ }
145
+ /** 批量查 ERC721 持有人:`await getNftOwners([{ contract: BAYC, tokenId: 1 }], { chainId: 1 })` */
146
+ export function getNftOwners(items, options = {}) {
147
+ const { provider, overrides } = resolve(options);
148
+ return provider.nftOwners(items, overrides);
149
+ }
150
+ /**
151
+ * 批量查 NFT 元数据地址(ERC721 tokenURI / ERC1155 uri 自动兼容)。
152
+ *
153
+ * ```ts
154
+ * await getNftTokenUris([{ contract: BAYC, tokenId: 1 }], { chainId: 1, ipfsGateway: 'https://ipfs.io/ipfs/' })
155
+ * // [{ contract: BAYC, tokenId: '1', uri: 'https://ipfs.io/ipfs/Qm…/1', success: true }]
156
+ * ```
157
+ */
158
+ export function getNftTokenUris(items, options = {}) {
159
+ const { provider, overrides, own } = resolve(options, ['ipfsGateway']);
160
+ return provider.nftTokenUris(items, { ...overrides, ipfsGateway: own.ipfsGateway });
161
+ }
162
+ /** 批量查 ERC1155 余额:`await getErc1155Balances(user, [{ contract, tokenId: 1 }], { chainId: 137 })` */
163
+ export function getErc1155Balances(owner, items, options = {}) {
164
+ const { provider, overrides } = resolve(options);
165
+ return provider.erc1155Balances(owner, items, overrides);
166
+ }
167
+ /** 测试用:按参数取(或创建)Provider,用于验证缓存复用(不在包的公开导出里) */
168
+ export function resolveProviderForTest(options) {
169
+ return resolve(options).provider;
170
+ }
171
+ /** 测试用:清空 getBalances / getTokens 的 Provider 缓存 */
172
+ export function resetBalancesProviderCache() {
173
+ providerCache.clear();
174
+ }
175
+ //# sourceMappingURL=shortcuts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shortcuts.js","sourceRoot":"","sources":["../src/shortcuts.ts"],"names":[],"mappings":"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"}
package/dist/source.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import { type Eip1193Provider } from 'ethers';
1
+ import { type Eip1193Provider, type TransactionRequest } from 'ethers';
2
2
  import type { EthersLikeProvider } from './aggregate.js';
3
3
  import { type FallbackOptions } from './fallback.js';
4
4
  import { type TronProviderOptions, type TronWebLike } from './tron.js';
@@ -20,4 +20,24 @@ export declare function isTronChain(chainId: number): boolean;
20
20
  /** 链的默认节点:EVM 用内置公共节点表,Tron 主网用内置全节点列表 */
21
21
  export declare function getDefaultRpcUrls(chainId: number): readonly string[];
22
22
  export declare function resolveSource(chainId: number, source: ProviderSource | readonly ProviderSource[] | undefined, options?: SourceOptions): EthersLikeProvider;
23
+ /**
24
+ * 校验节点所在的链与 Provider 的 chainId 一致,避免把另一条链的数据当成这条链的返回:
25
+ * 比如 [钱包, 公共节点] 自动识别出钱包的链后,公共节点其实在另一条链上;或者配错了节点 URL。
26
+ *
27
+ * - 不一致时抛 NETWORK_ERROR(多节点时 FallbackRpc 会换下一个节点)
28
+ * - 通过已配置好的节点连接识别(带 Tron apiKey / 限流等),结果按来源缓存,每个节点只多一次请求
29
+ * - 识别与实际请求并行发出,不增加延迟;不一致时丢弃请求结果
30
+ * - 识别本身失败时不拦截(交给实际请求去报错),并在一段时间内不再重试,避免每次请求都多一次识别
31
+ */
32
+ export declare class ChainCheckedProvider implements EthersLikeProvider {
33
+ #private;
34
+ readonly inner: EthersLikeProvider;
35
+ readonly chainId: number;
36
+ readonly source: ProviderSource;
37
+ readonly timeout: number;
38
+ constructor(inner: EthersLikeProvider, chainId: number, source: ProviderSource, timeout: number);
39
+ call(tx: TransactionRequest): Promise<string>;
40
+ getBalance(...args: Parameters<EthersLikeProvider['getBalance']>): Promise<bigint>;
41
+ getChainId(): Promise<number>;
42
+ }
23
43
  //# sourceMappingURL=source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,eAAe,EAAE,MAAM,QAAQ,CAAA;AAE7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AACxD,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAEjE,OAAO,EAA+B,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAEnG;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,kBAAkB,GAAG,eAAe,GAAG,WAAW,CAAA;AAExF,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,uDAAuD;IACvD,IAAI,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,SAAS,CAAC,CAAA;CACzD;AAID,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,0CAA0C;AAC1C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAKpE;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,GAAG,SAAS,EAC9D,OAAO,GAAE,aAAkB,GAC1B,kBAAkB,CAapB"}
1
+ {"version":3,"file":"source.d.ts","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6D,KAAK,eAAe,EAAE,KAAK,kBAAkB,EAAE,MAAM,QAAQ,CAAA;AAEjI,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,eAAe,CAAA;AAEjE,OAAO,EAA+B,KAAK,mBAAmB,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAA;AAEnG;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG,MAAM,GAAG,kBAAkB,GAAG,eAAe,GAAG,WAAW,CAAA;AAExF,MAAM,WAAW,aAAa;IAC5B,6CAA6C;IAC7C,QAAQ,CAAC,EAAE,eAAe,CAAA;IAC1B,uDAAuD;IACvD,IAAI,CAAC,EAAE,IAAI,CAAC,mBAAmB,EAAE,UAAU,GAAG,SAAS,CAAC,CAAA;CACzD;AAID,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,0CAA0C;AAC1C,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,CAKpE;AAED,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,GAAG,SAAS,cAAc,EAAE,GAAG,SAAS,EAC9D,OAAO,GAAE,aAAkB,GAC1B,kBAAkB,CAkBpB;AAKD;;;;;;;;GAQG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;;IAI3D,QAAQ,CAAC,KAAK,EAAE,kBAAkB;IAClC,QAAQ,CAAC,OAAO,EAAE,MAAM;IACxB,QAAQ,CAAC,MAAM,EAAE,cAAc;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM;gBAHf,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,MAAM;IAiC1B,IAAI,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAI7C,UAAU,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAI5E,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;CAGpC"}
package/dist/source.js CHANGED
@@ -1,4 +1,5 @@
1
- import { BrowserProvider, FetchRequest, JsonRpcProvider } from 'ethers';
1
+ import { BrowserProvider, FetchRequest, JsonRpcProvider, makeError } from 'ethers';
2
+ import { canDetectChainId, detectChainId, detectChainIdCached } from './detect.js';
2
3
  import { FallbackRpc } from './fallback.js';
3
4
  import { DEFAULT_RPC_URLS, DEFAULT_TRON_HOSTS } from './rpcNodes.js';
4
5
  import { TRON_CHAIN_ID, TronProvider } from './tron.js';
@@ -22,9 +23,95 @@ export function resolveSource(chainId, source, options = {}) {
22
23
  }
23
24
  // 多节点时 Tron 节点不在单节点内重试 429,直接切到下一个节点
24
25
  const multiple = list.length > 1;
25
- const nodes = list.map((item) => toEthersLike(chainId, item, options, multiple));
26
+ const timeout = options.fallback?.timeout ?? 10_000;
27
+ const nodes = list.map((item) => {
28
+ const node = toEthersLike(chainId, item, options, multiple);
29
+ // 内置公共节点本来就是按 chainId 选出来的,不需要再校验
30
+ return source === undefined ? node : withChainCheck(chainId, item, node, timeout);
31
+ });
26
32
  return multiple ? new FallbackRpc(nodes, options.fallback) : nodes[0];
27
33
  }
34
+ /** 识别失败后多久内不再重试识别(期间请求照常发出,不做校验) */
35
+ const CHECK_RETRY_INTERVAL = 60_000;
36
+ /**
37
+ * 校验节点所在的链与 Provider 的 chainId 一致,避免把另一条链的数据当成这条链的返回:
38
+ * 比如 [钱包, 公共节点] 自动识别出钱包的链后,公共节点其实在另一条链上;或者配错了节点 URL。
39
+ *
40
+ * - 不一致时抛 NETWORK_ERROR(多节点时 FallbackRpc 会换下一个节点)
41
+ * - 通过已配置好的节点连接识别(带 Tron apiKey / 限流等),结果按来源缓存,每个节点只多一次请求
42
+ * - 识别与实际请求并行发出,不增加延迟;不一致时丢弃请求结果
43
+ * - 识别本身失败时不拦截(交给实际请求去报错),并在一段时间内不再重试,避免每次请求都多一次识别
44
+ */
45
+ export class ChainCheckedProvider {
46
+ inner;
47
+ chainId;
48
+ source;
49
+ timeout;
50
+ #checkFailedAt = 0;
51
+ constructor(inner, chainId, source, timeout) {
52
+ this.inner = inner;
53
+ this.chainId = chainId;
54
+ this.source = source;
55
+ this.timeout = timeout;
56
+ }
57
+ async #check() {
58
+ if (this.#checkFailedAt && Date.now() - this.#checkFailedAt < CHECK_RETRY_INTERVAL) {
59
+ return;
60
+ }
61
+ let actual;
62
+ try {
63
+ actual = await detectChainIdCached(this.source, () => detectViaNode(this.inner, this.source), this.timeout);
64
+ }
65
+ catch {
66
+ this.#checkFailedAt = Date.now();
67
+ return;
68
+ }
69
+ this.#checkFailedAt = 0;
70
+ if (actual !== this.chainId) {
71
+ throw makeError(`chainId mismatch: expected ${this.chainId}, but the node is on ${actual}`, 'NETWORK_ERROR', {
72
+ event: 'chainIdMismatch',
73
+ });
74
+ }
75
+ }
76
+ async #run(request) {
77
+ const [checked, result] = await Promise.allSettled([this.#check(), request()]);
78
+ if (checked.status === 'rejected') {
79
+ throw checked.reason;
80
+ }
81
+ if (result.status === 'rejected') {
82
+ throw result.reason;
83
+ }
84
+ return result.value;
85
+ }
86
+ call(tx) {
87
+ return this.#run(() => this.inner.call(tx));
88
+ }
89
+ getBalance(...args) {
90
+ return this.#run(() => this.inner.getBalance(...args));
91
+ }
92
+ async getChainId() {
93
+ return this.chainId;
94
+ }
95
+ }
96
+ /** 通过已创建的节点连接识别它实际所在的链 */
97
+ function detectViaNode(node, source) {
98
+ if (node instanceof TronProvider) {
99
+ return node.getChainId();
100
+ }
101
+ // JsonRpcProvider(staticNetwork)/ BrowserProvider('any' 网络)的 getNetwork 不反映节点实际的链,直接问节点
102
+ if (node instanceof JsonRpcProvider) {
103
+ return node.send('eth_chainId', []).then(Number);
104
+ }
105
+ return detectChainId(source, Number.POSITIVE_INFINITY);
106
+ }
107
+ function withChainCheck(chainId, source, node, timeout) {
108
+ if (!Number.isFinite(chainId) || !canDetectChainId(source) || pinnedWallets.has(node)) {
109
+ return node;
110
+ }
111
+ return new ChainCheckedProvider(node, chainId, source, timeout);
112
+ }
113
+ /** 由 EIP-1193 钱包创建、已固定在 chainId 上的 BrowserProvider(每次请求 ethers 都会校验链),不需要再包一层 */
114
+ const pinnedWallets = new WeakSet();
28
115
  function toEthersLike(chainId, source, options, multiple) {
29
116
  if (typeof source === 'string') {
30
117
  if (isTronChain(chainId)) {
@@ -49,7 +136,13 @@ function toEthersLike(chainId, source, options, multiple) {
49
136
  return TronProvider.fromTronWeb(source, options.tron);
50
137
  }
51
138
  if (typeof value.request === 'function') {
52
- return new BrowserProvider(source);
139
+ // 传入 chainId:钱包当前所在的链与之不符时请求报 NETWORK_ERROR(network changed),
140
+ // 而不是静默返回另一条链的数据;在多节点列表里会据此自动切到下一个节点
141
+ const wallet = new BrowserProvider(source, Number.isFinite(chainId) ? chainId : undefined);
142
+ if (Number.isFinite(chainId)) {
143
+ pinnedWallets.add(wallet);
144
+ }
145
+ return wallet;
53
146
  }
54
147
  throw new Error('Unsupported provider: expected an RPC URL, an ethers Provider, an EIP-1193 provider or a tronWeb instance');
55
148
  }
@@ -1 +1 @@
1
- {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"source.js","sourceRoot":"","sources":["../src/source.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAiD,MAAM,QAAQ,CAAA;AAGjI,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAClF,OAAO,EAAE,WAAW,EAAwB,MAAM,eAAe,CAAA;AACjE,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAA;AACpE,OAAO,EAAE,aAAa,EAAE,YAAY,EAA8C,MAAM,WAAW,CAAA;AAkBnG,MAAM,cAAc,GAAG,IAAI,GAAG,CAAS,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAA;AAEpE,MAAM,UAAU,WAAW,CAAC,OAAe;IACzC,OAAO,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA;AACpC,CAAC;AAED,0CAA0C;AAC1C,MAAM,UAAU,iBAAiB,CAAC,OAAe;IAC/C,IAAI,OAAO,KAAK,aAAa,CAAC,OAAO,EAAE,CAAC;QACtC,OAAO,kBAAkB,CAAA;IAC3B,CAAC;IACD,OAAO,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAA;AACxC,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,OAAe,EACf,MAA8D,EAC9D,UAAyB,EAAE;IAE3B,MAAM,IAAI,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAA;IAC1G,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,MAAM,KAAK,SAAS;YAClB,CAAC,CAAC,4BAA4B,OAAO,sCAAsC;YAC3E,CAAC,CAAC,wBAAwB,CAC7B,CAAA;IACH,CAAC;IACD,qCAAqC;IACrC,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAA;IAChC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,MAAM,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QAC9B,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;QAC3D,kCAAkC;QAClC,OAAO,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAA;IACnF,CAAC,CAAC,CAAA;IACF,OAAO,QAAQ,CAAC,CAAC,CAAC,IAAI,WAAW,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,CAAC,CAAwB,CAAA;AAC/F,CAAC;AAED,oCAAoC;AACpC,MAAM,oBAAoB,GAAG,MAAM,CAAA;AAEnC;;;;;;;;GAQG;AACH,MAAM,OAAO,oBAAoB;IAIpB;IACA;IACA;IACA;IANX,cAAc,GAAG,CAAC,CAAA;IAElB,YACW,KAAyB,EACzB,OAAe,EACf,MAAsB,EACtB,OAAe;QAHf,UAAK,GAAL,KAAK,CAAoB;QACzB,YAAO,GAAP,OAAO,CAAQ;QACf,WAAM,GAAN,MAAM,CAAgB;QACtB,YAAO,GAAP,OAAO,CAAQ;IACvB,CAAC;IAEJ,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,cAAc,GAAG,oBAAoB,EAAE,CAAC;YACnF,OAAM;QACR,CAAC;QACD,IAAI,MAAc,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,GAAG,MAAM,mBAAmB,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAA;QAC7G,CAAC;QAAC,MAAM,CAAC;YACP,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;YAChC,OAAM;QACR,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,CAAC,CAAA;QACvB,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;YAC5B,MAAM,SAAS,CAAC,8BAA8B,IAAI,CAAC,OAAO,wBAAwB,MAAM,EAAE,EAAE,eAAe,EAAE;gBAC3G,KAAK,EAAE,iBAAiB;aACzB,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,IAAI,CAAI,OAAyB;QACrC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QAC9E,IAAI,OAAO,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YAClC,MAAM,OAAO,CAAC,MAAM,CAAA;QACtB,CAAC;QACD,IAAI,MAAM,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;YACjC,MAAM,MAAM,CAAC,MAAM,CAAA;QACrB,CAAC;QACD,OAAO,MAAM,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,IAAI,CAAC,EAAsB;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAA;IAC7C,CAAC;IAED,UAAU,CAAC,GAAG,IAAkD;QAC9D,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAA;IACxD,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAA;IACrB,CAAC;CACF;AAED,0BAA0B;AAC1B,SAAS,aAAa,CAAC,IAAwB,EAAE,MAAsB;IACrE,IAAI,IAAI,YAAY,YAAY,EAAE,CAAC;QACjC,OAAO,IAAI,CAAC,UAAU,EAAE,CAAA;IAC1B,CAAC;IACD,wFAAwF;IACxF,IAAI,IAAI,YAAY,eAAe,EAAE,CAAC;QACpC,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAClD,CAAC;IACD,OAAO,aAAa,CAAC,MAAM,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAA;AACxD,CAAC;AAED,SAAS,cAAc,CAAC,OAAe,EAAE,MAAsB,EAAE,IAAwB,EAAE,OAAe;IACxG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACtF,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,IAAI,oBAAoB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAA;AACjE,CAAC;AAED,iFAAiF;AACjF,MAAM,aAAa,GAAG,IAAI,OAAO,EAAsB,CAAA;AAEvD,SAAS,YAAY,CAAC,OAAe,EAAE,MAAsB,EAAE,OAAsB,EAAE,QAAiB;IACtG,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC;YACzB,OAAO,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAA;QACnG,CAAC;QACD,kCAAkC;QAClC,MAAM,OAAO,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QACxC,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,IAAI,MAAM,CAAA;QACnD,qEAAqE;QACrE,IAAI,OAAO,GAAG,CAAC,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC5C,OAAO,CAAC,OAAO,GAAG,OAAO,CAAA;QAC3B,CAAC;QACD,OAAO,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC7B,CAAC,CAAC,IAAI,eAAe,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;YAChE,CAAC,CAAC,IAAI,eAAe,CAAC,OAAO,CAAC,CAAA;IAClC,CAAC;IACD,MAAM,KAAK,GAAG,MAAqE,CAAA;IACnF,IAAI,OAAO,KAAK,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;QACrC,OAAO,MAA4B,CAAA;IACrC,CAAC;IACD,IAAI,KAAK,CAAC,QAAQ,IAAI,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACnE,OAAO,YAAY,CAAC,WAAW,CAAC,MAAqB,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACtE,CAAC;IACD,IAAI,OAAO,KAAK,CAAC,OAAO,KAAK,UAAU,EAAE,CAAC;QACxC,8DAA8D;QAC9D,qCAAqC;QACrC,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,MAAyB,EAAE,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAA;QAC7G,IAAI,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAC7B,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,CAAA;QAC3B,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,2GAA2G,CAAC,CAAA;AAC9H,CAAC"}
package/dist/tron.d.ts CHANGED
@@ -13,8 +13,10 @@ export declare function toEvmAddress(address: string): string;
13
13
  export declare function toTronAddress(address: string): string;
14
14
  /** 只用到 tronWeb 的这几个字段,兼容 tronweb v5/v6 及钱包注入的实例 */
15
15
  export interface TronWebLike {
16
+ /** host 是当前连接的全节点地址,TronLink 切换网络时会变,用于区分 chainId 缓存 */
16
17
  fullNode: {
17
18
  request: (url: string, payload: Record<string, unknown>, method: string) => Promise<any>;
19
+ host?: string;
18
20
  };
19
21
  defaultAddress?: {
20
22
  base58?: string | false;
@@ -38,6 +40,8 @@ export interface TronProviderOptions {
38
40
  minInterval?: number;
39
41
  /** 遇到 HTTP 429 时的重试次数(指数退避,从 1s 开始)。默认 3 */
40
42
  retries?: number;
43
+ /** 单次 HTTP 请求超时(毫秒,仅对内置 fetch 生效,自定义 request 自行处理)。默认 10000;<= 0 不限制 */
44
+ timeout?: number;
41
45
  /** 不传 from 时使用的调用者地址;传函数则每次调用时取值(钱包切换账号后自动跟随) */
42
46
  defaultFrom?: string | (() => string | null | undefined);
43
47
  }
@@ -57,6 +61,8 @@ export declare class TronProvider implements EthersLikeProvider {
57
61
  */
58
62
  static fromTronWeb(tronWeb: TronWebLike, options?: Omit<TronProviderOptions, 'request' | 'fullHost'>): TronProvider;
59
63
  call(tx: TransactionRequest): Promise<string>;
64
+ /** chainId = 创世区块哈希的最后 4 字节(与 TronGrid /jsonrpc 的 eth_chainId 一致,主网 728126428) */
65
+ getChainId(): Promise<number>;
60
66
  getBalance(address: unknown, blockTag?: unknown): Promise<bigint>;
61
67
  }
62
68
  //# sourceMappingURL=tron.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../src/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,kBAAkB,EACxB,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,sDAAsD;AACtD,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAIV,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcpD;AAED,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWrD;AAMD,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE;QAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;KAAE,CAAA;IACtG,cAAc,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAA;CAC7C;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;AAEvF,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;CACzD;AAcD;;;;;;GAMG;AACH,qBAAa,YAAa,YAAW,kBAAkB;;gBAUzC,OAAO,GAAE,mBAAwB;IAuB7C;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAM,GAAG,YAAY;IAQjH,IAAI,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiD7C,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAmDxE"}
1
+ {"version":3,"file":"tron.d.ts","sourceRoot":"","sources":["../src/tron.ts"],"names":[],"mappings":"AAAA,OAAO,EASL,KAAK,kBAAkB,EACxB,MAAM,QAAQ,CAAA;AAEf,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAA;AAExD,sDAAsD;AACtD,eAAO,MAAM,aAAa;;;;CAIhB,CAAA;AAIV,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAErD;AAED,+DAA+D;AAC/D,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAcpD;AAED,8CAA8C;AAC9C,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWrD;AAMD,mDAAmD;AACnD,MAAM,WAAW,WAAW;IAC1B,wDAAwD;IACxD,QAAQ,EAAE;QAAE,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,CAAA;IACrH,cAAc,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,GAAG,KAAK,CAAA;KAAE,CAAA;CAC7C;AAED,MAAM,MAAM,WAAW,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC,GAAG,CAAC,CAAA;AAEvF,MAAM,WAAW,mBAAmB;IAClC,uCAAuC;IACvC,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAChC;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAA;IACrB,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,mDAAmD;IACnD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,4CAA4C;IAC5C,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,iDAAiD;IACjD,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC,CAAA;CACzD;AAcD;;;;;;GAMG;AACH,qBAAa,YAAa,YAAW,kBAAkB;;gBAUzC,OAAO,GAAE,mBAAwB;IA6B7C;;;OAGG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,GAAE,IAAI,CAAC,mBAAmB,EAAE,SAAS,GAAG,UAAU,CAAM,GAAG,YAAY;IAQjH,IAAI,CAAC,EAAE,EAAE,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC;IAiDnD,kFAAkF;IAC5E,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAS7B,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC;CAmDxE"}
package/dist/tron.js CHANGED
@@ -80,8 +80,14 @@ export class TronProvider {
80
80
  if (options.apiKey) {
81
81
  headers['TRON-PRO-API-KEY'] = options.apiKey;
82
82
  }
83
+ const timeout = options.timeout ?? 10_000;
83
84
  this.#request = async (path, body) => {
84
- const res = await fetch(`${host}/${path}`, { method: 'POST', headers, body: JSON.stringify(body) });
85
+ const res = await fetch(`${host}/${path}`, {
86
+ method: 'POST',
87
+ headers,
88
+ body: JSON.stringify(body),
89
+ signal: timeout > 0 && Number.isFinite(timeout) ? AbortSignal.timeout(timeout) : undefined,
90
+ });
85
91
  if (!res.ok) {
86
92
  throw new HttpError(`Tron request ${path} failed: HTTP ${res.status}`, res.status);
87
93
  }
@@ -145,6 +151,15 @@ export class TronProvider {
145
151
  }
146
152
  return output;
147
153
  }
154
+ /** chainId = 创世区块哈希的最后 4 字节(与 TronGrid /jsonrpc 的 eth_chainId 一致,主网 728126428) */
155
+ async getChainId() {
156
+ const res = await this.#limit(() => this.#request('wallet/getblockbynum', { num: 0 }));
157
+ const blockId = String(res?.blockID ?? '');
158
+ if (!/^[0-9a-f]{64}$/i.test(blockId)) {
159
+ throw new Error('Unable to detect Tron chainId: unexpected genesis block response');
160
+ }
161
+ return Number.parseInt(blockId.slice(-8), 16);
162
+ }
148
163
  async getBalance(address, blockTag) {
149
164
  assertLatest(blockTag);
150
165
  const res = await this.#limit(() => this.#request('wallet/getaccount', { address: toTronHex(String(address)) }));