viem 1.2.9 → 1.2.11

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 (110) hide show
  1. package/dist/cjs/accounts/utils/signTransaction.js.map +1 -1
  2. package/dist/cjs/chains/formatters/celo.js +2 -2
  3. package/dist/cjs/chains/formatters/celo.js.map +1 -1
  4. package/dist/cjs/chains/formatters/optimism.js +2 -2
  5. package/dist/cjs/chains/formatters/optimism.js.map +1 -1
  6. package/dist/cjs/chains/index.js +8 -8
  7. package/dist/cjs/chains/serializers/celo.js +12 -13
  8. package/dist/cjs/chains/serializers/celo.js.map +1 -1
  9. package/dist/cjs/clients/createClient.js +19 -12
  10. package/dist/cjs/clients/createClient.js.map +1 -1
  11. package/dist/cjs/clients/createPublicClient.js +6 -7
  12. package/dist/cjs/clients/createPublicClient.js.map +1 -1
  13. package/dist/cjs/clients/createTestClient.js +9 -9
  14. package/dist/cjs/clients/createTestClient.js.map +1 -1
  15. package/dist/cjs/clients/createWalletClient.js +6 -6
  16. package/dist/cjs/clients/createWalletClient.js.map +1 -1
  17. package/dist/cjs/clients/decorators/public.js +44 -42
  18. package/dist/cjs/clients/decorators/public.js.map +1 -1
  19. package/dist/cjs/clients/decorators/wallet.js +17 -15
  20. package/dist/cjs/clients/decorators/wallet.js.map +1 -1
  21. package/dist/cjs/errors/version.js +1 -1
  22. package/dist/cjs/errors/version.js.map +1 -1
  23. package/dist/cjs/utils/abi/encodePacked.js.map +1 -1
  24. package/dist/cjs/utils/ens/avatar/utils.js +2 -1
  25. package/dist/cjs/utils/ens/avatar/utils.js.map +1 -1
  26. package/dist/cjs/utils/formatters/extract.js +0 -1
  27. package/dist/cjs/utils/formatters/extract.js.map +1 -1
  28. package/dist/cjs/utils/transaction/prepareRequest.js +1 -1
  29. package/dist/cjs/utils/transaction/prepareRequest.js.map +1 -1
  30. package/dist/esm/accounts/utils/signTransaction.js.map +1 -1
  31. package/dist/esm/chains/formatters/celo.js +1 -1
  32. package/dist/esm/chains/formatters/celo.js.map +1 -1
  33. package/dist/esm/chains/formatters/optimism.js +1 -1
  34. package/dist/esm/chains/formatters/optimism.js.map +1 -1
  35. package/dist/esm/chains/index.js +11 -11
  36. package/dist/esm/chains/serializers/celo.js +13 -14
  37. package/dist/esm/chains/serializers/celo.js.map +1 -1
  38. package/dist/esm/clients/createClient.js +19 -15
  39. package/dist/esm/clients/createClient.js.map +1 -1
  40. package/dist/esm/clients/createPublicClient.js +6 -26
  41. package/dist/esm/clients/createPublicClient.js.map +1 -1
  42. package/dist/esm/clients/createTestClient.js +9 -32
  43. package/dist/esm/clients/createTestClient.js.map +1 -1
  44. package/dist/esm/clients/createWalletClient.js +6 -42
  45. package/dist/esm/clients/createWalletClient.js.map +1 -1
  46. package/dist/esm/clients/decorators/public.js +44 -42
  47. package/dist/esm/clients/decorators/public.js.map +1 -1
  48. package/dist/esm/clients/decorators/wallet.js +17 -15
  49. package/dist/esm/clients/decorators/wallet.js.map +1 -1
  50. package/dist/esm/errors/version.js +1 -1
  51. package/dist/esm/errors/version.js.map +1 -1
  52. package/dist/esm/utils/abi/encodePacked.js.map +1 -1
  53. package/dist/esm/utils/ens/avatar/utils.js +3 -1
  54. package/dist/esm/utils/ens/avatar/utils.js.map +1 -1
  55. package/dist/esm/utils/formatters/extract.js +1 -1
  56. package/dist/esm/utils/formatters/extract.js.map +1 -1
  57. package/dist/esm/utils/transaction/prepareRequest.js +1 -1
  58. package/dist/esm/utils/transaction/prepareRequest.js.map +1 -1
  59. package/dist/types/accounts/utils/signTransaction.d.ts +1 -1
  60. package/dist/types/accounts/utils/signTransaction.d.ts.map +1 -1
  61. package/dist/types/chains/formatters/celo.d.ts +2 -2
  62. package/dist/types/chains/formatters/celo.d.ts.map +1 -1
  63. package/dist/types/chains/formatters/optimism.d.ts +9 -9
  64. package/dist/types/chains/formatters/optimism.d.ts.map +1 -1
  65. package/dist/types/chains/serializers/celo.d.ts +3 -4
  66. package/dist/types/chains/serializers/celo.d.ts.map +1 -1
  67. package/dist/types/clients/createClient.d.ts +29 -32
  68. package/dist/types/clients/createClient.d.ts.map +1 -1
  69. package/dist/types/clients/createPublicClient.d.ts +3 -3
  70. package/dist/types/clients/createPublicClient.d.ts.map +1 -1
  71. package/dist/types/clients/createTestClient.d.ts +9 -7
  72. package/dist/types/clients/createTestClient.d.ts.map +1 -1
  73. package/dist/types/clients/createWalletClient.d.ts +3 -3
  74. package/dist/types/clients/createWalletClient.d.ts.map +1 -1
  75. package/dist/types/clients/decorators/public.d.ts +1 -519
  76. package/dist/types/clients/decorators/public.d.ts.map +1 -1
  77. package/dist/types/clients/decorators/wallet.d.ts +1 -519
  78. package/dist/types/clients/decorators/wallet.d.ts.map +1 -1
  79. package/dist/types/errors/version.d.ts +1 -1
  80. package/dist/types/errors/version.d.ts.map +1 -1
  81. package/dist/types/types/chain.d.ts +3 -4
  82. package/dist/types/types/chain.d.ts.map +1 -1
  83. package/dist/types/types/transaction.d.ts +1 -1
  84. package/dist/types/types/transaction.d.ts.map +1 -1
  85. package/dist/types/types/typedData.d.ts +6 -6
  86. package/dist/types/types/typedData.d.ts.map +1 -1
  87. package/dist/types/utils/ens/avatar/utils.d.ts +1 -1
  88. package/dist/types/utils/ens/avatar/utils.d.ts.map +1 -1
  89. package/dist/types/utils/formatters/extract.d.ts +1 -1
  90. package/dist/types/utils/formatters/extract.d.ts.map +1 -1
  91. package/package.json +1 -1
  92. package/src/accounts/utils/signTransaction.ts +7 -2
  93. package/src/chains/formatters/celo.ts +8 -7
  94. package/src/chains/formatters/optimism.ts +14 -14
  95. package/src/chains/index.ts +11 -11
  96. package/src/chains/serializers/celo.ts +15 -19
  97. package/src/clients/createClient.ts +113 -89
  98. package/src/clients/createPublicClient.ts +26 -26
  99. package/src/clients/createTestClient.ts +41 -47
  100. package/src/clients/createWalletClient.ts +30 -33
  101. package/src/clients/decorators/public.ts +49 -44
  102. package/src/clients/decorators/wallet.ts +18 -16
  103. package/src/errors/version.ts +1 -1
  104. package/src/types/chain.ts +6 -7
  105. package/src/types/transaction.ts +1 -1
  106. package/src/types/typedData.ts +6 -6
  107. package/src/utils/abi/encodePacked.ts +1 -1
  108. package/src/utils/ens/avatar/utils.ts +3 -1
  109. package/src/utils/formatters/extract.ts +3 -2
  110. package/src/utils/transaction/prepareRequest.ts +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../../../src/types/typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,eAAe,EACf,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,mBAAmB,CAC7B,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACrE,YAAY,SAAS,MAAM,GAAG,MAAM,IAClC;IACF,WAAW,EAAE,uBAAuB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;CAC/D,GAAG,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,GAC/C,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,GAC3C,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;AAE9C,MAAM,MAAM,kBAAkB,CAC5B,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACrE,YAAY,SAAS,MAAM,GAAG,MAAM,EACpC,OAAO,GAAG,UAAU,SAAS,SAAS,GAClC,yBAAyB,CAAC,UAAU,CAAC,GACrC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC1B,OAAO,GAAG,OAAO,SAAS;IAAE,YAAY,EAAE,MAAM,MAAM,CAAA;CAAE,GACpD,MAAM,GACN,eAAe,IACjB,YAAY,SAAS,cAAc,GACnC;IACE,MAAM,EAAE,OAAO,CAAA;CAChB,GACD;IACE,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAEL,MAAM,MAAM,mBAAmB,CAC7B,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACrE,YAAY,SAAS,MAAM,GAAG,MAAM,EACpC,OAAO,GAAG,UAAU,SAAS,SAAS,GAClC,yBAAyB,CAAC,UAAU,CAAC,GACrC;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC1B,QAAQ,GAAG,OAAO,CAAC,YAAY,SAAS,MAAM,OAAO,GACjD,YAAY,GACZ,MAAM,OAAO,CAAC,IAChB,YAAY,SAAS,cAAc,GACnC,EAAE,GACF;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,SAAS,QAAQ,GACvC;IACE;;;;OAIG;IACH,OAAO,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CACpC,GACD;IACE,mBAAmB;IACnB,OAAO,EAAE,QAAQ,CAAA;CAClB,CAAA;AAEL,MAAM,MAAM,uBAAuB,CACjC,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACrE,YAAY,SAAS,MAAM,GAAG,MAAM,IAClC,UAAU,SAAS,SAAS,GAC5B,MAAM,UAAU,SAAS,MAAM,gBAAgB,GAEzC,gBAAgB,GAChB,CAAC,YAAY,SAAS,gBAAgB,GAAG,YAAY,GAAG,KAAK,CAAC,GAC9D,CAAC,SAAS,SAAS,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC,GAC/C,cAAc,GAClB,KAAK,GACP,YAAY,CAAA;AAEhB,MAAM,MAAM,iBAAiB,CAC3B,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACrE,YAAY,SAAS,MAAM,GAAG,MAAM,IAClC,YAAY,SAAS,cAAc,GACnC;IACE,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;CAC3B,GACD;IACE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;CAC1B,CAAA"}
