@hashgraphonline/standards-sdk 0.0.64 → 0.0.65

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 (279) hide show
  1. package/dist/es/fees/fee-config-builder.d.ts.map +1 -0
  2. package/dist/es/fees/index.d.ts +3 -0
  3. package/dist/es/fees/index.d.ts.map +1 -0
  4. package/dist/es/fees/types.d.ts +24 -0
  5. package/dist/es/fees/types.d.ts.map +1 -0
  6. package/dist/es/hcs-10/base-client.d.ts +1 -1
  7. package/dist/es/hcs-10/base-client.d.ts.map +1 -1
  8. package/dist/es/hcs-10/browser.d.ts +20 -35
  9. package/dist/es/hcs-10/browser.d.ts.map +1 -1
  10. package/dist/es/hcs-10/index.d.ts +4 -6
  11. package/dist/es/hcs-10/index.d.ts.map +1 -1
  12. package/dist/es/hcs-10/registrations.d.ts.map +1 -1
  13. package/dist/es/hcs-10/sdk.d.ts +16 -8
  14. package/dist/es/hcs-10/sdk.d.ts.map +1 -1
  15. package/dist/es/hcs-10/types.d.ts +2 -62
  16. package/dist/es/hcs-10/types.d.ts.map +1 -1
  17. package/dist/es/hcs-11/agent-builder.d.ts +53 -0
  18. package/dist/es/hcs-11/agent-builder.d.ts.map +1 -0
  19. package/dist/es/hcs-11/client.d.ts +82 -0
  20. package/dist/es/hcs-11/client.d.ts.map +1 -0
  21. package/dist/es/hcs-11/index.d.ts +4 -190
  22. package/dist/es/hcs-11/index.d.ts.map +1 -1
  23. package/dist/es/hcs-11/person-builder.d.ts +29 -0
  24. package/dist/es/hcs-11/person-builder.d.ts.map +1 -0
  25. package/dist/es/hcs-11/types.d.ts +165 -0
  26. package/dist/es/hcs-11/types.d.ts.map +1 -0
  27. package/dist/es/index.d.ts +1 -0
  28. package/dist/es/index.d.ts.map +1 -1
  29. package/dist/es/services/mirror-node.d.ts +2 -1
  30. package/dist/es/services/mirror-node.d.ts.map +1 -1
  31. package/dist/es/services/types.d.ts +0 -1
  32. package/dist/es/services/types.d.ts.map +1 -1
  33. package/dist/es/standards-sdk.es.js +9 -7
  34. package/dist/es/standards-sdk.es.js.map +1 -1
  35. package/dist/es/standards-sdk.es10.js +114 -1046
  36. package/dist/es/standards-sdk.es10.js.map +1 -1
  37. package/dist/es/standards-sdk.es100.js +14 -786
  38. package/dist/es/standards-sdk.es100.js.map +1 -1
  39. package/dist/es/standards-sdk.es101.js +38 -168
  40. package/dist/es/standards-sdk.es101.js.map +1 -1
  41. package/dist/es/standards-sdk.es102.js +13 -138
  42. package/dist/es/standards-sdk.es102.js.map +1 -1
  43. package/dist/es/standards-sdk.es103.js +61 -3
  44. package/dist/es/standards-sdk.es103.js.map +1 -1
  45. package/dist/es/standards-sdk.es104.js +1289 -2
  46. package/dist/es/standards-sdk.es104.js.map +1 -1
  47. package/dist/es/standards-sdk.es105.js +32 -2
  48. package/dist/es/standards-sdk.es105.js.map +1 -1
  49. package/dist/es/standards-sdk.es106.js +5 -33
  50. package/dist/es/standards-sdk.es106.js.map +1 -1
  51. package/dist/es/standards-sdk.es107.js +155 -29
  52. package/dist/es/standards-sdk.es107.js.map +1 -1
  53. package/dist/es/standards-sdk.es108.js +793 -9
  54. package/dist/es/standards-sdk.es108.js.map +1 -1
  55. package/dist/es/standards-sdk.es109.js +139 -30
  56. package/dist/es/standards-sdk.es109.js.map +1 -1
  57. package/dist/es/standards-sdk.es11.js +80 -71
  58. package/dist/es/standards-sdk.es11.js.map +1 -1
  59. package/dist/es/standards-sdk.es110.js +169 -16
  60. package/dist/es/standards-sdk.es110.js.map +1 -1
  61. package/dist/es/standards-sdk.es111.js +19 -25
  62. package/dist/es/standards-sdk.es111.js.map +1 -1
  63. package/dist/es/standards-sdk.es112.js +24 -23
  64. package/dist/es/standards-sdk.es112.js.map +1 -1
  65. package/dist/es/standards-sdk.es113.js +23 -35
  66. package/dist/es/standards-sdk.es113.js.map +1 -1
  67. package/dist/es/standards-sdk.es114.js +41 -0
  68. package/dist/es/standards-sdk.es114.js.map +1 -0
  69. package/dist/es/standards-sdk.es12.js +650 -7
  70. package/dist/es/standards-sdk.es12.js.map +1 -1
  71. package/dist/es/standards-sdk.es13.js +10 -664
  72. package/dist/es/standards-sdk.es13.js.map +1 -1
  73. package/dist/es/standards-sdk.es14.js +4 -1
  74. package/dist/es/standards-sdk.es14.js.map +1 -1
  75. package/dist/es/standards-sdk.es17.js +2 -2
  76. package/dist/es/standards-sdk.es18.js +3 -3
  77. package/dist/es/standards-sdk.es18.js.map +1 -1
  78. package/dist/es/standards-sdk.es19.js +82 -1754
  79. package/dist/es/standards-sdk.es19.js.map +1 -1
  80. package/dist/es/standards-sdk.es20.js +5 -3
  81. package/dist/es/standards-sdk.es20.js.map +1 -1
  82. package/dist/es/standards-sdk.es21.js +1703 -4103
  83. package/dist/es/standards-sdk.es21.js.map +1 -1
  84. package/dist/es/standards-sdk.es22.js +3 -6627
  85. package/dist/es/standards-sdk.es22.js.map +1 -1
  86. package/dist/es/standards-sdk.es23.js +4167 -36
  87. package/dist/es/standards-sdk.es23.js.map +1 -1
  88. package/dist/es/standards-sdk.es24.js +6600 -21
  89. package/dist/es/standards-sdk.es24.js.map +1 -1
  90. package/dist/es/standards-sdk.es25.js +36 -2
  91. package/dist/es/standards-sdk.es25.js.map +1 -1
  92. package/dist/es/standards-sdk.es26.js +46 -1039
  93. package/dist/es/standards-sdk.es26.js.map +1 -1
  94. package/dist/es/standards-sdk.es27.js +2 -5
  95. package/dist/es/standards-sdk.es27.js.map +1 -1
  96. package/dist/es/standards-sdk.es28.js +1034 -94
  97. package/dist/es/standards-sdk.es28.js.map +1 -1
  98. package/dist/es/standards-sdk.es29.js +419 -2
  99. package/dist/es/standards-sdk.es29.js.map +1 -1
  100. package/dist/es/standards-sdk.es30.js +2 -16
  101. package/dist/es/standards-sdk.es30.js.map +1 -1
  102. package/dist/es/standards-sdk.es31.js +106 -395
  103. package/dist/es/standards-sdk.es31.js.map +1 -1
  104. package/dist/es/standards-sdk.es32.js +3 -2282
  105. package/dist/es/standards-sdk.es32.js.map +1 -1
  106. package/dist/es/standards-sdk.es34.js +4 -3
  107. package/dist/es/standards-sdk.es34.js.map +1 -1
  108. package/dist/es/standards-sdk.es35.js +87 -405
  109. package/dist/es/standards-sdk.es35.js.map +1 -1
  110. package/dist/es/standards-sdk.es36.js +2 -2
  111. package/dist/es/standards-sdk.es37.js +15 -119
  112. package/dist/es/standards-sdk.es37.js.map +1 -1
  113. package/dist/es/standards-sdk.es38.js +408 -3
  114. package/dist/es/standards-sdk.es38.js.map +1 -1
  115. package/dist/es/standards-sdk.es39.js +2281 -363
  116. package/dist/es/standards-sdk.es39.js.map +1 -1
  117. package/dist/es/standards-sdk.es4.js +1 -1
  118. package/dist/es/standards-sdk.es40.js +362 -4
  119. package/dist/es/standards-sdk.es40.js.map +1 -1
  120. package/dist/es/standards-sdk.es41.js +5 -178
  121. package/dist/es/standards-sdk.es41.js.map +1 -1
  122. package/dist/es/standards-sdk.es42.js +171 -73
  123. package/dist/es/standards-sdk.es42.js.map +1 -1
  124. package/dist/es/standards-sdk.es43.js +74 -107
  125. package/dist/es/standards-sdk.es43.js.map +1 -1
  126. package/dist/es/standards-sdk.es44.js +107 -45
  127. package/dist/es/standards-sdk.es44.js.map +1 -1
  128. package/dist/es/standards-sdk.es45.js +51 -9
  129. package/dist/es/standards-sdk.es45.js.map +1 -1
  130. package/dist/es/standards-sdk.es46.js +9 -96
  131. package/dist/es/standards-sdk.es46.js.map +1 -1
  132. package/dist/es/standards-sdk.es47.js +96 -3
  133. package/dist/es/standards-sdk.es47.js.map +1 -1
  134. package/dist/es/standards-sdk.es48.js +4 -2
  135. package/dist/es/standards-sdk.es48.js.map +1 -1
  136. package/dist/es/standards-sdk.es49.js +2 -113
  137. package/dist/es/standards-sdk.es49.js.map +1 -1
  138. package/dist/es/standards-sdk.es5.js +393 -891
  139. package/dist/es/standards-sdk.es5.js.map +1 -1
  140. package/dist/es/standards-sdk.es50.js +109 -70
  141. package/dist/es/standards-sdk.es50.js.map +1 -1
  142. package/dist/es/standards-sdk.es51.js +73 -5
  143. package/dist/es/standards-sdk.es51.js.map +1 -1
  144. package/dist/es/standards-sdk.es52.js +5 -4
  145. package/dist/es/standards-sdk.es52.js.map +1 -1
  146. package/dist/es/standards-sdk.es53.js +4 -220
  147. package/dist/es/standards-sdk.es53.js.map +1 -1
  148. package/dist/es/standards-sdk.es54.js +214 -51
  149. package/dist/es/standards-sdk.es54.js.map +1 -1
  150. package/dist/es/standards-sdk.es55.js +56 -67
  151. package/dist/es/standards-sdk.es55.js.map +1 -1
  152. package/dist/es/standards-sdk.es56.js +69 -32
  153. package/dist/es/standards-sdk.es56.js.map +1 -1
  154. package/dist/es/standards-sdk.es57.js +26 -57
  155. package/dist/es/standards-sdk.es57.js.map +1 -1
  156. package/dist/es/standards-sdk.es58.js +58 -45
  157. package/dist/es/standards-sdk.es58.js.map +1 -1
  158. package/dist/es/standards-sdk.es59.js +48 -8
  159. package/dist/es/standards-sdk.es59.js.map +1 -1
  160. package/dist/es/standards-sdk.es60.js +8 -63
  161. package/dist/es/standards-sdk.es60.js.map +1 -1
  162. package/dist/es/standards-sdk.es61.js +64 -5
  163. package/dist/es/standards-sdk.es61.js.map +1 -1
  164. package/dist/es/standards-sdk.es62.js +6 -15
  165. package/dist/es/standards-sdk.es62.js.map +1 -1
  166. package/dist/es/standards-sdk.es63.js +15 -7
  167. package/dist/es/standards-sdk.es63.js.map +1 -1
  168. package/dist/es/standards-sdk.es64.js +6 -44
  169. package/dist/es/standards-sdk.es64.js.map +1 -1
  170. package/dist/es/standards-sdk.es65.js +45 -2
  171. package/dist/es/standards-sdk.es65.js.map +1 -1
  172. package/dist/es/standards-sdk.es66.js +2 -136
  173. package/dist/es/standards-sdk.es66.js.map +1 -1
  174. package/dist/es/standards-sdk.es67.js +126 -162
  175. package/dist/es/standards-sdk.es67.js.map +1 -1
  176. package/dist/es/standards-sdk.es68.js +172 -2
  177. package/dist/es/standards-sdk.es68.js.map +1 -1
  178. package/dist/es/standards-sdk.es69.js +3 -3
  179. package/dist/es/standards-sdk.es7.js +959 -94
  180. package/dist/es/standards-sdk.es7.js.map +1 -1
  181. package/dist/es/standards-sdk.es71.js +1 -1
  182. package/dist/es/standards-sdk.es72.js +3 -3
  183. package/dist/es/standards-sdk.es75.js +1 -1
  184. package/dist/es/standards-sdk.es77.js +3 -3
  185. package/dist/es/standards-sdk.es78.js +8 -8
  186. package/dist/es/standards-sdk.es79.js +3 -3
  187. package/dist/es/standards-sdk.es8.js +1049 -393
  188. package/dist/es/standards-sdk.es8.js.map +1 -1
  189. package/dist/es/standards-sdk.es81.js +3 -195
  190. package/dist/es/standards-sdk.es81.js.map +1 -1
  191. package/dist/es/standards-sdk.es82.js +2 -438
  192. package/dist/es/standards-sdk.es82.js.map +1 -1
  193. package/dist/es/standards-sdk.es83.js +2 -25
  194. package/dist/es/standards-sdk.es83.js.map +1 -1
  195. package/dist/es/standards-sdk.es84.js +33 -138
  196. package/dist/es/standards-sdk.es84.js.map +1 -1
  197. package/dist/es/standards-sdk.es85.js +32 -17
  198. package/dist/es/standards-sdk.es85.js.map +1 -1
  199. package/dist/es/standards-sdk.es86.js +9 -29
  200. package/dist/es/standards-sdk.es86.js.map +1 -1
  201. package/dist/es/standards-sdk.es87.js +31 -26
  202. package/dist/es/standards-sdk.es87.js.map +1 -1
  203. package/dist/es/standards-sdk.es88.js +2 -21
  204. package/dist/es/standards-sdk.es88.js.map +1 -1
  205. package/dist/es/standards-sdk.es89.js +78 -38
  206. package/dist/es/standards-sdk.es89.js.map +1 -1
  207. package/dist/es/standards-sdk.es9.js +2 -2
  208. package/dist/es/standards-sdk.es9.js.map +1 -1
  209. package/dist/es/standards-sdk.es90.js +22 -17
  210. package/dist/es/standards-sdk.es90.js.map +1 -1
  211. package/dist/es/standards-sdk.es91.js +140 -53
  212. package/dist/es/standards-sdk.es91.js.map +1 -1
  213. package/dist/es/standards-sdk.es92.js +69 -1267
  214. package/dist/es/standards-sdk.es92.js.map +1 -1
  215. package/dist/es/standards-sdk.es93.js +181 -134
  216. package/dist/es/standards-sdk.es93.js.map +1 -1
  217. package/dist/es/standards-sdk.es94.js +425 -78
  218. package/dist/es/standards-sdk.es94.js.map +1 -1
  219. package/dist/es/standards-sdk.es95.js +21 -80
  220. package/dist/es/standards-sdk.es95.js.map +1 -1
  221. package/dist/es/standards-sdk.es96.js +134 -27
  222. package/dist/es/standards-sdk.es96.js.map +1 -1
  223. package/dist/es/standards-sdk.es97.js +17 -5
  224. package/dist/es/standards-sdk.es97.js.map +1 -1
  225. package/dist/es/standards-sdk.es98.js +21 -151
  226. package/dist/es/standards-sdk.es98.js.map +1 -1
  227. package/dist/es/standards-sdk.es99.js +28 -22
  228. package/dist/es/standards-sdk.es99.js.map +1 -1
  229. package/dist/es/utils/logger.d.ts +1 -0
  230. package/dist/es/utils/logger.d.ts.map +1 -1
  231. package/dist/es/utils/types.d.ts +2 -0
  232. package/dist/es/utils/types.d.ts.map +1 -0
  233. package/dist/umd/fees/fee-config-builder.d.ts.map +1 -0
  234. package/dist/umd/fees/index.d.ts +3 -0
  235. package/dist/umd/fees/index.d.ts.map +1 -0
  236. package/dist/umd/fees/types.d.ts +24 -0
  237. package/dist/umd/fees/types.d.ts.map +1 -0
  238. package/dist/umd/hcs-10/base-client.d.ts +1 -1
  239. package/dist/umd/hcs-10/base-client.d.ts.map +1 -1
  240. package/dist/umd/hcs-10/browser.d.ts +20 -35
  241. package/dist/umd/hcs-10/browser.d.ts.map +1 -1
  242. package/dist/umd/hcs-10/index.d.ts +4 -6
  243. package/dist/umd/hcs-10/index.d.ts.map +1 -1
  244. package/dist/umd/hcs-10/registrations.d.ts.map +1 -1
  245. package/dist/umd/hcs-10/sdk.d.ts +16 -8
  246. package/dist/umd/hcs-10/sdk.d.ts.map +1 -1
  247. package/dist/umd/hcs-10/types.d.ts +2 -62
  248. package/dist/umd/hcs-10/types.d.ts.map +1 -1
  249. package/dist/umd/hcs-11/agent-builder.d.ts +53 -0
  250. package/dist/umd/hcs-11/agent-builder.d.ts.map +1 -0
  251. package/dist/umd/hcs-11/client.d.ts +82 -0
  252. package/dist/umd/hcs-11/client.d.ts.map +1 -0
  253. package/dist/umd/hcs-11/index.d.ts +4 -190
  254. package/dist/umd/hcs-11/index.d.ts.map +1 -1
  255. package/dist/umd/hcs-11/person-builder.d.ts +29 -0
  256. package/dist/umd/hcs-11/person-builder.d.ts.map +1 -0
  257. package/dist/umd/hcs-11/types.d.ts +165 -0
  258. package/dist/umd/hcs-11/types.d.ts.map +1 -0
  259. package/dist/umd/index.d.ts +1 -0
  260. package/dist/umd/index.d.ts.map +1 -1
  261. package/dist/umd/services/mirror-node.d.ts +2 -1
  262. package/dist/umd/services/mirror-node.d.ts.map +1 -1
  263. package/dist/umd/services/types.d.ts +0 -1
  264. package/dist/umd/services/types.d.ts.map +1 -1
  265. package/dist/umd/standards-sdk.umd.js +7 -7
  266. package/dist/umd/standards-sdk.umd.js.map +1 -1
  267. package/dist/umd/utils/logger.d.ts +1 -0
  268. package/dist/umd/utils/logger.d.ts.map +1 -1
  269. package/dist/umd/utils/types.d.ts +2 -0
  270. package/dist/umd/utils/types.d.ts.map +1 -0
  271. package/package.json +3 -4
  272. package/dist/es/hcs-10/agent-builder.d.ts +0 -45
  273. package/dist/es/hcs-10/agent-builder.d.ts.map +0 -1
  274. package/dist/es/hcs-10/fee-config-builder.d.ts.map +0 -1
  275. package/dist/umd/hcs-10/agent-builder.d.ts +0 -45
  276. package/dist/umd/hcs-10/agent-builder.d.ts.map +0 -1
  277. package/dist/umd/hcs-10/fee-config-builder.d.ts.map +0 -1
  278. /package/dist/es/{hcs-10 → fees}/fee-config-builder.d.ts +0 -0
  279. /package/dist/umd/{hcs-10 → fees}/fee-config-builder.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es89.js","sources":["../../node_modules/ethers/lib.esm/abi/coders/number.js"],"sourcesContent":["import { defineProperties, fromTwos, getBigInt, mask, toTwos } from \"../../utils/index.js\";\nimport { Typed } from \"../typed.js\";\nimport { Coder, WordSize } from \"./abstract-coder.js\";\nconst BN_0 = BigInt(0);\nconst BN_1 = BigInt(1);\nconst BN_MAX_UINT256 = BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n/**\n * @_ignore\n */\nexport class NumberCoder extends Coder {\n size;\n signed;\n constructor(size, signed, localName) {\n const name = ((signed ? \"int\" : \"uint\") + (size * 8));\n super(name, name, localName, false);\n defineProperties(this, { size, signed }, { size: \"number\", signed: \"boolean\" });\n }\n defaultValue() {\n return 0;\n }\n encode(writer, _value) {\n let value = getBigInt(Typed.dereference(_value, this.type));\n // Check bounds are safe for encoding\n let maxUintValue = mask(BN_MAX_UINT256, WordSize * 8);\n if (this.signed) {\n let bounds = mask(maxUintValue, (this.size * 8) - 1);\n if (value > bounds || value < -(bounds + BN_1)) {\n this._throwError(\"value out-of-bounds\", _value);\n }\n value = toTwos(value, 8 * WordSize);\n }\n else if (value < BN_0 || value > mask(maxUintValue, this.size * 8)) {\n this._throwError(\"value out-of-bounds\", _value);\n }\n return writer.writeValue(value);\n }\n decode(reader) {\n let value = mask(reader.readValue(), this.size * 8);\n if (this.signed) {\n value = fromTwos(value, this.size * 8);\n }\n return value;\n }\n}\n//# sourceMappingURL=number.js.map"],"names":[],"mappings":";;;;;;;AAGA,MAAM,OAAO,OAAO,CAAC;AACrB,MAAM,OAAO,OAAO,CAAC;AACrB,MAAM,iBAAiB,OAAO,oEAAoE;AAI3F,MAAM,oBAAoB,MAAM;AAAA,EAGnC,YAAY,MAAM,QAAQ,WAAW;AACjC,UAAM,QAAS,SAAS,QAAQ,UAAW,OAAO;AAClD,UAAM,MAAM,MAAM,WAAW,KAAK;AAJtC;AACA;AAII,qBAAiB,MAAM,EAAE,MAAM,OAAM,GAAI,EAAE,MAAM,UAAU,QAAQ,WAAW;AAAA,EACtF;AAAA,EACI,eAAe;AACX,WAAO;AAAA,EACf;AAAA,EACI,OAAO,QAAQ,QAAQ;AACnB,QAAI,QAAQ,UAAU,MAAM,YAAY,QAAQ,KAAK,IAAI,CAAC;AAE1D,QAAI,eAAe,KAAK,gBAAgB,WAAW,CAAC;AACpD,QAAI,KAAK,QAAQ;AACb,UAAI,SAAS,KAAK,cAAe,KAAK,OAAO,IAAK,CAAC;AACnD,UAAI,QAAQ,UAAU,QAAQ,EAAE,SAAS,OAAO;AAC5C,aAAK,YAAY,uBAAuB,MAAM;AAAA,MAC9D;AACY,cAAQ,OAAO,OAAO,IAAI,QAAQ;AAAA,IAC9C,WACiB,QAAQ,QAAQ,QAAQ,KAAK,cAAc,KAAK,OAAO,CAAC,GAAG;AAChE,WAAK,YAAY,uBAAuB,MAAM;AAAA,IAC1D;AACQ,WAAO,OAAO,WAAW,KAAK;AAAA,EACtC;AAAA,EACI,OAAO,QAAQ;AACX,QAAI,QAAQ,KAAK,OAAO,UAAS,GAAI,KAAK,OAAO,CAAC;AAClD,QAAI,KAAK,QAAQ;AACb,cAAQ,SAAS,OAAO,KAAK,OAAO,CAAC;AAAA,IACjD;AACQ,WAAO;AAAA,EACf;AACA;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"standards-sdk.es89.js","sources":["../../node_modules/ethers/lib.esm/address/address.js"],"sourcesContent":["import { keccak256 } from \"../crypto/index.js\";\nimport { getBytes, assertArgument } from \"../utils/index.js\";\nconst BN_0 = BigInt(0);\nconst BN_36 = BigInt(36);\nfunction getChecksumAddress(address) {\n // if (!isHexString(address, 20)) {\n // logger.throwArgumentError(\"invalid address\", \"address\", address);\n // }\n address = address.toLowerCase();\n const chars = address.substring(2).split(\"\");\n const expanded = new Uint8Array(40);\n for (let i = 0; i < 40; i++) {\n expanded[i] = chars[i].charCodeAt(0);\n }\n const hashed = getBytes(keccak256(expanded));\n for (let i = 0; i < 40; i += 2) {\n if ((hashed[i >> 1] >> 4) >= 8) {\n chars[i] = chars[i].toUpperCase();\n }\n if ((hashed[i >> 1] & 0x0f) >= 8) {\n chars[i + 1] = chars[i + 1].toUpperCase();\n }\n }\n return \"0x\" + chars.join(\"\");\n}\n// See: https://en.wikipedia.org/wiki/International_Bank_Account_Number\n// Create lookup table\nconst ibanLookup = {};\nfor (let i = 0; i < 10; i++) {\n ibanLookup[String(i)] = String(i);\n}\nfor (let i = 0; i < 26; i++) {\n ibanLookup[String.fromCharCode(65 + i)] = String(10 + i);\n}\n// How many decimal digits can we process? (for 64-bit float, this is 15)\n// i.e. Math.floor(Math.log10(Number.MAX_SAFE_INTEGER));\nconst safeDigits = 15;\nfunction ibanChecksum(address) {\n address = address.toUpperCase();\n address = address.substring(4) + address.substring(0, 2) + \"00\";\n let expanded = address.split(\"\").map((c) => { return ibanLookup[c]; }).join(\"\");\n // Javascript can handle integers safely up to 15 (decimal) digits\n while (expanded.length >= safeDigits) {\n let block = expanded.substring(0, safeDigits);\n expanded = parseInt(block, 10) % 97 + expanded.substring(block.length);\n }\n let checksum = String(98 - (parseInt(expanded, 10) % 97));\n while (checksum.length < 2) {\n checksum = \"0\" + checksum;\n }\n return checksum;\n}\n;\nconst Base36 = (function () {\n ;\n const result = {};\n for (let i = 0; i < 36; i++) {\n const key = \"0123456789abcdefghijklmnopqrstuvwxyz\"[i];\n result[key] = BigInt(i);\n }\n return result;\n})();\nfunction fromBase36(value) {\n value = value.toLowerCase();\n let result = BN_0;\n for (let i = 0; i < value.length; i++) {\n result = result * BN_36 + Base36[value[i]];\n }\n return result;\n}\n/**\n * Returns a normalized and checksumed address for %%address%%.\n * This accepts non-checksum addresses, checksum addresses and\n * [[getIcapAddress]] formats.\n *\n * The checksum in Ethereum uses the capitalization (upper-case\n * vs lower-case) of the characters within an address to encode\n * its checksum, which offers, on average, a checksum of 15-bits.\n *\n * If %%address%% contains both upper-case and lower-case, it is\n * assumed to already be a checksum address and its checksum is\n * validated, and if the address fails its expected checksum an\n * error is thrown.\n *\n * If you wish the checksum of %%address%% to be ignore, it should\n * be converted to lower-case (i.e. ``.toLowercase()``) before\n * being passed in. This should be a very rare situation though,\n * that you wish to bypass the safegaurds in place to protect\n * against an address that has been incorrectly copied from another\n * source.\n *\n * @example:\n * // Adds the checksum (via upper-casing specific letters)\n * getAddress(\"0x8ba1f109551bd432803012645ac136ddd64dba72\")\n * //_result:\n *\n * // Converts ICAP address and adds checksum\n * getAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36\");\n * //_result:\n *\n * // Throws an error if an address contains mixed case,\n * // but the checksum fails\n * getAddress(\"0x8Ba1f109551bD432803012645Ac136ddd64DBA72\")\n * //_error:\n */\nexport function getAddress(address) {\n assertArgument(typeof (address) === \"string\", \"invalid address\", \"address\", address);\n if (address.match(/^(0x)?[0-9a-fA-F]{40}$/)) {\n // Missing the 0x prefix\n if (!address.startsWith(\"0x\")) {\n address = \"0x\" + address;\n }\n const result = getChecksumAddress(address);\n // It is a checksummed address with a bad checksum\n assertArgument(!address.match(/([A-F].*[a-f])|([a-f].*[A-F])/) || result === address, \"bad address checksum\", \"address\", address);\n return result;\n }\n // Maybe ICAP? (we only support direct mode)\n if (address.match(/^XE[0-9]{2}[0-9A-Za-z]{30,31}$/)) {\n // It is an ICAP address with a bad checksum\n assertArgument(address.substring(2, 4) === ibanChecksum(address), \"bad icap checksum\", \"address\", address);\n let result = fromBase36(address.substring(4)).toString(16);\n while (result.length < 40) {\n result = \"0\" + result;\n }\n return getChecksumAddress(\"0x\" + result);\n }\n assertArgument(false, \"invalid address\", \"address\", address);\n}\n/**\n * The [ICAP Address format](link-icap) format is an early checksum\n * format which attempts to be compatible with the banking\n * industry [IBAN format](link-wiki-iban) for bank accounts.\n *\n * It is no longer common or a recommended format.\n *\n * @example:\n * getIcapAddress(\"0x8ba1f109551bd432803012645ac136ddd64dba72\");\n * //_result:\n *\n * getIcapAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK36\");\n * //_result:\n *\n * // Throws an error if the ICAP checksum is wrong\n * getIcapAddress(\"XE65GB6LDNXYOFTX0NSV3FUWKOWIXAMJK37\");\n * //_error:\n */\nexport function getIcapAddress(address) {\n //let base36 = _base16To36(getAddress(address).substring(2)).toUpperCase();\n let base36 = BigInt(getAddress(address)).toString(36).toUpperCase();\n while (base36.length < 30) {\n base36 = \"0\" + base36;\n }\n return \"XE\" + ibanChecksum(\"XE00\" + base36) + base36;\n}\n//# sourceMappingURL=address.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}