1
+ {"version":3,"file":"typedData.d.ts","sourceRoot":"","sources":["../../../src/types/typedData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,MAAM,EACN,SAAS,EACT,eAAe,EACf,yBAAyB,EAC1B,MAAM,SAAS,CAAA;AAEhB,MAAM,MAAM,mBAAmB,CAC7B,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACrE,YAAY,SAAS,MAAM,GAAG,MAAM,IAClC;IACF,WAAW,EAAE,uBAAuB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;CAC/D,GAAG,mBAAmB,CAAC,UAAU,EAAE,YAAY,CAAC,GAC/C,iBAAiB,CAAC,UAAU,EAAE,YAAY,CAAC,GAC3C,kBAAkB,CAAC,UAAU,EAAE,YAAY,CAAC,CAAA;AAE9C,MAAM,MAAM,kBAAkB,CAC5B,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACvE,YAAY,SAAS,MAAM,GAAG,MAAM,EACpC,OAAO,GAAG,UAAU,SAAS,SAAS,GAClC,yBAAyB,CAAC,UAAU,CAAC,GACrC;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC5B,OAAO,GAAG,OAAO,SAAS;IAAE,YAAY,EAAE,MAAM,MAAM,CAAA;CAAE,GACpD,MAAM,GACN,eAAe,IACjB,YAAY,SAAS,cAAc,GACnC;IACE,MAAM,EAAE,OAAO,CAAA;CAChB,GACD;IACE,MAAM,CAAC,EAAE,OAAO,CAAA;CACjB,CAAA;AAEL,MAAM,MAAM,mBAAmB,CAC7B,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACvE,YAAY,SAAS,MAAM,GAAG,MAAM,EACpC,OAAO,GAAG,UAAU,SAAS,SAAS,GAClC,yBAAyB,CAAC,UAAU,CAAC,GACrC;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,EAC5B,QAAQ,GAAG,OAAO,CAAC,YAAY,SAAS,MAAM,OAAO,GACjD,YAAY,GACZ,MAAM,OAAO,CAAC,IAChB,YAAY,SAAS,cAAc,GACnC,EAAE,GACF;IAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAAA;CAAE,SAAS,QAAQ,GACzC;IACE;;;;OAIG;IACH,OAAO,EAAE;QAAE,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE,CAAA;CACtC,GACD;IACE,mBAAmB;IACnB,OAAO,EAAE,QAAQ,CAAA;CAClB,CAAA;AAEL,MAAM,MAAM,uBAAuB,CACjC,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACrE,YAAY,SAAS,MAAM,GAAG,MAAM,IAClC,UAAU,SAAS,SAAS,GAC5B,MAAM,UAAU,SAAS,MAAM,gBAAgB,GAEzC,gBAAgB,GAChB,CAAC,YAAY,SAAS,gBAAgB,GAAG,YAAY,GAAG,KAAK,CAAC,GAC9D,CAAC,SAAS,SAAS,UAAU,GAAG,MAAM,GAAG,KAAK,CAAC,GAC/C,cAAc,GAClB,KAAK,GACP,YAAY,CAAA;AAEhB,MAAM,MAAM,iBAAiB,CAC3B,UAAU,SAAS,SAAS,GAAG;IAAE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,GAAG,SAAS,EACrE,YAAY,SAAS,MAAM,GAAG,MAAM,IAClC,YAAY,SAAS,cAAc,GACnC;IACE,KAAK,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;CAC3B,GACD;IACE,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAA;CAC1B,CAAA"}
@@ -29,7 +29,7 @@ type ParsedNft = {
29
29
  contractAddress: Address;
30
30
  tokenID: string;
31
31
  };
32
- export declare function parseNftUri(uri: string): ParsedNft;
32
+ export declare function parseNftUri(uri_: string): ParsedNft;
33
33
  export declare function getNftTokenUri<TChain extends Chain | undefined>(client: Client<Transport, TChain>, { nft }: {
34
34
  nft: ParsedNft;
35
35
  }): Promise<string>;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/utils/ens/avatar/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAA;AAO/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,KAAK,OAAO,GAAG;IACb,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AASD,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,oBA4B3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,cAAc,EAAE,MAAM,UAI5E;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,WAAW,GACZ,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;CAC3C,GAAG,OAAO,CAuDV;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,OAUrC;AAED,wBAAsB,oBAAoB,CAAC,EACzC,WAAW,EACX,GAAG,GACJ,EAAE;IACD,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC1C,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlB;AAED,wBAAsB,cAAc,CAAC,EACnC,WAAW,EACX,GAAG,GACJ,EAAE;IACD,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC1C,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC,MAAM,CAAC,CASlB;AAED,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CA+BlD;AAED,wBAAsB,cAAc,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EACnE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,EAAE,SAAS,CAAA;CAAE,mBAmC5B"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../../src/utils/ens/avatar/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAGtC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kCAAkC,CAAA;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gDAAgD,CAAA;AAO/E,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAA;AACpD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AAE7D,KAAK,OAAO,GAAG;IACb,GAAG,EAAE,MAAM,CAAA;IACX,SAAS,EAAE,OAAO,CAAA;IAClB,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AASD,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,oBA6B3C;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,cAAc,EAAE,MAAM,UAI5E;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,GAAG,EACH,WAAW,GACZ,EAAE;IACD,GAAG,EAAE,MAAM,CAAA;IACX,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;CAC3C,GAAG,OAAO,CAuDV;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,GAAG,OAUrC;AAED,wBAAsB,oBAAoB,CAAC,EACzC,WAAW,EACX,GAAG,GACJ,EAAE;IACD,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC1C,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC,MAAM,CAAC,CAWlB;AAED,wBAAsB,cAAc,CAAC,EACnC,WAAW,EACX,GAAG,GACJ,EAAE;IACD,WAAW,CAAC,EAAE,gBAAgB,GAAG,SAAS,CAAA;IAC1C,GAAG,EAAE,MAAM,CAAA;CACZ,GAAG,OAAO,CAAC,MAAM,CAAC,CASlB;AAED,KAAK,SAAS,GAAG;IACf,OAAO,EAAE,MAAM,CAAA;IACf,SAAS,EAAE,MAAM,CAAA;IACjB,eAAe,EAAE,OAAO,CAAA;IACxB,OAAO,EAAE,MAAM,CAAA;CAChB,CAAA;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAgCnD;AAED,wBAAsB,cAAc,CAAC,MAAM,SAAS,KAAK,GAAG,SAAS,EACnE,MAAM,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,EACjC,EAAE,GAAG,EAAE,EAAE;IAAE,GAAG,EAAE,SAAS,CAAA;CAAE,mBAmC5B"}
@@ -4,5 +4,5 @@ import type { Formatter } from '../../types/formatter.js';
4
4
  */
5
5
  export declare function extract(value: Record<string, unknown>, { format }: {
6
6
  format?: Formatter['format'];
7
- }): {};
7
+ }): Record<string, unknown>;
8
8
  //# sourceMappingURL=extract.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../../src/utils/formatters/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD;;GAEG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;CAAE,MAU7C"}
1
+ {"version":3,"file":"extract.d.ts","sourceRoot":"","sources":["../../../../src/utils/formatters/extract.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEzD;;GAEG;AACH,wBAAgB,OAAO,CACrB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,SAAS,CAAC,QAAQ,CAAC,CAAA;CAAE,2BAW7C"}
package/package.json CHANGED
@@ -20,7 +20,7 @@
20
20
  "optional": true
21
21
  }
22
22
  },
23
- "version": "1.2.9",
23
+ "version": "1.2.11",
24
24
  "files": [
25
25
  "dist",
26
26
  "!dist/**/*.tsbuildinfo",
@@ -17,7 +17,9 @@ export type SignTransactionArgs<
17
17
  > = {
18
18
  privateKey: Hex
19
19
  transaction: TTransactionSerializable
20
- serializer?: SerializeTransactionFn<TTransactionSerializable>
20
+ serializer?: SerializeTransactionFn<
21
+ TransactionSerializable & TTransactionSerializable
22
+ >
21
23
  }
22
24
  export type SignTransactionReturnType<
23
25
  TTransactionSerializable extends TransactionSerializable = TransactionSerializable,
@@ -36,5 +38,8 @@ export async function signTransaction<
36
38
  hash: keccak256(serializer(transaction)),
37
39
  privateKey,
38
40
  })