@@ -1,5 +1,5 @@
1
- import { HCS11Client } from "./standards-sdk.es13.js";
2
- import { sleep } from "./standards-sdk.es25.js";
1
+ import { HCS11Client } from "./standards-sdk.es12.js";
2
+ import { sleep } from "./standards-sdk.es27.js";
3
3
  class Registration {
4
4
  /**
5
5
  * Checks the status of a registration request.
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es9.js","sources":["../../src/hcs-10/registrations.ts"],"sourcesContent":["import { Logger } from '../utils/logger';\nimport { HCS11Client } from '../hcs-11';\nimport { sleep } from '../utils/sleep';\nimport {\n RegistrationSearchResult,\n AgentMetadata,\n RegistrationResult,\n RegistrationsApiResponse,\n RegistrationSearchOptions,\n} from './types';\n\nexport interface RegistrationStatusResponse {\n status: 'pending' | 'success' | 'failed';\n error?: string;\n}\n\nexport abstract class Registration {\n /**\n * Checks the status of a registration request.\n *\n * @param transactionId - The transaction ID of the registration.\n * @param network - The network to use for the registration.\n * @param baseUrl - The base URL of the guarded registry.\n * @param logger - The logger to use for logging.\n * @returns A promise that resolves to the registration status response.\n */\n protected async checkRegistrationStatus(\n transactionId: string,\n network: string,\n baseUrl: string,\n logger?: Logger\n ): Promise<RegistrationStatusResponse> {\n try {\n const response = await fetch(`${baseUrl}/api/request-confirm`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Network': network,\n },\n body: JSON.stringify({ transaction_id: transactionId }),\n });\n\n if (!response.ok) {\n const error = `Failed to confirm registration: ${response.statusText}`;\n if (logger) {\n logger.error(error);\n }\n throw new Error(error);\n }\n\n return (await response.json()) as RegistrationStatusResponse;\n } catch (error: any) {\n if (logger) {\n logger.error(`Error checking registration status: ${error.message}`);\n }\n throw error;\n }\n }\n\n /**\n * Waits for a registration to be confirmed.\n *\n * @param transactionId - The transaction ID of the registration.\n * @param network - The network to use for the registration.\n * @param baseUrl - The base URL of the guarded registry.\n * @param maxAttempts - The maximum number of attempts to check the registration status.\n * @param delayMs - The delay in milliseconds between attempts.\n * @param logger - The logger to use for logging.\n * @returns A promise that resolves to true if the registration is confirmed, false otherwise.\n */\n async waitForRegistrationConfirmation(\n transactionId: string,\n network: string,\n baseUrl: string,\n maxAttempts: number = 60,\n delayMs: number = 2000,\n logger?: Logger\n ): Promise<boolean> {\n let attempts = 0;\n while (attempts < maxAttempts) {\n if (logger) {\n logger.info(\n `Checking registration status. Attempt ${attempts + 1}/${maxAttempts}`\n );\n }\n\n const status = await this.checkRegistrationStatus(\n transactionId,\n network,\n baseUrl,\n logger\n );\n\n if (status.status === 'success') {\n if (logger) {\n logger.info('Registration confirmed successfully');\n }\n return true;\n }\n\n if (status.status === 'failed') {\n if (logger) {\n logger.error('Registration confirmation failed');\n }\n throw new Error('Registration confirmation failed');\n }\n\n if (logger) {\n logger.info(\n `Registration still pending. Waiting ${delayMs}ms before next attempt`\n );\n }\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n attempts++;\n }\n\n if (logger) {\n logger.warn(`Registration not confirmed after ${maxAttempts} attempts`);\n }\n return false;\n }\n\n /**\n * Executes a registration request for an agent.\n *\n * @param accountId - The account ID of the agent to register.\n * @param network - The network to use for the registration.\n * @param baseUrl - The base URL of the guarded registry.\n * @param logger - The logger to use for logging.\n * @returns A promise that resolves to the registration result.\n */\n async executeRegistration(\n accountId: string,\n network: string = 'mainnet',\n baseUrl: string = 'https://moonscape.tech',\n logger?: Logger\n ): Promise<RegistrationResult> {\n try {\n if (logger) {\n logger.info('Registering agent with guarded registry');\n }\n\n try {\n const hcs11Client = new HCS11Client({\n network: network as 'mainnet' | 'testnet',\n auth: { operatorId: '0.0.0' },\n });\n logger?.info(\n `Fetching profile by account ID ${accountId} on ${network}`\n );\n await sleep(5000);\n const profileResult = await hcs11Client.fetchProfileByAccountId(\n accountId,\n network\n );\n logger?.info('Profile fetched', profileResult);\n\n if (profileResult?.error) {\n logger?.error('Error fetching profile', profileResult.error);\n return {\n error: profileResult.error,\n success: false,\n };\n }\n if (!profileResult?.success || !profileResult?.profile) {\n if (logger) {\n logger.error('Profile not found for agent registration');\n }\n return {\n error: 'Profile not found for the provided account ID',\n success: false,\n };\n }\n\n if (!profileResult.profile.inboundTopicId) {\n if (logger) {\n logger.error('Missing inbound topic ID in profile');\n }\n return {\n error: 'Profile is missing required inbound topic ID',\n success: false,\n };\n }\n\n if (!profileResult.profile.outboundTopicId) {\n if (logger) {\n logger.error('Missing outbound topic ID in profile');\n }\n return {\n error: 'Profile is missing required outbound topic ID',\n success: false,\n };\n }\n\n if (logger) {\n logger.info(\n `Profile validation successful. Inbound topic: ${profileResult.profile.inboundTopicId}, Outbound topic: ${profileResult.profile.outboundTopicId}`\n );\n }\n } catch (profileError: any) {\n if (logger) {\n logger.error(`Error validating profile: ${profileError.message}`);\n }\n return {\n error: `Error validating profile: ${profileError.message}`,\n success: false,\n };\n }\n\n const response = await fetch(`${baseUrl}/api/request-register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: '*/*',\n 'Accept-Language': 'en;q=0.5',\n Origin: baseUrl,\n Referer: `${baseUrl}/`,\n 'X-Network': network,\n },\n body: JSON.stringify({\n accountId,\n }),\n });\n\n const data = (await response.json()) as RegistrationsApiResponse;\n\n if (!response.ok) {\n if (data.details?.length > 0) {\n return {\n validationErrors: data.details,\n error: data.error || 'Validation failed',\n success: false,\n };\n }\n return {\n error: data.error || 'Failed to register agent',\n success: false,\n };\n }\n\n if (logger) {\n logger.info(\n `Created new registration request. Transaction ID: ${data.transaction_id}`\n );\n }\n\n return {\n transactionId: data.transaction_id,\n transaction: data.transaction,\n success: true,\n };\n } catch (error: any) {\n return {\n error: `Error during registration request: ${error.message}`,\n success: false,\n };\n }\n }\n\n /**\n * Finds registrations based on the provided options.\n *\n * @param options - The options for searching registrations.\n * @param baseUrl - The base URL of the guarded registry.\n * @returns A promise that resolves to the registration search result.\n */\n async findRegistrations(\n options: RegistrationSearchOptions = {},\n baseUrl: string = 'https://moonscape.tech'\n ): Promise<RegistrationSearchResult> {\n try {\n const queryParams = new URLSearchParams();\n options.tags?.forEach((tag) => queryParams.append('tags', tag));\n if (options.accountId) {\n queryParams.append('accountId', options.accountId);\n }\n if (options.network) {\n queryParams.append('network', options.network);\n }\n\n const response = await fetch(\n `${baseUrl}/api/registrations?${queryParams}`,\n {\n headers: {\n Accept: '*/*',\n 'Accept-Language': 'en;q=0.5',\n Origin: baseUrl,\n Referer: `${baseUrl}/`,\n },\n }\n );\n\n if (!response.ok) {\n const error = await response.text();\n return {\n registrations: [],\n error: error || 'Failed to fetch registrations',\n success: false,\n };\n }\n\n const data = (await response.json()) as RegistrationsApiResponse;\n if (data.error) {\n return {\n registrations: [],\n error: data.error,\n success: false,\n };\n }\n\n return {\n registrations: data.registrations || [],\n success: true,\n };\n } catch (e) {\n const error = e as Error;\n return {\n registrations: [],\n error: `Error fetching registrations: ${error.message}`,\n success: false,\n };\n }\n }\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"standards-sdk.es9.js","sources":["../../src/hcs-10/registrations.ts"],"sourcesContent":["import { Logger } from '../utils/logger';\nimport { HCS11Client } from '../hcs-11/client';\nimport { sleep } from '../utils/sleep';\nimport {\n RegistrationSearchResult,\n RegistrationResult,\n RegistrationsApiResponse,\n RegistrationSearchOptions,\n} from './types';\n\nexport interface RegistrationStatusResponse {\n status: 'pending' | 'success' | 'failed';\n error?: string;\n}\n\nexport abstract class Registration {\n /**\n * Checks the status of a registration request.\n *\n * @param transactionId - The transaction ID of the registration.\n * @param network - The network to use for the registration.\n * @param baseUrl - The base URL of the guarded registry.\n * @param logger - The logger to use for logging.\n * @returns A promise that resolves to the registration status response.\n */\n protected async checkRegistrationStatus(\n transactionId: string,\n network: string,\n baseUrl: string,\n logger?: Logger\n ): Promise<RegistrationStatusResponse> {\n try {\n const response = await fetch(`${baseUrl}/api/request-confirm`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'X-Network': network,\n },\n body: JSON.stringify({ transaction_id: transactionId }),\n });\n\n if (!response.ok) {\n const error = `Failed to confirm registration: ${response.statusText}`;\n if (logger) {\n logger.error(error);\n }\n throw new Error(error);\n }\n\n return (await response.json()) as RegistrationStatusResponse;\n } catch (error: any) {\n if (logger) {\n logger.error(`Error checking registration status: ${error.message}`);\n }\n throw error;\n }\n }\n\n /**\n * Waits for a registration to be confirmed.\n *\n * @param transactionId - The transaction ID of the registration.\n * @param network - The network to use for the registration.\n * @param baseUrl - The base URL of the guarded registry.\n * @param maxAttempts - The maximum number of attempts to check the registration status.\n * @param delayMs - The delay in milliseconds between attempts.\n * @param logger - The logger to use for logging.\n * @returns A promise that resolves to true if the registration is confirmed, false otherwise.\n */\n async waitForRegistrationConfirmation(\n transactionId: string,\n network: string,\n baseUrl: string,\n maxAttempts: number = 60,\n delayMs: number = 2000,\n logger?: Logger\n ): Promise<boolean> {\n let attempts = 0;\n while (attempts < maxAttempts) {\n if (logger) {\n logger.info(\n `Checking registration status. Attempt ${attempts + 1}/${maxAttempts}`\n );\n }\n\n const status = await this.checkRegistrationStatus(\n transactionId,\n network,\n baseUrl,\n logger\n );\n\n if (status.status === 'success') {\n if (logger) {\n logger.info('Registration confirmed successfully');\n }\n return true;\n }\n\n if (status.status === 'failed') {\n if (logger) {\n logger.error('Registration confirmation failed');\n }\n throw new Error('Registration confirmation failed');\n }\n\n if (logger) {\n logger.info(\n `Registration still pending. Waiting ${delayMs}ms before next attempt`\n );\n }\n await new Promise((resolve) => setTimeout(resolve, delayMs));\n attempts++;\n }\n\n if (logger) {\n logger.warn(`Registration not confirmed after ${maxAttempts} attempts`);\n }\n return false;\n }\n\n /**\n * Executes a registration request for an agent.\n *\n * @param accountId - The account ID of the agent to register.\n * @param network - The network to use for the registration.\n * @param baseUrl - The base URL of the guarded registry.\n * @param logger - The logger to use for logging.\n * @returns A promise that resolves to the registration result.\n */\n async executeRegistration(\n accountId: string,\n network: string = 'mainnet',\n baseUrl: string = 'https://moonscape.tech',\n logger?: Logger\n ): Promise<RegistrationResult> {\n try {\n if (logger) {\n logger.info('Registering agent with guarded registry');\n }\n\n try {\n const hcs11Client = new HCS11Client({\n network: network as 'mainnet' | 'testnet',\n auth: { operatorId: '0.0.0' },\n });\n logger?.info(\n `Fetching profile by account ID ${accountId} on ${network}`\n );\n await sleep(5000);\n const profileResult = await hcs11Client.fetchProfileByAccountId(\n accountId,\n network\n );\n logger?.info('Profile fetched', profileResult);\n\n if (profileResult?.error) {\n logger?.error('Error fetching profile', profileResult.error);\n return {\n error: profileResult.error,\n success: false,\n };\n }\n if (!profileResult?.success || !profileResult?.profile) {\n if (logger) {\n logger.error('Profile not found for agent registration');\n }\n return {\n error: 'Profile not found for the provided account ID',\n success: false,\n };\n }\n\n if (!profileResult.profile.inboundTopicId) {\n if (logger) {\n logger.error('Missing inbound topic ID in profile');\n }\n return {\n error: 'Profile is missing required inbound topic ID',\n success: false,\n };\n }\n\n if (!profileResult.profile.outboundTopicId) {\n if (logger) {\n logger.error('Missing outbound topic ID in profile');\n }\n return {\n error: 'Profile is missing required outbound topic ID',\n success: false,\n };\n }\n\n if (logger) {\n logger.info(\n `Profile validation successful. Inbound topic: ${profileResult.profile.inboundTopicId}, Outbound topic: ${profileResult.profile.outboundTopicId}`\n );\n }\n } catch (profileError: any) {\n if (logger) {\n logger.error(`Error validating profile: ${profileError.message}`);\n }\n return {\n error: `Error validating profile: ${profileError.message}`,\n success: false,\n };\n }\n\n const response = await fetch(`${baseUrl}/api/request-register`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Accept: '*/*',\n 'Accept-Language': 'en;q=0.5',\n Origin: baseUrl,\n Referer: `${baseUrl}/`,\n 'X-Network': network,\n },\n body: JSON.stringify({\n accountId,\n }),\n });\n\n const data = (await response.json()) as RegistrationsApiResponse;\n\n if (!response.ok) {\n if (data.details?.length > 0) {\n return {\n validationErrors: data.details,\n error: data.error || 'Validation failed',\n success: false,\n };\n }\n return {\n error: data.error || 'Failed to register agent',\n success: false,\n };\n }\n\n if (logger) {\n logger.info(\n `Created new registration request. Transaction ID: ${data.transaction_id}`\n );\n }\n\n return {\n transactionId: data.transaction_id,\n transaction: data.transaction,\n success: true,\n };\n } catch (error: any) {\n return {\n error: `Error during registration request: ${error.message}`,\n success: false,\n };\n }\n }\n\n /**\n * Finds registrations based on the provided options.\n *\n * @param options - The options for searching registrations.\n * @param baseUrl - The base URL of the guarded registry.\n * @returns A promise that resolves to the registration search result.\n */\n async findRegistrations(\n options: RegistrationSearchOptions = {},\n baseUrl: string = 'https://moonscape.tech'\n ): Promise<RegistrationSearchResult> {\n try {\n const queryParams = new URLSearchParams();\n options.tags?.forEach((tag) => queryParams.append('tags', tag));\n if (options.accountId) {\n queryParams.append('accountId', options.accountId);\n }\n if (options.network) {\n queryParams.append('network', options.network);\n }\n\n const response = await fetch(\n `${baseUrl}/api/registrations?${queryParams}`,\n {\n headers: {\n Accept: '*/*',\n 'Accept-Language': 'en;q=0.5',\n Origin: baseUrl,\n Referer: `${baseUrl}/`,\n },\n }\n );\n\n if (!response.ok) {\n const error = await response.text();\n return {\n registrations: [],\n error: error || 'Failed to fetch registrations',\n success: false,\n };\n }\n\n const data = (await response.json()) as RegistrationsApiResponse;\n if (data.error) {\n return {\n registrations: [],\n error: data.error,\n success: false,\n };\n }\n\n return {\n registrations: data.registrations || [],\n success: true,\n };\n } catch (e) {\n const error = e as Error;\n return {\n registrations: [],\n error: `Error fetching registrations: ${error.message}`,\n success: false,\n };\n }\n }\n}\n"],"names":[],"mappings":"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"}
@@ -1,21 +1,26 @@
1
- import { toUtf8Bytes, toUtf8String } from "./standards-sdk.es102.js";
2
- import { Typed } from "./standards-sdk.es100.js";
3
- import { DynamicBytesCoder } from "./standards-sdk.es86.js";
4
- class StringCoder extends DynamicBytesCoder {
5
- constructor(localName) {
6
- super("string", localName);
7
- }
8
- defaultValue() {
9
- return "";
10
- }
11
- encode(writer, _value) {
12
- return super.encode(writer, toUtf8Bytes(Typed.dereference(_value, "string")));
13
- }
14
- decode(reader) {
15
- return toUtf8String(super.decode(reader));
16
- }
1
+ import { keccak_256 } from "./standards-sdk.es110.js";
2
+ import { getBytes, hexlify } from "./standards-sdk.es92.js";
3
+ let locked = false;
4
+ const _keccak256 = function(data) {
5
+ return keccak_256(data);
6
+ };
7
+ let __keccak256 = _keccak256;
8
+ function keccak256(_data) {
9
+ const data = getBytes(_data, "data");
10
+ return hexlify(__keccak256(data));
17
11
  }
12
+ keccak256._ = _keccak256;
13
+ keccak256.lock = function() {
14
+ locked = true;
15
+ };
16
+ keccak256.register = function(func) {
17
+ if (locked) {
18
+ throw new TypeError("keccak256 is locked");
19
+ }
20
+ __keccak256 = func;
21
+ };
22
+ Object.freeze(keccak256);
18
23
  export {
19
- StringCoder
24
+ keccak256
20
25
  };
21
26
  //# sourceMappingURL=standards-sdk.es90.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es90.js","sources":["../../node_modules/ethers/lib.esm/abi/coders/string.js"],"sourcesContent":["import { toUtf8Bytes, toUtf8String } from \"../../utils/utf8.js\";\nimport { Typed } from \"../typed.js\";\nimport { DynamicBytesCoder } from \"./bytes.js\";\n/**\n * @_ignore\n */\nexport class StringCoder extends DynamicBytesCoder {\n constructor(localName) {\n super(\"string\", localName);\n }\n defaultValue() {\n return \"\";\n }\n encode(writer, _value) {\n return super.encode(writer, toUtf8Bytes(Typed.dereference(_value, \"string\")));\n }\n decode(reader) {\n return toUtf8String(super.decode(reader));\n }\n}\n//# sourceMappingURL=string.js.map"],"names":[],"mappings":";;;AAMO,MAAM,oBAAoB,kBAAkB;AAAA,EAC/C,YAAY,WAAW;AACnB,UAAM,UAAU,SAAS;AAAA,EACjC;AAAA,EACI,eAAe;AACX,WAAO;AAAA,EACf;AAAA,EACI,OAAO,QAAQ,QAAQ;AACnB,WAAO,MAAM,OAAO,QAAQ,YAAY,MAAM,YAAY,QAAQ,QAAQ,CAAC,CAAC;AAAA,EACpF;AAAA,EACI,OAAO,QAAQ;AACX,WAAO,aAAa,MAAM,OAAO,MAAM,CAAC;AAAA,EAChD;AACA;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"standards-sdk.es90.js","sources":["../../node_modules/ethers/lib.esm/crypto/keccak.js"],"sourcesContent":["/**\n * Cryptographic hashing functions\n *\n * @_subsection: api/crypto:Hash Functions [about-crypto-hashing]\n */\nimport { keccak_256 } from \"@noble/hashes/sha3\";\nimport { getBytes, hexlify } from \"../utils/index.js\";\nlet locked = false;\nconst _keccak256 = function (data) {\n return keccak_256(data);\n};\nlet __keccak256 = _keccak256;\n/**\n * Compute the cryptographic KECCAK256 hash of %%data%%.\n *\n * The %%data%% **must** be a data representation, to compute the\n * hash of UTF-8 data use the [[id]] function.\n *\n * @returns DataHexstring\n * @example:\n * keccak256(\"0x\")\n * //_result:\n *\n * keccak256(\"0x1337\")\n * //_result:\n *\n * keccak256(new Uint8Array([ 0x13, 0x37 ]))\n * //_result:\n *\n * // Strings are assumed to be DataHexString, otherwise it will\n * // throw. To hash UTF-8 data, see the note above.\n * keccak256(\"Hello World\")\n * //_error:\n */\nexport function keccak256(_data) {\n const data = getBytes(_data, \"data\");\n return hexlify(__keccak256(data));\n}\nkeccak256._ = _keccak256;\nkeccak256.lock = function () { locked = true; };\nkeccak256.register = function (func) {\n if (locked) {\n throw new TypeError(\"keccak256 is locked\");\n }\n __keccak256 = func;\n};\nObject.freeze(keccak256);\n//# sourceMappingURL=keccak.js.map"],"names":[],"mappings":";;AAOA,IAAI,SAAS;AACb,MAAM,aAAa,SAAU,MAAM;AAC/B,SAAO,WAAW,IAAI;AAC1B;AACA,IAAI,cAAc;AAuBX,SAAS,UAAU,OAAO;AAC7B,QAAM,OAAO,SAAS,OAAO,MAAM;AACnC,SAAO,QAAQ,YAAY,IAAI,CAAC;AACpC;AACA,UAAU,IAAI;AACd,UAAU,OAAO,WAAY;AAAE,WAAS;AAAO;AAC/C,UAAU,WAAW,SAAU,MAAM;AACjC,MAAI,QAAQ;AACR,UAAM,IAAI,UAAU,qBAAqB;AAAA,EACjD;AACI,gBAAc;AAClB;AACA,OAAO,OAAO,SAAS;","x_google_ignoreList":[0]}
@@ -1,64 +1,151 @@
1
- var __defProp = Object.defineProperty;
2
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
3
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
4
- import { defineProperties } from "./standards-sdk.es96.js";
5
- import { Typed } from "./standards-sdk.es100.js";
6
- import { Coder } from "./standards-sdk.es82.js";
7
- import { pack, unpack } from "./standards-sdk.es84.js";
8
- class TupleCoder extends Coder {
9
- constructor(coders, localName) {
10
- let dynamic = false;
11
- const types = [];
12
- coders.forEach((coder) => {
13
- if (coder.dynamic) {
14
- dynamic = true;
15
- }
16
- types.push(coder.type);
17
- });
18
- const type = "tuple(" + types.join(",") + ")";
19
- super("tuple", type, localName, dynamic);
20
- __publicField(this, "coders");
21
- defineProperties(this, { coders: Object.freeze(coders.slice()) });
1
+ import { version } from "./standards-sdk.es88.js";
2
+ import { defineProperties } from "./standards-sdk.es105.js";
3
+ function stringify(value) {
4
+ if (value == null) {
5
+ return "null";
22
6
  }
23
- defaultValue() {
24
- const values = [];
25
- this.coders.forEach((coder) => {
26
- values.push(coder.defaultValue());
27
- });
28
- const uniqueNames = this.coders.reduce((accum, coder) => {
29
- const name = coder.localName;
30
- if (name) {
31
- if (!accum[name]) {
32
- accum[name] = 0;
33
- }
34
- accum[name]++;
35
- }
36
- return accum;
37
- }, {});
38
- this.coders.forEach((coder, index) => {
39
- let name = coder.localName;
40
- if (!name || uniqueNames[name] !== 1) {
41
- return;
7
+ if (Array.isArray(value)) {
8
+ return "[ " + value.map(stringify).join(", ") + " ]";
9
+ }
10
+ if (value instanceof Uint8Array) {
11
+ const HEX = "0123456789abcdef";
12
+ let result = "0x";
13
+ for (let i = 0; i < value.length; i++) {
14
+ result += HEX[value[i] >> 4];
15
+ result += HEX[value[i] & 15];
16
+ }
17
+ return result;
18
+ }
19
+ if (typeof value === "object" && typeof value.toJSON === "function") {
20
+ return stringify(value.toJSON());
21
+ }
22
+ switch (typeof value) {
23
+ case "boolean":
24
+ case "symbol":
25
+ return value.toString();
26
+ case "bigint":
27
+ return BigInt(value).toString();
28
+ case "number":
29
+ return value.toString();
30
+ case "string":
31
+ return JSON.stringify(value);
32
+ case "object": {
33
+ const keys = Object.keys(value);
34
+ keys.sort();
35
+ return "{ " + keys.map((k) => `${stringify(k)}: ${stringify(value[k])}`).join(", ") + " }";
36
+ }
37
+ }
38
+ return `[ COULD NOT SERIALIZE ]`;
39
+ }
40
+ function isError(error, code) {
41
+ return error && error.code === code;
42
+ }
43
+ function makeError(message, code, info) {
44
+ let shortMessage = message;
45
+ {
46
+ const details = [];
47
+ if (info) {
48
+ if ("message" in info || "code" in info || "name" in info) {
49
+ throw new Error(`value will overwrite populated values: ${stringify(info)}`);
42
50
  }
43
- if (name === "length") {
44
- name = "_length";
51
+ for (const key in info) {
52
+ if (key === "shortMessage") {
53
+ continue;
54
+ }
55
+ const value = info[key];
56
+ details.push(key + "=" + stringify(value));
45
57
  }
46
- if (values[name] != null) {
47
- return;
58
+ }
59
+ details.push(`code=${code}`);
60
+ details.push(`version=${version}`);
61
+ if (details.length) {
62
+ message += " (" + details.join(", ") + ")";
63
+ }
64
+ }
65
+ let error;
66
+ switch (code) {
67
+ case "INVALID_ARGUMENT":
68
+ error = new TypeError(message);
69
+ break;
70
+ case "NUMERIC_FAULT":
71
+ case "BUFFER_OVERRUN":
72
+ error = new RangeError(message);
73
+ break;
74
+ default:
75
+ error = new Error(message);
76
+ }
77
+ defineProperties(error, { code });
78
+ if (info) {
79
+ Object.assign(error, info);
80
+ }
81
+ if (error.shortMessage == null) {
82
+ defineProperties(error, { shortMessage });
83
+ }
84
+ return error;
85
+ }
86
+ function assert(check, message, code, info) {
87
+ if (!check) {
88
+ throw makeError(message, code, info);
89
+ }
90
+ }
91
+ function assertArgument(check, message, name, value) {
92
+ assert(check, message, "INVALID_ARGUMENT", { argument: name, value });
93
+ }
94
+ function assertArgumentCount(count, expectedCount, message) {
95
+ if (message == null) {
96
+ message = "";
97
+ }
98
+ if (message) {
99
+ message = ": " + message;
100
+ }
101
+ assert(count >= expectedCount, "missing argument" + message, "MISSING_ARGUMENT", {
102
+ count,
103
+ expectedCount
104
+ });
105
+ assert(count <= expectedCount, "too many arguments" + message, "UNEXPECTED_ARGUMENT", {
106
+ count,
107
+ expectedCount
108
+ });
109
+ }
110
+ ["NFD", "NFC", "NFKD", "NFKC"].reduce((accum, form) => {
111
+ try {
112
+ if ("test".normalize(form) !== "test") {
113
+ throw new Error("bad");
114
+ }
115
+ ;
116
+ if (form === "NFD") {
117
+ const check = String.fromCharCode(233).normalize("NFD");
118
+ const expected = String.fromCharCode(101, 769);
119
+ if (check !== expected) {
120
+ throw new Error("broken");
48
121
  }
49
- values[name] = values[index];
50
- });
51
- return Object.freeze(values);
122
+ }
123
+ accum.push(form);
124
+ } catch (error) {
52
125
  }
53
- encode(writer, _value) {
54
- const value = Typed.dereference(_value, "tuple");
55
- return pack(writer, this.coders, value);
126
+ return accum;
127
+ }, []);
128
+ function assertPrivate(givenGuard, guard, className) {
129
+ if (className == null) {
130
+ className = "";
56
131
  }
57
- decode(reader) {
58
- return unpack(reader, this.coders);
132
+ if (givenGuard !== guard) {
133
+ let method = className, operation = "new";
134
+ if (className) {
135
+ method += ".";
136
+ operation += " " + className;
137
+ }
138
+ assert(false, `private constructor; use ${method}from* methods`, "UNSUPPORTED_OPERATION", {
139
+ operation
140
+ });
59
141
  }
60
142
  }
61
143
  export {
62
- TupleCoder
144
+ assert,
145
+ assertArgument,
146
+ assertArgumentCount,
147
+ assertPrivate,
148
+ isError,
149
+ makeError
63
150
  };
64
151
  //# sourceMappingURL=standards-sdk.es91.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"standards-sdk.es91.js","sources":["../../node_modules/ethers/lib.esm/abi/coders/tuple.js"],"sourcesContent":["import { defineProperties } from \"../../utils/properties.js\";\nimport { Typed } from \"../typed.js\";\nimport { Coder } from \"./abstract-coder.js\";\nimport { pack, unpack } from \"./array.js\";\n/**\n * @_ignore\n */\nexport class TupleCoder extends Coder {\n coders;\n constructor(coders, localName) {\n let dynamic = false;\n const types = [];\n coders.forEach((coder) => {\n if (coder.dynamic) {\n dynamic = true;\n }\n types.push(coder.type);\n });\n const type = (\"tuple(\" + types.join(\",\") + \")\");\n super(\"tuple\", type, localName, dynamic);\n defineProperties(this, { coders: Object.freeze(coders.slice()) });\n }\n defaultValue() {\n const values = [];\n this.coders.forEach((coder) => {\n values.push(coder.defaultValue());\n });\n // We only output named properties for uniquely named coders\n const uniqueNames = this.coders.reduce((accum, coder) => {\n const name = coder.localName;\n if (name) {\n if (!accum[name]) {\n accum[name] = 0;\n }\n accum[name]++;\n }\n return accum;\n }, {});\n // Add named values\n this.coders.forEach((coder, index) => {\n let name = coder.localName;\n if (!name || uniqueNames[name] !== 1) {\n return;\n }\n if (name === \"length\") {\n name = \"_length\";\n }\n if (values[name] != null) {\n return;\n }\n values[name] = values[index];\n });\n return Object.freeze(values);\n }\n encode(writer, _value) {\n const value = Typed.dereference(_value, \"tuple\");\n return pack(writer, this.coders, value);\n }\n decode(reader) {\n return unpack(reader, this.coders);\n }\n}\n//# sourceMappingURL=tuple.js.map"],"names":[],"mappings":";;;;;;;AAOO,MAAM,mBAAmB,MAAM;AAAA,EAElC,YAAY,QAAQ,WAAW;AAC3B,QAAI,UAAU;AACd,UAAM,QAAQ,CAAE;AAChB,WAAO,QAAQ,CAAC,UAAU;AACtB,UAAI,MAAM,SAAS;AACf,kBAAU;AAAA,MAC1B;AACY,YAAM,KAAK,MAAM,IAAI;AAAA,IACjC,CAAS;AACD,UAAM,OAAQ,WAAW,MAAM,KAAK,GAAG,IAAI;AAC3C,UAAM,SAAS,MAAM,WAAW,OAAO;AAX3C;AAYI,qBAAiB,MAAM,EAAE,QAAQ,OAAO,OAAO,OAAO,MAAO,CAAA,GAAG;AAAA,EACxE;AAAA,EACI,eAAe;AACX,UAAM,SAAS,CAAE;AACjB,SAAK,OAAO,QAAQ,CAAC,UAAU;AAC3B,aAAO,KAAK,MAAM,cAAc;AAAA,IAC5C,CAAS;AAED,UAAM,cAAc,KAAK,OAAO,OAAO,CAAC,OAAO,UAAU;AACrD,YAAM,OAAO,MAAM;AACnB,UAAI,MAAM;AACN,YAAI,CAAC,MAAM,IAAI,GAAG;AACd,gBAAM,IAAI,IAAI;AAAA,QAClC;AACgB,cAAM,IAAI;AAAA,MAC1B;AACY,aAAO;AAAA,IACV,GAAE,EAAE;AAEL,SAAK,OAAO,QAAQ,CAAC,OAAO,UAAU;AAClC,UAAI,OAAO,MAAM;AACjB,UAAI,CAAC,QAAQ,YAAY,IAAI,MAAM,GAAG;AAClC;AAAA,MAChB;AACY,UAAI,SAAS,UAAU;AACnB,eAAO;AAAA,MACvB;AACY,UAAI,OAAO,IAAI,KAAK,MAAM;AACtB;AAAA,MAChB;AACY,aAAO,IAAI,IAAI,OAAO,KAAK;AAAA,IACvC,CAAS;AACD,WAAO,OAAO,OAAO,MAAM;AAAA,EACnC;AAAA,EACI,OAAO,QAAQ,QAAQ;AACnB,UAAM,QAAQ,MAAM,YAAY,QAAQ,OAAO;AAC/C,WAAO,KAAK,QAAQ,KAAK,QAAQ,KAAK;AAAA,EAC9C;AAAA,EACI,OAAO,QAAQ;AACX,WAAO,OAAO,QAAQ,KAAK,MAAM;AAAA,EACzC;AACA;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"standards-sdk.es91.js","sources":["../../node_modules/ethers/lib.esm/utils/errors.js"],"sourcesContent":["/**\n * All errors in ethers include properties to ensure they are both\n * human-readable (i.e. ``.message``) and machine-readable (i.e. ``.code``).\n *\n * The [[isError]] function can be used to check the error ``code`` and\n * provide a type guard for the properties present on that error interface.\n *\n * @_section: api/utils/errors:Errors [about-errors]\n */\nimport { version } from \"../_version.js\";\nimport { defineProperties } from \"./properties.js\";\nfunction stringify(value) {\n if (value == null) {\n return \"null\";\n }\n if (Array.isArray(value)) {\n return \"[ \" + (value.map(stringify)).join(\", \") + \" ]\";\n }\n if (value instanceof Uint8Array) {\n const HEX = \"0123456789abcdef\";\n let result = \"0x\";\n for (let i = 0; i < value.length; i++) {\n result += HEX[value[i] >> 4];\n result += HEX[value[i] & 0xf];\n }\n return result;\n }\n if (typeof (value) === \"object\" && typeof (value.toJSON) === \"function\") {\n return stringify(value.toJSON());\n }\n switch (typeof (value)) {\n case \"boolean\":\n case \"symbol\":\n return value.toString();\n case \"bigint\":\n return BigInt(value).toString();\n case \"number\":\n return (value).toString();\n case \"string\":\n return JSON.stringify(value);\n case \"object\": {\n const keys = Object.keys(value);\n keys.sort();\n return \"{ \" + keys.map((k) => `${stringify(k)}: ${stringify(value[k])}`).join(\", \") + \" }\";\n }\n }\n return `[ COULD NOT SERIALIZE ]`;\n}\n/**\n * Returns true if the %%error%% matches an error thrown by ethers\n * that matches the error %%code%%.\n *\n * In TypeScript environments, this can be used to check that %%error%%\n * matches an EthersError type, which means the expected properties will\n * be set.\n *\n * @See [ErrorCodes](api:ErrorCode)\n * @example\n * try {\n * // code....\n * } catch (e) {\n * if (isError(e, \"CALL_EXCEPTION\")) {\n * // The Type Guard has validated this object\n * console.log(e.data);\n * }\n * }\n */\nexport function isError(error, code) {\n return (error && error.code === code);\n}\n/**\n * Returns true if %%error%% is a [[CallExceptionError].\n */\nexport function isCallException(error) {\n return isError(error, \"CALL_EXCEPTION\");\n}\n/**\n * Returns a new Error configured to the format ethers emits errors, with\n * the %%message%%, [[api:ErrorCode]] %%code%% and additional properties\n * for the corresponding EthersError.\n *\n * Each error in ethers includes the version of ethers, a\n * machine-readable [[ErrorCode]], and depending on %%code%%, additional\n * required properties. The error message will also include the %%message%%,\n * ethers version, %%code%% and all additional properties, serialized.\n */\nexport function makeError(message, code, info) {\n let shortMessage = message;\n {\n const details = [];\n if (info) {\n if (\"message\" in info || \"code\" in info || \"name\" in info) {\n throw new Error(`value will overwrite populated values: ${stringify(info)}`);\n }\n for (const key in info) {\n if (key === \"shortMessage\") {\n continue;\n }\n const value = (info[key]);\n // try {\n details.push(key + \"=\" + stringify(value));\n // } catch (error: any) {\n // console.log(\"MMM\", error.message);\n // details.push(key + \"=[could not serialize object]\");\n // }\n }\n }\n details.push(`code=${code}`);\n details.push(`version=${version}`);\n if (details.length) {\n message += \" (\" + details.join(\", \") + \")\";\n }\n }\n let error;\n switch (code) {\n case \"INVALID_ARGUMENT\":\n error = new TypeError(message);\n break;\n case \"NUMERIC_FAULT\":\n case \"BUFFER_OVERRUN\":\n error = new RangeError(message);\n break;\n default:\n error = new Error(message);\n }\n defineProperties(error, { code });\n if (info) {\n Object.assign(error, info);\n }\n if (error.shortMessage == null) {\n defineProperties(error, { shortMessage });\n }\n return error;\n}\n/**\n * Throws an EthersError with %%message%%, %%code%% and additional error\n * %%info%% when %%check%% is falsish..\n *\n * @see [[api:makeError]]\n */\nexport function assert(check, message, code, info) {\n if (!check) {\n throw makeError(message, code, info);\n }\n}\n/**\n * A simple helper to simply ensuring provided arguments match expected\n * constraints, throwing if not.\n *\n * In TypeScript environments, the %%check%% has been asserted true, so\n * any further code does not need additional compile-time checks.\n */\nexport function assertArgument(check, message, name, value) {\n assert(check, message, \"INVALID_ARGUMENT\", { argument: name, value: value });\n}\nexport function assertArgumentCount(count, expectedCount, message) {\n if (message == null) {\n message = \"\";\n }\n if (message) {\n message = \": \" + message;\n }\n assert(count >= expectedCount, \"missing argument\" + message, \"MISSING_ARGUMENT\", {\n count: count,\n expectedCount: expectedCount\n });\n assert(count <= expectedCount, \"too many arguments\" + message, \"UNEXPECTED_ARGUMENT\", {\n count: count,\n expectedCount: expectedCount\n });\n}\nconst _normalizeForms = [\"NFD\", \"NFC\", \"NFKD\", \"NFKC\"].reduce((accum, form) => {\n try {\n // General test for normalize\n /* c8 ignore start */\n if (\"test\".normalize(form) !== \"test\") {\n throw new Error(\"bad\");\n }\n ;\n /* c8 ignore stop */\n if (form === \"NFD\") {\n const check = String.fromCharCode(0xe9).normalize(\"NFD\");\n const expected = String.fromCharCode(0x65, 0x0301);\n /* c8 ignore start */\n if (check !== expected) {\n throw new Error(\"broken\");\n }\n /* c8 ignore stop */\n }\n accum.push(form);\n }\n catch (error) { }\n return accum;\n}, []);\n/**\n * Throws if the normalization %%form%% is not supported.\n */\nexport function assertNormalize(form) {\n assert(_normalizeForms.indexOf(form) >= 0, \"platform missing String.prototype.normalize\", \"UNSUPPORTED_OPERATION\", {\n operation: \"String.prototype.normalize\", info: { form }\n });\n}\n/**\n * Many classes use file-scoped values to guard the constructor,\n * making it effectively private. This facilitates that pattern\n * by ensuring the %%givenGaurd%% matches the file-scoped %%guard%%,\n * throwing if not, indicating the %%className%% if provided.\n */\nexport function assertPrivate(givenGuard, guard, className) {\n if (className == null) {\n className = \"\";\n }\n if (givenGuard !== guard) {\n let method = className, operation = \"new\";\n if (className) {\n method += \".\";\n operation += \" \" + className;\n }\n assert(false, `private constructor; use ${method}from* methods`, \"UNSUPPORTED_OPERATION\", {\n operation\n });\n }\n}\n//# sourceMappingURL=errors.js.map"],"names":[],"mappings":"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","x_google_ignoreList":[0]}