39
- return serializer(transaction, signature)
41
+ return serializer(
42
+ transaction,
43
+ signature,
44
+ ) as SignTransactionReturnType<TTransactionSerializable>
40
45
  }
@@ -14,7 +14,7 @@ import {
14
14
  import { defineTransactionReceipt } from '../../utils/formatters/transactionReceipt.js'
15
15
  import { defineTransactionRequest } from '../../utils/formatters/transactionRequest.js'
16
16
 
17
- export type CeloOverrides = {
17
+ export type CeloFormatOverrides = {
18
18
  RpcBlock: {
19
19
  randomness: {
20
20
  committed: Hex
@@ -49,10 +49,11 @@ export type CeloOverrides = {
49
49
  gatewayFeeRecipient: Address | null
50
50
  }
51
51
  }
52
- export const celoFormatters = {
52
+
53
+ export const formattersCelo = {
53
54
  block: /*#__PURE__*/ defineBlock({
54
55
  exclude: ['difficulty', 'gasLimit', 'mixHash', 'nonce', 'uncles'],
55
- format(args: CeloOverrides['RpcBlock']) {
56
+ format(args: CeloFormatOverrides['RpcBlock']) {
56
57
  const transactions = args.transactions?.map((transaction) => {
57
58
  if (typeof transaction === 'string') return transaction
58
59
  return {
@@ -63,7 +64,7 @@ export const celoFormatters = {
63
64
  : null,
64
65
  gatewayFeeRecipient: transaction.gatewayFeeRecipient,
65
66
  }
66
- }) as Hash[] | (Transaction & CeloOverrides['Transaction'])[]
67
+ }) as Hash[] | (Transaction & CeloFormatOverrides['Transaction'])[]
67
68
  return {
68
69
  randomness: args.randomness,
69
70
  transactions,
@@ -71,7 +72,7 @@ export const celoFormatters = {
71
72
  },
72
73
  }),
73
74
  transaction: /*#__PURE__*/ defineTransaction({
74
- format(args: CeloOverrides['RpcTransaction']) {
75
+ format(args: CeloFormatOverrides['RpcTransaction']) {
75
76
  return {
76
77
  feeCurrency: args.feeCurrency,
77
78
  gatewayFee: args.gatewayFee ? hexToBigInt(args.gatewayFee) : null,
@@ -80,7 +81,7 @@ export const celoFormatters = {
80
81
  },
81
82
  }),
82
83
  transactionReceipt: /*#__PURE__*/ defineTransactionReceipt({
83
- format(args: CeloOverrides['RpcTransactionReceipt']) {
84
+ format(args: CeloFormatOverrides['RpcTransactionReceipt']) {
84
85
  return {
85
86
  feeCurrency: args.feeCurrency,
86
87
  gatewayFee: args.gatewayFee ? hexToBigInt(args.gatewayFee) : null,
@@ -89,7 +90,7 @@ export const celoFormatters = {
89
90
  },
90
91
  }),
91
92
  transactionRequest: /*#__PURE__*/ defineTransactionRequest({
92
- format(args: CeloOverrides['TransactionRequest']) {
93
+ format(args: CeloFormatOverrides['TransactionRequest']) {
93
94
  return {
94
95
  feeCurrency: args.feeCurrency,
95
96
  gatewayFee:
@@ -23,6 +23,12 @@ type RpcTransaction = RpcTransaction_ & {
23
23
  sourceHash?: undefined
24
24
  }
25
25
 
26
+ type Transaction = Transaction_ & {
27
+ isSystemTx?: undefined
28
+ mint?: undefined
29
+ sourceHash?: undefined
30
+ }
31
+
26
32
  export type RpcDepositTransaction = TransactionBase<Quantity, Index> &
27
33
  FeeValuesEIP1559<Quantity> & {
28
34
  isSystemTx?: boolean
@@ -31,12 +37,6 @@ export type RpcDepositTransaction = TransactionBase<Quantity, Index> &
31
37
  type: '0x7e'
32
38
  }
33
39
 
34
- type Transaction = Transaction_ & {
35
- isSystemTx?: undefined
36
- mint?: undefined
37
- sourceHash?: undefined
38
- }
39
-
40
40
  export type DepositTransaction = TransactionBase &
41
41
  FeeValuesEIP1559 & {
42
42
  isSystemTx?: boolean
@@ -45,22 +45,22 @@ export type DepositTransaction = TransactionBase &
45
45
  type: 'deposit'
46
46
  }
47
47
 
48
- type OptimismOverrides = {
48
+ export type OptimismFormatOverrides = {
49
49
  RpcBlock: {
50
- transactions: Hash[] | OptimismOverrides['RpcTransaction'][]
50
+ transactions: Hash[] | OptimismFormatOverrides['RpcTransaction'][]
51
51
  }
52
52
  RpcTransaction: RpcTransaction | RpcDepositTransaction
53
53
  Transaction: Transaction | DepositTransaction
54
54
  }
55
55
 
56
- export const optimismFormatters = {
56
+ export const formattersOptimism = {
57
57
  block: /*#__PURE__*/ defineBlock({
58
- format(args: OptimismOverrides['RpcBlock']) {
58
+ format(args: OptimismFormatOverrides['RpcBlock']) {
59
59
  const transactions = args.transactions?.map((transaction) => {
60
60
  if (typeof transaction === 'string') return transaction
61
61
  const formatted = formatTransaction(
62
62
  transaction as RpcTransaction,
63
- ) as OptimismOverrides['Transaction']
63
+ ) as OptimismFormatOverrides['Transaction']
64
64
  if (formatted.typeHex === '0x7e') {
65
65
  formatted.isSystemTx = transaction.isSystemTx
66
66
  formatted.mint = transaction.mint
@@ -70,15 +70,15 @@ export const optimismFormatters = {
70
70
  formatted.type = 'deposit'
71
71
  }
72
72
  return formatted
73
- }) as Hash[] | OptimismOverrides['Transaction'][]
73
+ }) as Hash[] | OptimismFormatOverrides['Transaction'][]
74
74
  return {
75
75
  transactions,
76
76
  }
77
77
  },
78
78
  }),
79
79
  transaction: /*#__PURE__*/ defineTransaction({
80
- format(args: OptimismOverrides['RpcTransaction']) {
81
- const transaction = {} as OptimismOverrides['Transaction']
80
+ format(args: OptimismFormatOverrides['RpcTransaction']) {
81
+ const transaction = {} as OptimismFormatOverrides['Transaction']
82
82
  if (args.type === '0x7e') {
83
83
  transaction.isSystemTx = args.isSystemTx
84
84
  transaction.mint = args.mint ? hexToBigInt(args.mint) : undefined
@@ -1,9 +1,9 @@
1
1
  import * as chains from '@wagmi/chains'
2
2
 
3
3
  import { defineChain } from '../utils/chain.js'
4
- import { celoFormatters } from './formatters/celo.js'
5
- import { optimismFormatters } from './formatters/optimism.js'
6
- import { celoSerializers } from './serializers/celo.js'
4
+ import { formattersCelo } from './formatters/celo.js'
5
+ import { formattersOptimism } from './formatters/optimism.js'
6
+ import { serializersCelo } from './serializers/celo.js'
7
7
 
8
8
  export const arbitrum = /*#__PURE__*/ defineChain(chains.arbitrum)
9
9
  export const arbitrumGoerli = /*#__PURE__*/ defineChain(chains.arbitrumGoerli)
@@ -19,16 +19,16 @@ export const bsc = /*#__PURE__*/ defineChain(chains.bsc)
19
19
  export const bscTestnet = /*#__PURE__*/ defineChain(chains.bscTestnet)
20
20
  export const canto = /*#__PURE__*/ defineChain(chains.canto)
21
21
  export const celo = /*#__PURE__*/ defineChain(chains.celo, {
22
- formatters: celoFormatters,
23
- serializers: celoSerializers,
22
+ formatters: formattersCelo,
23
+ serializers: serializersCelo,
24
24
  })
25
25
  export const celoAlfajores = /*#__PURE__*/ defineChain(chains.celoAlfajores, {
26
- formatters: celoFormatters,
27
- serializers: celoSerializers,
26
+ formatters: formattersCelo,
27
+ serializers: serializersCelo,
28
28
  })
29
29
  export const celoCannoli = /*#__PURE__*/ defineChain(chains.celoCannoli, {
30
- formatters: celoFormatters,
31
- serializers: celoSerializers,
30
+ formatters: formattersCelo,
31
+ serializers: serializersCelo,
32
32
  })
33
33
  export const cronos = /*#__PURE__*/ defineChain(chains.cronos)
34
34
  export const crossbell = /*#__PURE__*/ defineChain(chains.crossbell)
@@ -69,10 +69,10 @@ export const moonriver = /*#__PURE__*/ defineChain(chains.moonriver)
69
69
  export const nexi = /*#__PURE__*/ defineChain(chains.nexi)
70
70
  export const okc = /*#__PURE__*/ defineChain(chains.okc)
71
71
  export const optimism = /*#__PURE__*/ defineChain(chains.optimism, {
72
- formatters: optimismFormatters,
72
+ formatters: formattersOptimism,
73
73
  })
74
74
  export const optimismGoerli = /*#__PURE__*/ defineChain(chains.optimismGoerli, {
75
- formatters: optimismFormatters,
75
+ formatters: formattersOptimism,
76
76
  })
77
77
  export const polygon = /*#__PURE__*/ defineChain(chains.polygon)
78
78
  export const polygonMumbai = /*#__PURE__*/ defineChain(chains.polygonMumbai)
@@ -6,6 +6,7 @@ import { InvalidChainIdError } from '../../errors/chain.js'
6
6
  import { FeeCapTooHighError, TipAboveFeeCapError } from '../../errors/node.js'
7
7
  import type { FeeValuesEIP1559 } from '../../types/fee.js'
8
8
  import type { Signature } from '../../types/misc.js'
9
+ import type { Serializers } from '../../types/serializer.js'
9
10
  import type {
10
11
  AccessList,
11
12
  TransactionSerializable,
@@ -19,30 +20,26 @@ import { toRlp } from '../../utils/encoding/toRlp.js'
19
20
  import { serializeAccessList } from '../../utils/transaction/serializeAccessList.js'
20
21
  import {
21
22
  type SerializeTransactionFn,
22
- serializeTransaction as serializeTransaction_,
23
+ serializeTransaction,
23
24
  } from '../../utils/transaction/serializeTransaction.js'
24
25
 
25
- export const serializeTransaction: SerializeTransactionFn<
26
+ export const serializeTransactionCelo: SerializeTransactionFn<
26
27
  TransactionSerializableCelo
27
28
  > = (tx, signature) => {
28
- // Handle Celo's CIP-42 Transactions
29
- if (couldBeCIP42(tx))
29
+ // Handle CIP-42 transactions
30
+ if (isCIP42(tx))
30
31
  return serializeTransactionCIP42(
31
32
  tx as TransactionSerializableCIP42,
32
33
  signature,
33
34
  )
34
35
 
35
36
  // Handle other transaction types
36
- return serializeTransaction_(tx as TransactionSerializable, signature)
37
+ return serializeTransaction(tx as TransactionSerializable, signature)
37
38
  }
38
39
 
39
- export type CeloSerializers = {
40
- transaction: typeof serializeTransaction
41
- }
42
-
43
- export const celoSerializers: CeloSerializers = {
44
- transaction: serializeTransaction,
45
- }
40
+ export const serializersCelo = {
41
+ transaction: serializeTransactionCelo,
42
+ } as const satisfies Serializers
46
43
 
47
44
  //////////////////////////////////////////////////////////////////////////////
48
45
  // Types
@@ -126,14 +123,13 @@ function serializeTransactionCIP42(
126
123
  // Utilities
127
124
 
128
125
  // process as CIP42 if any of these fields are present. realistically gatewayfee is not used but is part of spec
129
- function couldBeCIP42(tx: TransactionSerializableCelo) {
130
- const maybeCIP42 = tx as TransactionSerializableCIP42
126
+ function isCIP42(transaction: TransactionSerializableCelo) {
131
127
  if (
132
- 'maxFeePerGas' in maybeCIP42 &&
133
- 'maxPriorityFeePerGas' in maybeCIP42 &&
134
- ('feeCurrency' in maybeCIP42 ||
135
- 'gatewayFee' in maybeCIP42 ||
136
- 'gatewayFeeRecipient' in maybeCIP42)
128
+ 'maxFeePerGas' in transaction &&
129
+ 'maxPriorityFeePerGas' in transaction &&
130
+ ('feeCurrency' in transaction ||
131
+ 'gatewayFee' in transaction ||
132
+ 'gatewayFeeRecipient' in transaction)
137
133
  )
138
134
  return true
139
135
  return false
@@ -1,7 +1,6 @@
1
- import type { Address, Narrow } from 'abitype'
1
+ import type { Address } from 'abitype'
2
2
 
3
3
  import type { Account, JsonRpcAccount } from '../accounts/types.js'
4
- import type { ParseAccount } from '../types/account.js'
5
4
  import type { Chain } from '../types/chain.js'
6
5
  import type {
7
6
  EIP1193RequestFn,
@@ -13,60 +12,82 @@ import { parseAccount } from '../utils/accounts.js'
13
12
  import { uid } from '../utils/uid.js'
14
13
  import type { Transport } from './transports/createTransport.js'
15
14
 
16
- export type MulticallBatchOptions = {
17
- /** The maximum size (in bytes) for each calldata chunk. @default 1_024 */
18
- batchSize?: number
19
- /** The maximum number of milliseconds to wait before sending a batch. @default 0 */
20
- wait?: number
21
- }
22
-
23
15
  export type ClientConfig<
24
- TTransport extends Transport = Transport,
25
- TChain extends Chain | undefined = Chain | undefined,
26
- TAccountOrAddress extends Account | Address | undefined =
16
+ transport extends Transport = Transport,
17
+ chain extends Chain | undefined = Chain | undefined,
18
+ accountOrAddress extends Account | Address | undefined =
27
19
  | Account
28
20
  | Address
29
21
  | undefined,
30
22
  > = {
31
23
  /** The Account to use for the Client. This will be used for Actions that require an account as an argument. */
32
- account?: TAccountOrAddress
24
+ account?: accountOrAddress extends Account | Address
25
+ ? accountOrAddress | Account | Address // `accountOrAddress` defined, add for inference
26
+ : Account | Address | undefined // `accountOrAddress` undefined, show possible types for autocomplete
33
27
  /** Flags for batch settings. */
34
- batch?: {
35
- /** Toggle to enable `eth_call` multicall aggregation. */
36
- multicall?: boolean | MulticallBatchOptions
37
- }
28
+ batch?:
29
+ | {
30
+ /** Toggle to enable `eth_call` multicall aggregation. */
31
+ multicall?: boolean | Prettify<MulticallBatchOptions> | undefined
32
+ }
33
+ | undefined
38
34
  /** Chain for the client. */
39
- chain?: TChain
35
+ chain?: chain extends Chain
36
+ ? chain // `chain` defined, add for inference
37
+ : Chain | undefined // `chain` undefined, show possible types for autocomplete
40
38
  /** A key for the client. */
41
- key?: string
39
+ key?: string | undefined
42
40
  /** A name for the client. */
43
- name?: string
41
+ name?: string | undefined
44
42
  /**
45
43
  * Frequency (in ms) for polling enabled actions & events.
46
44
  * @default 4_000
47
45
  */
48
- pollingInterval?: number
46
+ pollingInterval?: number | undefined
49
47
  /** The RPC transport */
50
- transport: TTransport
48
+ transport: transport
51
49
  /** The type of client. */
52
- type?: string
50
+ type?: string | undefined
53
51
  }
54
52
 
53
+ // TODO: Move `transport` to slot index 2 since `chain` and `account` used more frequently.
54
+ // Otherwise, we end up with a lot of `Client<Transport, chain, account>` in actions.
55
+ export type Client<
56
+ transport extends Transport = Transport,
57
+ chain extends Chain | undefined = Chain | undefined,
58
+ account extends Account | undefined = Account | undefined,
59
+ rpcSchema extends RpcSchema | undefined = undefined,
60
+ extended extends Extended | undefined = Extended | undefined,
61
+ > = Prettify<
62
+ Prettify<Client_Base<transport, chain, account, rpcSchema>> & {
63
+ extend: <const client extends Extended>(
64
+ fn: (
65
+ client: Client<transport, chain, account, rpcSchema, extended>,
66
+ ) => client,
67
+ ) => Prettify<
68
+ Client<
69
+ transport,
70
+ chain,
71
+ account,
72
+ rpcSchema,
73
+ Prettify<client> & (extended extends Extended ? extended : unknown)
74
+ >
75
+ >
76
+ } & (extended extends Extended ? extended : unknown)
77
+ >
78
+
55
79
  type Client_Base<
56
- TTransport extends Transport = Transport,
57
- TChain extends Chain | undefined = Chain | undefined,
58
- TAccount extends Account | undefined = Account | undefined,
59
- TRpcSchema extends RpcSchema | undefined = undefined,
80
+ transport extends Transport = Transport,
81
+ chain extends Chain | undefined = Chain | undefined,
82
+ account extends Account | undefined = Account | undefined,
83
+ rpcSchema extends RpcSchema | undefined = undefined,
60
84
  > = {
61
85
  /** The Account of the Client. */
62
- account: TAccount
86
+ account: account
63
87
  /** Flags for batch settings. */
64
- batch?: {
65
- /** Toggle to enable `eth_call` multicall aggregation. */
66
- multicall?: boolean | MulticallBatchOptions
67
- }
88
+ batch?: ClientConfig['batch']
68
89
  /** Chain for the client. */
69
- chain: TChain
90
+ chain: chain
70
91
  /** A key for the client. */
71
92
  key: string
72
93
  /** A name for the client. */
@@ -74,86 +95,89 @@ type Client_Base<
74
95
  /** Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds. */
75
96
  pollingInterval: number
76
97
  /** Request function wrapped with friendly error handling */
77
- request: TRpcSchema extends undefined
78
- ? EIP1193RequestFn<EIP1474Methods>
79
- : EIP1193RequestFn<TRpcSchema>
98
+ request: EIP1193RequestFn<
99
+ rpcSchema extends undefined ? EIP1474Methods : rpcSchema
100
+ >
80
101
  /** The RPC transport */
81
- transport: ReturnType<TTransport>['config'] & ReturnType<TTransport>['value']
102
+ transport: ReturnType<transport>['config'] & ReturnType<transport>['value']
82
103
  /** The type of client. */
83
104
  type: string
84
105
  /** A unique ID for the client. */
85
106
  uid: string
86
107
  }
87
108
 
88
- type Extended = { [K in keyof Client_Base]?: undefined } & {
89
- [key: string]: unknown
90
- }
109
+ type Extended = Prettify<
110
+ // disallow redefining base properties
111
+ { [K in keyof Client_Base]?: undefined } & {
112
+ [key: string]: unknown
113
+ }
114
+ >
91
115
 
92
- export type Client<
93
- TTransport extends Transport = Transport,
94
- TChain extends Chain | undefined = Chain | undefined,
95
- TAccount extends Account | undefined = Account | undefined,
96
- TRpcSchema extends RpcSchema | undefined = undefined,
97
- TExtended extends Extended | undefined = Extended | undefined,
98
- > = Client_Base<TTransport, TChain, TAccount, TRpcSchema> & {
99
- extend: <TNextExtended extends Extended = Extended>(
100
- fn: (
101
- client: Client<TTransport, TChain, TAccount, TRpcSchema, TExtended>,
102
- ) => Narrow<TNextExtended>,
103
- ) => Client<
104
- TTransport,
105
- TChain,
106
- TAccount,
107
- TRpcSchema,
108
- (TExtended extends Extended ? TExtended : {}) & TNextExtended
109
- >
110
- } & (TExtended extends Extended ? TExtended : {})
116
+ export type MulticallBatchOptions = {
117
+ /** The maximum size (in bytes) for each calldata chunk. @default 1_024 */
118
+ batchSize?: number | undefined
119
+ /** The maximum number of milliseconds to wait before sending a batch. @default 0 */
120
+ wait?: number | undefined
121
+ }
111
122
 
112
123
  /**
113
- * @description Creates a base client with the given transport.
124
+ * Creates a base client with the given transport.
114
125
  */
115
126
  export function createClient<
116
- TTransport extends Transport,
117
- TChain extends Chain | undefined = undefined,
118
- TAccountOrAddress extends Account | Address | undefined = undefined,
119
- >({
120
- account,
121
- batch,
122
- chain,
123
- key = 'base',
124
- name = 'Base Client',
125
- pollingInterval = 4_000,
127
+ transport extends Transport,
128
+ chain extends Chain | undefined = undefined,
129
+ accountOrAddress extends Account | Address | undefined = undefined,
130
+ >(
131
+ parameters: ClientConfig<transport, chain, accountOrAddress>,
132
+ ): Client<
126
133
  transport,
127
- type = 'base',
128
- }: ClientConfig<TTransport, TChain, TAccountOrAddress>): Client<
129
- TTransport,
130
- TChain,
131
- TAccountOrAddress extends Address
132
- ? Prettify<JsonRpcAccount<TAccountOrAddress>>
133
- : TAccountOrAddress
134
- > {
135
- const { config, request, value } = transport({ chain, pollingInterval })
134
+ chain,
135
+ accountOrAddress extends Address
136
+ ? Prettify<JsonRpcAccount<accountOrAddress>>
137
+ : accountOrAddress
138
+ >
139
+
140
+ export function createClient(parameters: ClientConfig): Client {
141
+ const {
142
+ batch,
143
+ key = 'base',
144
+ name = 'Base Client',
145
+ pollingInterval = 4_000,
146
+ type = 'base',
147
+ } = parameters
148
+
149
+ const chain = parameters.chain
150
+ const account = parameters.account
151
+ ? parseAccount(parameters.account)
152
+ : undefined
153
+ const { config, request, value } = parameters.transport({
154
+ chain,
155
+ pollingInterval,
156
+ })
157
+ const transport = { ...config, ...value }
158
+
136
159
  const client = {
137
- account: (account
138
- ? parseAccount(account)
139
- : undefined) as ParseAccount<TAccountOrAddress>,
160
+ account,
140
161
  batch,
141
- chain: chain as TChain,
162
+ chain,
142
163
  key,
143
164
  name,
144
165
  pollingInterval,
145
166
  request,
146
- transport: { ...config, ...value },
167
+ transport,
147
168
  type,
148
169
  uid: uid(),
149
170
  }
150
- function extend(client_: typeof client) {
151
- return (fn: (_: typeof client) => unknown) => {
152
- const extended = fn(client_) as Extended
171
+
172
+ function extend(base: typeof client) {
173
+ type ExtendFn = (base: typeof client) => unknown
174
+ return (extendFn: ExtendFn) => {
175
+ const extended = extendFn(base) as Extended
153
176
  for (const key in client) delete extended[key]
154
- const nextClient = { ...client_, ...extended }
155
- return Object.assign(nextClient, { extend: extend(nextClient) })
177
+ const combined = { ...base, ...extended }
178
+ return Object.assign(combined, { extend: extend(combined) })
156
179
  }
157
180
  }
181
+
158
182
  return Object.assign(client, { extend: extend(client) as any })
159
183
  }