@akashnetwork/chain-sdk 1.0.0-alpha.24 → 1.0.0-alpha.25

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 (176) hide show
  1. package/README.md +25 -0
  2. package/dist/cjs/generated/createCosmosSDK.cjs +237 -237
  3. package/dist/cjs/generated/createCosmosSDK.cjs.map +2 -2
  4. package/dist/cjs/generated/createIbc-goSDK.cjs +91 -91
  5. package/dist/cjs/generated/createIbc-goSDK.cjs.map +2 -2
  6. package/dist/cjs/generated/createNodeSDK.cjs +68 -61
  7. package/dist/cjs/generated/createNodeSDK.cjs.map +2 -2
  8. package/dist/cjs/generated/createProviderSDK.cjs +18 -11
  9. package/dist/cjs/generated/createProviderSDK.cjs.map +2 -2
  10. package/dist/cjs/generated/patches/providerCustomTypePatches.cjs +34 -0
  11. package/dist/cjs/generated/patches/providerCustomTypePatches.cjs.map +7 -0
  12. package/dist/cjs/generated/patches/providerPatchMessage.cjs +38 -0
  13. package/dist/cjs/generated/patches/providerPatchMessage.cjs.map +7 -0
  14. package/dist/cjs/generated/protos/akash/bme/v1/filters.cjs +125 -0
  15. package/dist/cjs/generated/protos/akash/bme/v1/filters.cjs.map +7 -0
  16. package/dist/cjs/generated/protos/akash/bme/v1/params.cjs +26 -10
  17. package/dist/cjs/generated/protos/akash/bme/v1/params.cjs.map +2 -2
  18. package/dist/cjs/generated/protos/akash/bme/v1/query.cjs +233 -0
  19. package/dist/cjs/generated/protos/akash/bme/v1/query.cjs.map +2 -2
  20. package/dist/cjs/generated/protos/akash/bme/v1/query_akash.cjs +9 -0
  21. package/dist/cjs/generated/protos/akash/bme/v1/query_akash.cjs.map +2 -2
  22. package/dist/cjs/generated/protos/akash/manifest/v2beta3/service.cjs +67 -2
  23. package/dist/cjs/generated/protos/akash/manifest/v2beta3/service.cjs.map +2 -2
  24. package/dist/cjs/generated/protos/akash/market/v1beta5/params.cjs +17 -2
  25. package/dist/cjs/generated/protos/akash/market/v1beta5/params.cjs.map +2 -2
  26. package/dist/cjs/generated/protos/akash/market/v1beta5/resourcesoffer.cjs +266 -3
  27. package/dist/cjs/generated/protos/akash/market/v1beta5/resourcesoffer.cjs.map +2 -2
  28. package/dist/cjs/generated/protos/akash/oracle/v1/params.cjs +53 -1
  29. package/dist/cjs/generated/protos/akash/oracle/v1/params.cjs.map +2 -2
  30. package/dist/cjs/generated/protos/akash/provider/v1/service_akash.cjs +9 -0
  31. package/dist/cjs/generated/protos/akash/provider/v1/service_akash.cjs.map +2 -2
  32. package/dist/cjs/generated/protos/akash/provider/v1/validation.cjs +195 -0
  33. package/dist/cjs/generated/protos/akash/provider/v1/validation.cjs.map +7 -0
  34. package/dist/cjs/generated/protos/google/protobuf/descriptor.cjs +6 -0
  35. package/dist/cjs/generated/protos/google/protobuf/descriptor.cjs.map +2 -2
  36. package/dist/cjs/generated/protos/index.akash.v1.cjs +11 -5
  37. package/dist/cjs/generated/protos/index.akash.v1.cjs.map +3 -3
  38. package/dist/cjs/generated/protos/index.akash.v1beta5.cjs +4 -1
  39. package/dist/cjs/generated/protos/index.akash.v1beta5.cjs.map +2 -2
  40. package/dist/cjs/generated/protos/index.provider.akash.v1.cjs +3 -0
  41. package/dist/cjs/generated/protos/index.provider.akash.v1.cjs.map +2 -2
  42. package/dist/cjs/generated/protos/index.provider.akash.v2beta3.cjs +1 -0
  43. package/dist/cjs/generated/protos/index.provider.akash.v2beta3.cjs.map +2 -2
  44. package/dist/cjs/sdk/chain/createChainNodeSDK.cjs +2 -1
  45. package/dist/cjs/sdk/chain/createChainNodeSDK.cjs.map +2 -2
  46. package/dist/cjs/sdk/chain/createChainNodeWebSDK.cjs +2 -1
  47. package/dist/cjs/sdk/chain/createChainNodeWebSDK.cjs.map +2 -2
  48. package/dist/cjs/sdk/chain/helpers.cjs +56 -0
  49. package/dist/cjs/sdk/chain/helpers.cjs.map +7 -0
  50. package/dist/cjs/sdk/client/sdkMetadata.cjs.map +2 -2
  51. package/dist/cjs/sdk/index.cjs.map +2 -2
  52. package/dist/cjs/sdk/index.shared.cjs +4 -1
  53. package/dist/cjs/sdk/index.shared.cjs.map +2 -2
  54. package/dist/cjs/sdk/index.web.cjs.map +2 -2
  55. package/dist/cjs/sdk/transport/tx/createTxTransport.cjs +1 -1
  56. package/dist/cjs/sdk/transport/tx/createTxTransport.cjs.map +2 -2
  57. package/dist/cjs/sdl/manifest/generateManifest.cjs +8 -6
  58. package/dist/cjs/sdl/manifest/generateManifest.cjs.map +2 -2
  59. package/dist/cjs/sdl/manifest/generateManifestVersion.cjs.map +2 -2
  60. package/dist/cjs/sdl/manifest/manifestUtils.cjs +16 -9
  61. package/dist/cjs/sdl/manifest/manifestUtils.cjs.map +2 -2
  62. package/dist/cjs/utils/yaml.cjs +10 -3
  63. package/dist/cjs/utils/yaml.cjs.map +2 -2
  64. package/dist/esm/{chunk-BYQF33C6.js → chunk-5YIS3XNX.js} +2 -2
  65. package/dist/esm/{chunk-JISXXX24.js → chunk-6CIH635G.js} +2 -2
  66. package/dist/esm/{chunk-GUNMCW7A.js → chunk-BWGYKJLS.js} +2 -2
  67. package/dist/esm/{chunk-MQPC6TDF.js → chunk-C3DBWOZD.js} +53 -1
  68. package/dist/esm/{chunk-MQPC6TDF.js.map → chunk-C3DBWOZD.js.map} +2 -2
  69. package/dist/esm/{chunk-TCVGOF7L.js → chunk-DJASDN6A.js} +2 -2
  70. package/dist/esm/{chunk-5DCYIWCG.js → chunk-E76SLJJ3.js} +3 -1
  71. package/dist/esm/{chunk-4D3QNKFB.js → chunk-EKFJV4QU.js} +6 -4
  72. package/dist/esm/{chunk-4D3QNKFB.js.map → chunk-EKFJV4QU.js.map} +1 -1
  73. package/dist/esm/{chunk-XFCN5LRY.js → chunk-H5WUFEMM.js} +2 -2
  74. package/dist/esm/{chunk-YSMDEW4E.js → chunk-JZTFWLSX.js} +178 -2
  75. package/dist/esm/{chunk-YSMDEW4E.js.map → chunk-JZTFWLSX.js.map} +4 -4
  76. package/dist/esm/{chunk-C7UQYVYH.js → chunk-KFWTFROT.js} +21 -79
  77. package/dist/esm/chunk-KFWTFROT.js.map +7 -0
  78. package/dist/esm/{chunk-IZQCYKLD.js → chunk-LGAXM6RX.js} +27 -11
  79. package/dist/esm/chunk-LGAXM6RX.js.map +7 -0
  80. package/dist/esm/{chunk-VRE72ZD5.js → chunk-M2ZK7HEC.js} +69 -4
  81. package/dist/esm/chunk-M2ZK7HEC.js.map +7 -0
  82. package/dist/esm/{chunk-Z5KZUB7X.js → chunk-MVADLHLI.js} +2 -2
  83. package/dist/esm/chunk-OL4JUIQC.js +702 -0
  84. package/dist/esm/chunk-OL4JUIQC.js.map +7 -0
  85. package/dist/esm/{chunk-5YECXI3P.js → chunk-RUC3LXDX.js} +2 -2
  86. package/dist/esm/{chunk-SA4SEZ6F.js → chunk-TXQ2BR6G.js} +5 -3
  87. package/dist/esm/{chunk-SA4SEZ6F.js.map → chunk-TXQ2BR6G.js.map} +1 -1
  88. package/dist/esm/{chunk-IJSLZIPC.js → chunk-UFJRY3ID.js} +2 -2
  89. package/dist/esm/chunk-Y7JCYDLU.js +346 -0
  90. package/dist/esm/chunk-Y7JCYDLU.js.map +7 -0
  91. package/dist/esm/{chunk-RON4KFMD.js → chunk-ZQDAXUFL.js} +6 -1
  92. package/dist/esm/chunk-ZQDAXUFL.js.map +7 -0
  93. package/dist/esm/{chunk-RIIYZIXM.js → chunk-ZRM47VCZ.js} +398 -338
  94. package/dist/esm/{chunk-RIIYZIXM.js.map → chunk-ZRM47VCZ.js.map} +4 -4
  95. package/dist/esm/generated/protos/index.akash.v1.js +18 -8
  96. package/dist/esm/generated/protos/index.akash.v1.js.map +1 -1
  97. package/dist/esm/generated/protos/index.akash.v1beta4.js +5 -5
  98. package/dist/esm/generated/protos/index.akash.v1beta5.js +16 -8
  99. package/dist/esm/generated/protos/index.akash.v1beta5.js.map +1 -1
  100. package/dist/esm/generated/protos/index.cosmos.v1.js +1 -1
  101. package/dist/esm/generated/protos/index.provider.akash.v1.js +10 -4
  102. package/dist/esm/generated/protos/index.provider.akash.v2beta3.js +4 -2
  103. package/dist/esm/index.js +33 -21
  104. package/dist/esm/index.js.map +2 -2
  105. package/dist/esm/index.web.js +13 -8
  106. package/dist/esm/index.web.js.map +2 -2
  107. package/dist/esm/{query_akash-RGYTHUNZ.js → query_akash-745M5I3X.js} +3 -3
  108. package/dist/esm/{query_akash-N2BNNOTD.js → query_akash-EHAEDYOH.js} +15 -3
  109. package/dist/esm/query_akash-EHAEDYOH.js.map +7 -0
  110. package/dist/esm/{query_akash-DJ7LTLRE.js → query_akash-FYNRLU72.js} +6 -5
  111. package/dist/esm/{query_akash-DJ7LTLRE.js.map → query_akash-FYNRLU72.js.map} +1 -1
  112. package/dist/esm/{query_akash-4CTLBKZR.js → query_akash-LW3YJGS6.js} +4 -4
  113. package/dist/esm/{reflection_akash-WUBSNT7I.js → reflection_akash-YHEVUIB6.js} +2 -2
  114. package/dist/esm/{service_akash-KPU6LPVP.js → service_akash-2VS4VW6P.js} +3 -3
  115. package/dist/esm/{service_akash-AZFAYT7H.js → service_akash-5JSE44LJ.js} +4 -4
  116. package/dist/esm/{service_akash-VMU3LNBA.js → service_akash-FI6WXDZP.js} +4 -4
  117. package/dist/esm/{service_akash-WRGOVR7I.js → service_akash-QEN5EQUY.js} +5 -4
  118. package/dist/esm/{service_akash-WRGOVR7I.js.map → service_akash-QEN5EQUY.js.map} +1 -1
  119. package/dist/esm/{service_akash-CQVYVSHE.js → service_akash-UDPD4GFX.js} +18 -2
  120. package/dist/esm/service_akash-UDPD4GFX.js.map +7 -0
  121. package/dist/esm/{service_akash-RQDCQLQH.js → service_akash-VFDQVHZD.js} +3 -3
  122. package/dist/tsconfig.build.tsbuildinfo +1 -1
  123. package/dist/types/generated/createNodeSDK.d.ts +11 -0
  124. package/dist/types/generated/createProviderSDK.d.ts +11 -0
  125. package/dist/types/generated/patches/providerCustomTypePatches.d.ts +7 -0
  126. package/dist/types/generated/patches/providerPatchMessage.d.ts +2 -0
  127. package/dist/types/generated/protos/akash/bme/v1/filters.d.ts +17 -0
  128. package/dist/types/generated/protos/akash/bme/v1/params.d.ts +6 -1
  129. package/dist/types/generated/protos/akash/bme/v1/query.d.ts +31 -1
  130. package/dist/types/generated/protos/akash/bme/v1/query_akash.d.ts +8 -1
  131. package/dist/types/generated/protos/akash/manifest/v2beta3/service.d.ts +10 -0
  132. package/dist/types/generated/protos/akash/market/v1beta5/params.d.ts +6 -1
  133. package/dist/types/generated/protos/akash/market/v1beta5/resourcesoffer.d.ts +91 -0
  134. package/dist/types/generated/protos/akash/oracle/v1/params.d.ts +14 -0
  135. package/dist/types/generated/protos/akash/provider/v1/service_akash.d.ts +7 -0
  136. package/dist/types/generated/protos/akash/provider/v1/validation.d.ts +30 -0
  137. package/dist/types/generated/protos/google/protobuf/descriptor.d.ts +2 -0
  138. package/dist/types/generated/protos/index.akash.v1.d.ts +3 -2
  139. package/dist/types/generated/protos/index.akash.v1beta5.d.ts +1 -1
  140. package/dist/types/generated/protos/index.provider.akash.v1.d.ts +1 -0
  141. package/dist/types/generated/protos/index.provider.akash.v2beta3.d.ts +1 -1
  142. package/dist/types/sdk/chain/createChainNodeSDK.d.ts +3 -0
  143. package/dist/types/sdk/chain/createChainNodeWebSDK.d.ts +3 -0
  144. package/dist/types/sdk/chain/helpers.d.ts +14 -0
  145. package/dist/types/sdk/client/sdkMetadata.d.ts +5 -2
  146. package/dist/types/sdk/index.d.ts +2 -0
  147. package/dist/types/sdk/index.shared.d.ts +2 -0
  148. package/dist/types/sdk/index.web.d.ts +2 -0
  149. package/dist/types/sdl/manifest/generateManifest.d.ts +3 -3
  150. package/dist/types/sdl/manifest/generateManifestVersion.d.ts +2 -2
  151. package/dist/types/utils/yaml.d.ts +3 -0
  152. package/package.json +1 -1
  153. package/dist/esm/chunk-C7UQYVYH.js.map +0 -7
  154. package/dist/esm/chunk-IZQCYKLD.js.map +0 -7
  155. package/dist/esm/chunk-RON4KFMD.js.map +0 -7
  156. package/dist/esm/chunk-VRE72ZD5.js.map +0 -7
  157. package/dist/esm/chunk-XPIWBE65.js +0 -362
  158. package/dist/esm/chunk-XPIWBE65.js.map +0 -7
  159. package/dist/esm/query_akash-N2BNNOTD.js.map +0 -7
  160. package/dist/esm/service_akash-CQVYVSHE.js.map +0 -7
  161. /package/dist/esm/{chunk-BYQF33C6.js.map → chunk-5YIS3XNX.js.map} +0 -0
  162. /package/dist/esm/{chunk-JISXXX24.js.map → chunk-6CIH635G.js.map} +0 -0
  163. /package/dist/esm/{chunk-GUNMCW7A.js.map → chunk-BWGYKJLS.js.map} +0 -0
  164. /package/dist/esm/{chunk-TCVGOF7L.js.map → chunk-DJASDN6A.js.map} +0 -0
  165. /package/dist/esm/{chunk-5DCYIWCG.js.map → chunk-E76SLJJ3.js.map} +0 -0
  166. /package/dist/esm/{chunk-XFCN5LRY.js.map → chunk-H5WUFEMM.js.map} +0 -0
  167. /package/dist/esm/{chunk-Z5KZUB7X.js.map → chunk-MVADLHLI.js.map} +0 -0
  168. /package/dist/esm/{chunk-5YECXI3P.js.map → chunk-RUC3LXDX.js.map} +0 -0
  169. /package/dist/esm/{chunk-IJSLZIPC.js.map → chunk-UFJRY3ID.js.map} +0 -0
  170. /package/dist/esm/{query_akash-RGYTHUNZ.js.map → query_akash-745M5I3X.js.map} +0 -0
  171. /package/dist/esm/{query_akash-4CTLBKZR.js.map → query_akash-LW3YJGS6.js.map} +0 -0
  172. /package/dist/esm/{reflection_akash-WUBSNT7I.js.map → reflection_akash-YHEVUIB6.js.map} +0 -0
  173. /package/dist/esm/{service_akash-KPU6LPVP.js.map → service_akash-2VS4VW6P.js.map} +0 -0
  174. /package/dist/esm/{service_akash-AZFAYT7H.js.map → service_akash-5JSE44LJ.js.map} +0 -0
  175. /package/dist/esm/{service_akash-VMU3LNBA.js.map → service_akash-FI6WXDZP.js.map} +0 -0
  176. /package/dist/esm/{service_akash-RQDCQLQH.js.map → service_akash-VFDQVHZD.js.map} +0 -0
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/sdl/manifest/generateManifestVersion.ts"],
4
- "sourcesContent": ["import { default as stableStringify } from \"json-stable-stringify\";\n\nimport type { Manifest } from \"./generateManifest.ts\";\n\nconst decoder = new TextDecoder();\nconst encoder = new TextEncoder();\nconst NULLABLE_MANIFEST_KEYS = new Set([\"command\", \"args\", \"env\", \"hosts\"]);\nconst OMITTED_MANIFEST_KEYS = new Set([\"kind\", \"attributes\"]);\n\nexport async function generateManifestVersion(manifest: Manifest): Promise<Uint8Array> {\n const jsonStr = manifestToSortedJSON(manifest);\n const sortedBytes = encoder.encode(jsonStr);\n const sum = await crypto.subtle.digest(\"SHA-256\", sortedBytes);\n return new Uint8Array(sum);\n}\n\nexport function manifestToSortedJSON(manifest: Manifest): string {\n const json = stableStringify(manifest, { replacer: manifestReplacer }) || \"\";\n return escapeHtml(renameFields(json));\n}\n\nfunction manifestReplacer(this: unknown, key: string | number, value: unknown): unknown {\n if (value && value instanceof Uint8Array) {\n return decoder.decode(value);\n }\n\n if (typeof key !== \"string\") {\n return value;\n }\n\n // only top-level \"credentials\" field can be null, credentials in params should be omitted\n if (typeof this === \"object\" && this && Object.hasOwn(this, \"command\") && key === \"credentials\" && value == null) {\n return null;\n }\n\n if (NULLABLE_MANIFEST_KEYS.has(key) && ((Array.isArray(value) && value.length === 0) || value == null)) {\n return null;\n }\n\n if (OMITTED_MANIFEST_KEYS.has(key) && ((Array.isArray(value) && value.length === 0) || value === 0)) {\n return undefined;\n }\n\n return value;\n}\n\nconst MANIFEST_VERSION_FIELD_MAPPING: Record<string, string> = { quantity: \"size\", sequenceNumber: \"sequence_number\" };\nconst MANIFEST_VERSION_FIELD_REGEX = new RegExp(`\"(${Object.keys(MANIFEST_VERSION_FIELD_MAPPING).join(\"|\")})\":`, \"g\");\nfunction renameFields(jsonStr: string): string {\n MANIFEST_VERSION_FIELD_REGEX.lastIndex = 0; // reset regex state\n return jsonStr.replace(MANIFEST_VERSION_FIELD_REGEX, (_, field) => `\"${MANIFEST_VERSION_FIELD_MAPPING[field]}\":`);\n}\n\nconst htmlEscapes: Record<string, string> = {\n \"<\": \"\\\\u003c\",\n \">\": \"\\\\u003e\",\n \"&\": \"\\\\u0026\",\n};\n\nconst HTML_SPECIAL_CHARS_REGEX = new RegExp(`[${Object.keys(htmlEscapes).join(\"\")}]`, \"g\");\nfunction escapeHtml(raw: string): string {\n HTML_SPECIAL_CHARS_REGEX.lastIndex = 0; // reset regex state\n return raw.replace(HTML_SPECIAL_CHARS_REGEX, (ch) => htmlEscapes[ch]);\n}\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAA2C;AAI3C,MAAM,UAAU,IAAI,YAAY;AAChC,MAAM,UAAU,IAAI,YAAY;AAChC,MAAM,yBAAyB,oBAAI,IAAI,CAAC,WAAW,QAAQ,OAAO,OAAO,CAAC;AAC1E,MAAM,wBAAwB,oBAAI,IAAI,CAAC,QAAQ,YAAY,CAAC;AAE5D,eAAsB,wBAAwB,UAAyC;AACrF,QAAM,UAAU,qBAAqB,QAAQ;AAC7C,QAAM,cAAc,QAAQ,OAAO,OAAO;AAC1C,QAAM,MAAM,MAAM,OAAO,OAAO,OAAO,WAAW,WAAW;AAC7D,SAAO,IAAI,WAAW,GAAG;AAC3B;AAEO,SAAS,qBAAqB,UAA4B;AAC/D,QAAM,WAAO,6BAAAA,SAAgB,UAAU,EAAE,UAAU,iBAAiB,CAAC,KAAK;AAC1E,SAAO,WAAW,aAAa,IAAI,CAAC;AACtC;AAEA,SAAS,iBAAgC,KAAsB,OAAyB;AACtF,MAAI,SAAS,iBAAiB,YAAY;AACxC,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC7B;AAEA,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,SAAS,YAAY,QAAQ,OAAO,OAAO,MAAM,SAAS,KAAK,QAAQ,iBAAiB,SAAS,MAAM;AAChH,WAAO;AAAA,EACT;AAEA,MAAI,uBAAuB,IAAI,GAAG,MAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,KAAM,SAAS,OAAO;AACtG,WAAO;AAAA,EACT;AAEA,MAAI,sBAAsB,IAAI,GAAG,MAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,KAAM,UAAU,IAAI;AACnG,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,MAAM,iCAAyD,EAAE,UAAU,QAAQ,gBAAgB,kBAAkB;AACrH,MAAM,+BAA+B,IAAI,OAAO,KAAK,OAAO,KAAK,8BAA8B,EAAE,KAAK,GAAG,CAAC,OAAO,GAAG;AACpH,SAAS,aAAa,SAAyB;AAC7C,+BAA6B,YAAY;AACzC,SAAO,QAAQ,QAAQ,8BAA8B,CAAC,GAAG,UAAU,IAAI,+BAA+B,KAAK,CAAC,IAAI;AAClH;AAEA,MAAM,cAAsC;AAAA,EAC1C,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAEA,MAAM,2BAA2B,IAAI,OAAO,IAAI,OAAO,KAAK,WAAW,EAAE,KAAK,EAAE,CAAC,KAAK,GAAG;AACzF,SAAS,WAAW,KAAqB;AACvC,2BAAyB,YAAY;AACrC,SAAO,IAAI,QAAQ,0BAA0B,CAAC,OAAO,YAAY,EAAE,CAAC;AACtE;",
4
+ "sourcesContent": ["import { default as stableStringify } from \"json-stable-stringify\";\n\nimport type { GenerateManifestOkResult, Manifest } from \"./generateManifest.ts\";\n\nconst decoder = new TextDecoder();\nconst encoder = new TextEncoder();\nconst NULLABLE_MANIFEST_KEYS = new Set([\"command\", \"args\", \"env\", \"hosts\"]);\nconst OMITTED_MANIFEST_KEYS = new Set([\"kind\", \"attributes\"]);\n\nexport async function generateManifestVersion(manifest: Manifest): Promise<Uint8Array> {\n const jsonStr = manifestToSortedJSON(manifest);\n const sortedBytes = encoder.encode(jsonStr);\n const sum = await crypto.subtle.digest(\"SHA-256\", sortedBytes);\n return new Uint8Array(sum);\n}\n\nexport function manifestToSortedJSON(manifest: Manifest | GenerateManifestOkResult[\"groupSpecs\"]): string {\n const json = stableStringify(manifest, { replacer: manifestReplacer }) || \"\";\n return escapeHtml(renameFields(json));\n}\n\nfunction manifestReplacer(this: unknown, key: string | number, value: unknown): unknown {\n if (value && value instanceof Uint8Array) {\n return decoder.decode(value);\n }\n\n if (typeof key !== \"string\") {\n return value;\n }\n\n // only top-level \"credentials\" field can be null, credentials in params should be omitted\n if (typeof this === \"object\" && this && Object.hasOwn(this, \"command\") && key === \"credentials\" && value == null) {\n return null;\n }\n\n if (NULLABLE_MANIFEST_KEYS.has(key) && ((Array.isArray(value) && value.length === 0) || value == null)) {\n return null;\n }\n\n if (OMITTED_MANIFEST_KEYS.has(key) && ((Array.isArray(value) && value.length === 0) || value === 0)) {\n return undefined;\n }\n\n return value;\n}\n\nconst MANIFEST_VERSION_FIELD_MAPPING: Record<string, string> = { quantity: \"size\", sequenceNumber: \"sequence_number\" };\nconst MANIFEST_VERSION_FIELD_REGEX = new RegExp(`\"(${Object.keys(MANIFEST_VERSION_FIELD_MAPPING).join(\"|\")})\":`, \"g\");\nfunction renameFields(jsonStr: string): string {\n MANIFEST_VERSION_FIELD_REGEX.lastIndex = 0; // reset regex state\n return jsonStr.replace(MANIFEST_VERSION_FIELD_REGEX, (_, field) => `\"${MANIFEST_VERSION_FIELD_MAPPING[field]}\":`);\n}\n\nconst htmlEscapes: Record<string, string> = {\n \"<\": \"\\\\u003c\",\n \">\": \"\\\\u003e\",\n \"&\": \"\\\\u0026\",\n};\n\nconst HTML_SPECIAL_CHARS_REGEX = new RegExp(`[${Object.keys(htmlEscapes).join(\"\")}]`, \"g\");\nfunction escapeHtml(raw: string): string {\n HTML_SPECIAL_CHARS_REGEX.lastIndex = 0; // reset regex state\n return raw.replace(HTML_SPECIAL_CHARS_REGEX, (ch) => htmlEscapes[ch]);\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mCAA2C;AAI3C,MAAM,UAAU,IAAI,YAAY;AAChC,MAAM,UAAU,IAAI,YAAY;AAChC,MAAM,yBAAyB,oBAAI,IAAI,CAAC,WAAW,QAAQ,OAAO,OAAO,CAAC;AAC1E,MAAM,wBAAwB,oBAAI,IAAI,CAAC,QAAQ,YAAY,CAAC;AAE5D,eAAsB,wBAAwB,UAAyC;AACrF,QAAM,UAAU,qBAAqB,QAAQ;AAC7C,QAAM,cAAc,QAAQ,OAAO,OAAO;AAC1C,QAAM,MAAM,MAAM,OAAO,OAAO,OAAO,WAAW,WAAW;AAC7D,SAAO,IAAI,WAAW,GAAG;AAC3B;AAEO,SAAS,qBAAqB,UAAqE;AACxG,QAAM,WAAO,6BAAAA,SAAgB,UAAU,EAAE,UAAU,iBAAiB,CAAC,KAAK;AAC1E,SAAO,WAAW,aAAa,IAAI,CAAC;AACtC;AAEA,SAAS,iBAAgC,KAAsB,OAAyB;AACtF,MAAI,SAAS,iBAAiB,YAAY;AACxC,WAAO,QAAQ,OAAO,KAAK;AAAA,EAC7B;AAEA,MAAI,OAAO,QAAQ,UAAU;AAC3B,WAAO;AAAA,EACT;AAGA,MAAI,OAAO,SAAS,YAAY,QAAQ,OAAO,OAAO,MAAM,SAAS,KAAK,QAAQ,iBAAiB,SAAS,MAAM;AAChH,WAAO;AAAA,EACT;AAEA,MAAI,uBAAuB,IAAI,GAAG,MAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,KAAM,SAAS,OAAO;AACtG,WAAO;AAAA,EACT;AAEA,MAAI,sBAAsB,IAAI,GAAG,MAAO,MAAM,QAAQ,KAAK,KAAK,MAAM,WAAW,KAAM,UAAU,IAAI;AACnG,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAEA,MAAM,iCAAyD,EAAE,UAAU,QAAQ,gBAAgB,kBAAkB;AACrH,MAAM,+BAA+B,IAAI,OAAO,KAAK,OAAO,KAAK,8BAA8B,EAAE,KAAK,GAAG,CAAC,OAAO,GAAG;AACpH,SAAS,aAAa,SAAyB;AAC7C,+BAA6B,YAAY;AACzC,SAAO,QAAQ,QAAQ,8BAA8B,CAAC,GAAG,UAAU,IAAI,+BAA+B,KAAK,CAAC,IAAI;AAClH;AAEA,MAAM,cAAsC;AAAA,EAC1C,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACP;AAEA,MAAM,2BAA2B,IAAI,OAAO,IAAI,OAAO,KAAK,WAAW,EAAE,KAAK,EAAE,CAAC,KAAK,GAAG;AACzF,SAAS,WAAW,KAAqB;AACvC,2BAAyB,YAAY;AACrC,SAAO,IAAI,QAAQ,0BAA0B,CAAC,OAAO,YAAY,EAAE,CAAC;AACtE;",
6
6
  "names": ["stableStringify"]
7
7
  }
@@ -65,14 +65,18 @@ function isIngress(proto, global, externalPort, port) {
65
65
  function transformGpuAttributes(attributes) {
66
66
  const vendor = attributes.vendor;
67
67
  if (!vendor) return [];
68
- return Object.entries(vendor).flatMap(
69
- ([vendorName, models]) => models ? models.map((model) => {
68
+ return Object.keys(vendor).sort((a, b) => a.localeCompare(b)).flatMap((vendorName) => {
69
+ const models = vendor[vendorName];
70
+ if (!models) {
71
+ return [{ key: `vendor/${vendorName}/model/*`, value: "true" }];
72
+ }
73
+ return models.map((model) => {
70
74
  let key = `vendor/${vendorName}/model/${model.model}`;
71
75
  if (model.ram) key += `/ram/${model.ram}`;
72
76
  if (model.interface) key += `/interface/${model.interface}`;
73
77
  return { key, value: "true" };
74
- }) : [{ key: `vendor/${vendorName}/model/*`, value: "true" }]
75
- );
78
+ });
79
+ });
76
80
  }
77
81
  function buildHttpOptions(httpOptions) {
78
82
  return import_index_provider_akash_v2beta3.ServiceExposeHTTPOptions.fromPartial({
@@ -109,11 +113,14 @@ function buildServiceEndpoints(service, endpointSequenceNumbers) {
109
113
  kind,
110
114
  sequenceNumber: 0
111
115
  });
112
- const leasedEp = to.ip && to.ip.length > 0 ? import_index_akash_v1beta4.Endpoint.fromPartial({
116
+ if (!to.ip?.length) {
117
+ return [defaultEp];
118
+ }
119
+ const leasedEp = import_index_akash_v1beta4.Endpoint.fromPartial({
113
120
  kind: import_index_akash_v1beta4.Endpoint_Kind.LEASED_IP,
114
- sequenceNumber: endpointSequenceNumbers[to.ip]
115
- }) : void 0;
116
- return leasedEp ? [defaultEp, leasedEp] : [defaultEp];
121
+ sequenceNumber: endpointSequenceNumbers[to.ip] ?? 0
122
+ });
123
+ return [defaultEp, leasedEp];
117
124
  })
118
125
  );
119
126
  }
@@ -133,6 +140,6 @@ function parseGpuUnits(gpu) {
133
140
  }
134
141
  function buildResourceAttributes(attributes) {
135
142
  if (!attributes) return void 0;
136
- return Object.entries(attributes).sort(([a], [b]) => a.localeCompare(b)).map(([key, value]) => ({ key, value: String(value) }));
143
+ return Object.keys(attributes).sort((a, b) => a.localeCompare(b)).map((key) => ({ key, value: String(attributes[key]) }));
137
144
  }
138
145
  //# sourceMappingURL=manifestUtils.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/sdl/manifest/manifestUtils.ts"],
4
- "sourcesContent": ["import type { Attribute } from \"../../generated/protos/index.akash.v1.ts\";\nimport {\n Endpoint,\n Endpoint_Kind,\n} from \"../../generated/protos/index.akash.v1beta4.ts\";\nimport {\n ServiceExposeHTTPOptions,\n} from \"../../generated/protos/index.provider.akash.v2beta3.ts\";\nimport { convertCpuResourceString, convertResourceString } from \"../sizes.ts\";\nimport type { SDLInput } from \"../validateSDL/validateSDL.ts\";\nimport type { StorageAttributesValidation } from \"../validateSDL/validateSDLInput.ts\";\n\ntype SDLService = SDLInput[\"services\"][string];\ntype SDLExpose = NonNullable<SDLService[\"expose\"]>[number];\ntype SDLExposeTo = NonNullable<SDLExpose[\"to\"]>[number];\ntype SDLHttpOptions = SDLExpose[\"http_options\"];\ntype SDLCompute = SDLInput[\"profiles\"][\"compute\"][string];\ntype SDLStorage = SDLCompute[\"resources\"][\"storage\"];\ntype SDLStorageVolume = SDLStorage extends (infer T)[] ? T : SDLStorage;\ntype SDLGpuAttributes = NonNullable<NonNullable<SDLCompute[\"resources\"][\"gpu\"]>[\"attributes\"]>;\n\nexport type { SDLCompute, SDLExpose, SDLExposeTo, SDLGpuAttributes, SDLHttpOptions, SDLService, SDLStorage, SDLStorageVolume };\n\nconst encoder = new TextEncoder();\n\nexport function encodeResourceValue(value: number): Uint8Array {\n return encoder.encode(value.toString());\n}\n\nexport function computeEndpointSequenceNumbers(services: SDLInput[\"services\"]): Record<string, number> {\n const endpointNames: string[] = [];\n\n for (const service of Object.values(services)) {\n if (!service.expose) continue;\n for (const expose of service.expose) {\n if (!expose.to) continue;\n for (const to of expose.to) {\n if (to.global && to.ip && to.ip.length > 0) {\n endpointNames.push(to.ip);\n }\n }\n }\n }\n\n return endpointNames.sort().reduce<Record<string, number>>((result, name, seqNumber) => {\n result[name] = seqNumber + 1;\n return result;\n }, {});\n}\n\nexport function isIngress(proto: string, global: boolean, externalPort: number, port: number): boolean {\n const effectivePort = externalPort === 0 ? port : externalPort;\n return global && proto === \"TCP\" && effectivePort === 80;\n}\n\nexport function transformGpuAttributes(attributes: SDLGpuAttributes): Attribute[] {\n const vendor = attributes.vendor;\n if (!vendor) return [];\n\n return Object.entries(vendor).flatMap(([vendorName, models]) =>\n models\n ? models.map((model) => {\n let key = `vendor/${vendorName}/model/${model.model}`;\n if (model.ram) key += `/ram/${model.ram}`;\n if (model.interface) key += `/interface/${model.interface}`;\n return { key, value: \"true\" };\n })\n : [{ key: `vendor/${vendorName}/model/*`, value: \"true\" }],\n );\n}\n\nexport function buildHttpOptions(httpOptions?: SDLHttpOptions): ServiceExposeHTTPOptions {\n return ServiceExposeHTTPOptions.fromPartial({\n maxBodySize: httpOptions?.max_body_size ?? 1048576,\n readTimeout: httpOptions?.read_timeout ?? 60000,\n sendTimeout: httpOptions?.send_timeout ?? 60000,\n nextTries: httpOptions?.next_tries ?? 3,\n nextTimeout: httpOptions?.next_timeout ?? 0,\n nextCases: httpOptions?.next_cases ?? [\"error\", \"timeout\"],\n });\n}\n\nexport function buildStorageAttributes(attributes?: StorageAttributesValidation): Attribute[] {\n if (!attributes) return [];\n\n const pairs: Attribute[] = Object.entries(attributes).map(([key, value]) => ({\n key,\n value: String(value),\n }));\n\n if (attributes.class === \"ram\" && !(\"persistent\" in attributes)) {\n pairs.push({ key: \"persistent\", value: \"false\" });\n }\n\n pairs.sort((a, b) => a.key.localeCompare(b.key));\n return pairs;\n}\n\nexport function parseServiceProto(proto?: string): string {\n return proto?.toUpperCase() || \"TCP\";\n}\n\nexport function buildServiceEndpoints(\n service: SDLService,\n endpointSequenceNumbers: Record<string, number>,\n): Endpoint[] {\n return (service.expose ?? []).flatMap((expose) =>\n (expose.to ?? [])\n .filter((to) => to.global)\n .flatMap((to) => {\n const externalPort = expose.as || 0;\n const proto = parseServiceProto(expose.proto);\n const kind = isIngress(proto, !!to.global, externalPort, expose.port)\n ? Endpoint_Kind.SHARED_HTTP\n : Endpoint_Kind.RANDOM_PORT;\n\n const defaultEp = Endpoint.fromPartial({\n kind,\n sequenceNumber: 0,\n });\n\n const leasedEp = to.ip && to.ip.length > 0\n ? Endpoint.fromPartial({\n kind: Endpoint_Kind.LEASED_IP,\n sequenceNumber: endpointSequenceNumbers[to.ip],\n })\n : undefined;\n\n return leasedEp ? [defaultEp, leasedEp] : [defaultEp];\n }),\n );\n}\n\nexport function parseCpuUnits(cpu: SDLCompute[\"resources\"][\"cpu\"]): number {\n return typeof cpu.units === \"string\"\n ? convertCpuResourceString(cpu.units)\n : cpu.units * 1000;\n}\n\nexport function parseMemoryBytes(memory: SDLCompute[\"resources\"][\"memory\"]): number {\n return convertResourceString(memory.size);\n}\n\nexport function parseStorageBytes(size: string): number {\n return convertResourceString(size);\n}\n\nexport function parseGpuUnits(gpu?: SDLCompute[\"resources\"][\"gpu\"]): number {\n const value = gpu?.units;\n if (value === undefined || value === null) return 0;\n return typeof value === \"string\" ? parseInt(value, 10) : value;\n}\n\nexport function buildResourceAttributes(attributes?: Record<string, unknown>): Attribute[] | undefined {\n if (!attributes) return undefined;\n return Object.entries(attributes)\n .sort(([a], [b]) => a.localeCompare(b))\n .map(([key, value]) => ({ key, value: String(value) }));\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import type { Attribute } from \"../../generated/protos/index.akash.v1.ts\";\nimport {\n Endpoint,\n Endpoint_Kind,\n} from \"../../generated/protos/index.akash.v1beta4.ts\";\nimport {\n ServiceExposeHTTPOptions,\n} from \"../../generated/protos/index.provider.akash.v2beta3.ts\";\nimport { convertCpuResourceString, convertResourceString } from \"../sizes.ts\";\nimport type { SDLInput } from \"../validateSDL/validateSDL.ts\";\nimport type { StorageAttributesValidation } from \"../validateSDL/validateSDLInput.ts\";\n\ntype SDLService = SDLInput[\"services\"][string];\ntype SDLExpose = NonNullable<SDLService[\"expose\"]>[number];\ntype SDLExposeTo = NonNullable<SDLExpose[\"to\"]>[number];\ntype SDLHttpOptions = SDLExpose[\"http_options\"];\ntype SDLCompute = SDLInput[\"profiles\"][\"compute\"][string];\ntype SDLStorage = SDLCompute[\"resources\"][\"storage\"];\ntype SDLStorageVolume = SDLStorage extends (infer T)[] ? T : SDLStorage;\ntype SDLGpuAttributes = NonNullable<NonNullable<SDLCompute[\"resources\"][\"gpu\"]>[\"attributes\"]>;\n\nexport type { SDLCompute, SDLExpose, SDLExposeTo, SDLGpuAttributes, SDLHttpOptions, SDLService, SDLStorage, SDLStorageVolume };\n\nconst encoder = new TextEncoder();\n\nexport function encodeResourceValue(value: number): Uint8Array {\n return encoder.encode(value.toString());\n}\n\nexport function computeEndpointSequenceNumbers(services: SDLInput[\"services\"]): Record<string, number> {\n const endpointNames: string[] = [];\n\n for (const service of Object.values(services)) {\n if (!service.expose) continue;\n for (const expose of service.expose) {\n if (!expose.to) continue;\n for (const to of expose.to) {\n if (to.global && to.ip && to.ip.length > 0) {\n endpointNames.push(to.ip);\n }\n }\n }\n }\n\n return endpointNames.sort().reduce<Record<string, number>>((result, name, seqNumber) => {\n result[name] = seqNumber + 1;\n return result;\n }, {});\n}\n\nexport function isIngress(proto: string, global: boolean, externalPort: number, port: number): boolean {\n const effectivePort = externalPort === 0 ? port : externalPort;\n return global && proto === \"TCP\" && effectivePort === 80;\n}\n\nexport function transformGpuAttributes(attributes: SDLGpuAttributes): Attribute[] {\n const vendor = attributes.vendor;\n if (!vendor) return [];\n\n return Object.keys(vendor)\n .sort((a, b) => a.localeCompare(b))\n .flatMap((vendorName) => {\n const models = vendor[vendorName as keyof typeof vendor];\n if (!models) {\n return [{ key: `vendor/${vendorName}/model/*`, value: \"true\" }];\n }\n\n return models.map((model) => {\n let key = `vendor/${vendorName}/model/${model.model}`;\n if (model.ram) key += `/ram/${model.ram}`;\n if (model.interface) key += `/interface/${model.interface}`;\n return { key, value: \"true\" };\n });\n });\n}\n\nexport function buildHttpOptions(httpOptions?: SDLHttpOptions): ServiceExposeHTTPOptions {\n return ServiceExposeHTTPOptions.fromPartial({\n maxBodySize: httpOptions?.max_body_size ?? 1048576,\n readTimeout: httpOptions?.read_timeout ?? 60000,\n sendTimeout: httpOptions?.send_timeout ?? 60000,\n nextTries: httpOptions?.next_tries ?? 3,\n nextTimeout: httpOptions?.next_timeout ?? 0,\n nextCases: httpOptions?.next_cases ?? [\"error\", \"timeout\"],\n });\n}\n\nexport function buildStorageAttributes(attributes?: StorageAttributesValidation): Attribute[] {\n if (!attributes) return [];\n\n const pairs: Attribute[] = Object.entries(attributes).map(([key, value]) => ({\n key,\n value: String(value),\n }));\n\n if (attributes.class === \"ram\" && !(\"persistent\" in attributes)) {\n pairs.push({ key: \"persistent\", value: \"false\" });\n }\n\n pairs.sort((a, b) => a.key.localeCompare(b.key));\n return pairs;\n}\n\nexport function parseServiceProto(proto?: string): string {\n return proto?.toUpperCase() || \"TCP\";\n}\n\nexport function buildServiceEndpoints(\n service: SDLService,\n endpointSequenceNumbers: Record<string, number>,\n): Endpoint[] {\n return (service.expose ?? []).flatMap((expose) =>\n (expose.to ?? [])\n .filter((to) => to.global)\n .flatMap((to) => {\n const externalPort = expose.as || 0;\n const proto = parseServiceProto(expose.proto);\n const kind = isIngress(proto, !!to.global, externalPort, expose.port)\n ? Endpoint_Kind.SHARED_HTTP\n : Endpoint_Kind.RANDOM_PORT;\n\n const defaultEp = Endpoint.fromPartial({\n kind,\n sequenceNumber: 0,\n });\n\n if (!to.ip?.length) {\n return [defaultEp];\n }\n\n const leasedEp = Endpoint.fromPartial({\n kind: Endpoint_Kind.LEASED_IP,\n sequenceNumber: endpointSequenceNumbers[to.ip] ?? 0,\n });\n\n return [defaultEp, leasedEp];\n }),\n );\n}\n\nexport function parseCpuUnits(cpu: SDLCompute[\"resources\"][\"cpu\"]): number {\n return typeof cpu.units === \"string\"\n ? convertCpuResourceString(cpu.units)\n : cpu.units * 1000;\n}\n\nexport function parseMemoryBytes(memory: SDLCompute[\"resources\"][\"memory\"]): number {\n return convertResourceString(memory.size);\n}\n\nexport function parseStorageBytes(size: string): number {\n return convertResourceString(size);\n}\n\nexport function parseGpuUnits(gpu?: SDLCompute[\"resources\"][\"gpu\"]): number {\n const value = gpu?.units;\n if (value === undefined || value === null) return 0;\n return typeof value === \"string\" ? parseInt(value, 10) : value;\n}\n\nexport function buildResourceAttributes(attributes?: Record<string, unknown>): Attribute[] | undefined {\n if (!attributes) return undefined;\n return Object.keys(attributes)\n .sort((a, b) => a.localeCompare(b))\n .map((key) => ({ key, value: String(attributes[key]) }));\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -24,10 +24,17 @@ module.exports = __toCommonJS(yaml_exports);
24
24
  var import_js_yaml = require("js-yaml");
25
25
  function yaml(chunks, ...args) {
26
26
  const str = chunks.reduce((acc, chunk, i) => {
27
- const value = args[i];
28
27
  const intermediateResult = acc + chunk;
29
- if (value === void 0) return intermediateResult;
30
- return intermediateResult + JSON.stringify(value);
28
+ if (i >= args.length) return intermediateResult;
29
+ const value = args[i];
30
+ if (value !== void 0) {
31
+ return intermediateResult + JSON.stringify(value);
32
+ }
33
+ const lastNewlineIndex = intermediateResult.lastIndexOf("\n");
34
+ if (lastNewlineIndex !== -1) {
35
+ return intermediateResult.slice(0, lastNewlineIndex);
36
+ }
37
+ return intermediateResult;
31
38
  }, "");
32
39
  return (0, import_js_yaml.load)(str);
33
40
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/yaml.ts"],
4
- "sourcesContent": ["import { load } from \"js-yaml\";\n\n/**\n * @example\n * ```ts\n * const version = \"2.1\";\n * const expose = [{ port: 80, as: 80, to: [{ global: true }] }];\n * const pricing = { web: { denom: \"uakt\", amount: 1000 } };\n *\n * const sdl: SDLInput = yaml`\n * version: ${version}\n * services:\n * web:\n * image: nginx\n * expose: ${expose}\n * profiles:\n * compute:\n * web:\n * resources:\n * cpu:\n * units: 0.5\n * memory:\n * size: 512Mi\n * storage:\n * size: 1Gi\n * placement:\n * dcloud:\n * pricing: ${pricing}\n * deployment:\n * web:\n * dcloud:\n * profile: web\n * count: 1\n * `;\n * ```\n */\nexport function yaml<T>(chunks: TemplateStringsArray, ...args: unknown[]): T {\n const str = chunks.reduce((acc, chunk, i) => {\n const value = args[i];\n const intermediateResult = acc + chunk;\n if (value === undefined) return intermediateResult;\n\n return intermediateResult + JSON.stringify(value);\n }, \"\");\n\n return load(str) as T;\n}\n\n/**\n * Use this function to parse YAML template defined in external resource (e.g., file, http response, etc.).\n * Prefer `yaml` function for inline YAML templates defined in code, as it provides better ergonomics.\n */\nyaml.template = function yamlTemplate<T>(template: string, vars?: Record<string, unknown>): T {\n const finalYaml = template.replace(/\\$\\{(\\w+)\\}/g, (_, varName) => {\n const value = vars?.[varName];\n if (value === undefined) {\n throw new ReferenceError(`Variable \"${varName}\" is not provided to yaml template`);\n }\n return JSON.stringify(value);\n });\n return load(finalYaml) as T;\n};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAqB;AAoCd,SAAS,KAAQ,WAAiC,MAAoB;AAC3E,QAAM,MAAM,OAAO,OAAO,CAAC,KAAK,OAAO,MAAM;AAC3C,UAAM,QAAQ,KAAK,CAAC;AACpB,UAAM,qBAAqB,MAAM;AACjC,QAAI,UAAU,OAAW,QAAO;AAEhC,WAAO,qBAAqB,KAAK,UAAU,KAAK;AAAA,EAClD,GAAG,EAAE;AAEL,aAAO,qBAAK,GAAG;AACjB;AAMA,KAAK,WAAW,SAAS,aAAgB,UAAkB,MAAmC;AAC5F,QAAM,YAAY,SAAS,QAAQ,gBAAgB,CAAC,GAAG,YAAY;AACjE,UAAM,QAAQ,OAAO,OAAO;AAC5B,QAAI,UAAU,QAAW;AACvB,YAAM,IAAI,eAAe,aAAa,OAAO,oCAAoC;AAAA,IACnF;AACA,WAAO,KAAK,UAAU,KAAK;AAAA,EAC7B,CAAC;AACD,aAAO,qBAAK,SAAS;AACvB;",
4
+ "sourcesContent": ["import { load } from \"js-yaml\";\n\n/**\n * Generate YAML string from template literal and parse it into object of type T.\n * If some interpolated value is undefined, the whole line containing it will be removed from the resulting YAML string.\n *\n * @example\n * ```ts\n * const version = \"2.1\";\n * const expose = [{ port: 80, as: 80, to: [{ global: true }] }];\n * const pricing = { web: { denom: \"uakt\", amount: 1000 } };\n *\n * const sdl: SDLInput = yaml`\n * version: ${version}\n * services:\n * web:\n * image: nginx\n * expose: ${expose}\n * profiles:\n * compute:\n * web:\n * resources:\n * cpu:\n * units: 0.5\n * memory:\n * size: 512Mi\n * storage:\n * size: 1Gi\n * placement:\n * dcloud:\n * pricing: ${pricing}\n * deployment:\n * web:\n * dcloud:\n * profile: web\n * count: 1\n * `;\n * ```\n */\nexport function yaml<T>(chunks: TemplateStringsArray, ...args: unknown[]): T {\n const str = chunks.reduce((acc, chunk, i) => {\n const intermediateResult = acc + chunk;\n if (i >= args.length) return intermediateResult;\n\n const value = args[i];\n if (value !== undefined) {\n return intermediateResult + JSON.stringify(value);\n }\n\n const lastNewlineIndex = intermediateResult.lastIndexOf(\"\\n\");\n if (lastNewlineIndex !== -1) {\n return intermediateResult.slice(0, lastNewlineIndex);\n }\n\n return intermediateResult;\n }, \"\");\n\n return load(str) as T;\n}\n\n/**\n * Use this function to parse YAML template defined in external resource (e.g., file, http response, etc.).\n * Prefer `yaml` function for inline YAML templates defined in code, as it provides better ergonomics.\n */\nyaml.template = function yamlTemplate<T>(template: string, vars?: Record<string, unknown>): T {\n const finalYaml = template.replace(/\\$\\{(\\w+)\\}/g, (_, varName) => {\n const value = vars?.[varName];\n if (value === undefined) {\n throw new ReferenceError(`Variable \"${varName}\" is not provided to yaml template`);\n }\n return JSON.stringify(value);\n });\n return load(finalYaml) as T;\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAqB;AAuCd,SAAS,KAAQ,WAAiC,MAAoB;AAC3E,QAAM,MAAM,OAAO,OAAO,CAAC,KAAK,OAAO,MAAM;AAC3C,UAAM,qBAAqB,MAAM;AACjC,QAAI,KAAK,KAAK,OAAQ,QAAO;AAE7B,UAAM,QAAQ,KAAK,CAAC;AACpB,QAAI,UAAU,QAAW;AACvB,aAAO,qBAAqB,KAAK,UAAU,KAAK;AAAA,IAClD;AAEA,UAAM,mBAAmB,mBAAmB,YAAY,IAAI;AAC5D,QAAI,qBAAqB,IAAI;AAC3B,aAAO,mBAAmB,MAAM,GAAG,gBAAgB;AAAA,IACrD;AAEA,WAAO;AAAA,EACT,GAAG,EAAE;AAEL,aAAO,qBAAK,GAAG;AACjB;AAMA,KAAK,WAAW,SAAS,aAAgB,UAAkB,MAAmC;AAC5F,QAAM,YAAY,SAAS,QAAQ,gBAAgB,CAAC,GAAG,YAAY;AACjE,UAAM,QAAQ,OAAO,OAAO;AAC5B,QAAI,UAAU,QAAW;AACvB,YAAM,IAAI,eAAe,aAAa,OAAO,oCAAoC;AAAA,IACnF;AACA,WAAO,KAAK,UAAU,KAAK;AAAA,EAC7B,CAAC;AACD,aAAO,qBAAK,SAAS;AACvB;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  Group
3
- } from "./chunk-VRE72ZD5.js";
3
+ } from "./chunk-M2ZK7HEC.js";
4
4
  import {
5
5
  LeaseID
6
6
  } from "./chunk-LKYHOABO.js";
@@ -946,4 +946,4 @@ export {
946
946
  ServiceStatusRequest,
947
947
  ServiceStatusResponse
948
948
  };
949
- //# sourceMappingURL=chunk-BYQF33C6.js.map
949
+ //# sourceMappingURL=chunk-5YIS3XNX.js.map
@@ -8,7 +8,7 @@ import {
8
8
  } from "./chunk-OHAEKHAC.js";
9
9
  import {
10
10
  GroupSpec
11
- } from "./chunk-5YECXI3P.js";
11
+ } from "./chunk-RUC3LXDX.js";
12
12
  import {
13
13
  Account
14
14
  } from "./chunk-CT7AHZAH.js";
@@ -811,4 +811,4 @@ export {
811
811
  QueryParamsRequest,
812
812
  QueryParamsResponse
813
813
  };
814
- //# sourceMappingURL=chunk-JISXXX24.js.map
814
+ //# sourceMappingURL=chunk-6CIH635G.js.map
@@ -2,7 +2,7 @@ import {
2
2
  DataID,
3
3
  Params,
4
4
  PriceDataState
5
- } from "./chunk-MQPC6TDF.js";
5
+ } from "./chunk-C3DBWOZD.js";
6
6
  import {
7
7
  isSet
8
8
  } from "./chunk-35BIJBXD.js";
@@ -233,4 +233,4 @@ export {
233
233
  MsgUpdateParams,
234
234
  MsgUpdateParamsResponse
235
235
  };
236
- //# sourceMappingURL=chunk-GUNMCW7A.js.map
236
+ //# sourceMappingURL=chunk-BWGYKJLS.js.map
@@ -976,6 +976,57 @@ var PythContractParams = {
976
976
  return message;
977
977
  }
978
978
  };
979
+ function createBaseWormholeContractParams() {
980
+ return { guardianAddresses: [] };
981
+ }
982
+ var WormholeContractParams = {
983
+ $type: "akash.oracle.v1.WormholeContractParams",
984
+ encode(message, writer = new BinaryWriter2()) {
985
+ for (const v of message.guardianAddresses) {
986
+ writer.uint32(10).string(v);
987
+ }
988
+ return writer;
989
+ },
990
+ decode(input, length) {
991
+ const reader = input instanceof BinaryReader2 ? input : new BinaryReader2(input);
992
+ const end = length === void 0 ? reader.len : reader.pos + length;
993
+ const message = createBaseWormholeContractParams();
994
+ while (reader.pos < end) {
995
+ const tag = reader.uint32();
996
+ switch (tag >>> 3) {
997
+ case 1: {
998
+ if (tag !== 10) {
999
+ break;
1000
+ }
1001
+ message.guardianAddresses.push(reader.string());
1002
+ continue;
1003
+ }
1004
+ }
1005
+ if ((tag & 7) === 4 || tag === 0) {
1006
+ break;
1007
+ }
1008
+ reader.skip(tag & 7);
1009
+ }
1010
+ return message;
1011
+ },
1012
+ fromJSON(object) {
1013
+ return {
1014
+ guardianAddresses: globalThis.Array.isArray(object?.guardian_addresses) ? object.guardian_addresses.map((e) => globalThis.String(e)) : []
1015
+ };
1016
+ },
1017
+ toJSON(message) {
1018
+ const obj = {};
1019
+ if (message.guardianAddresses?.length) {
1020
+ obj.guardian_addresses = message.guardianAddresses;
1021
+ }
1022
+ return obj;
1023
+ },
1024
+ fromPartial(object) {
1025
+ const message = createBaseWormholeContractParams();
1026
+ message.guardianAddresses = object.guardianAddresses?.map((e) => e) || [];
1027
+ return message;
1028
+ }
1029
+ };
979
1030
  function createBaseParams() {
980
1031
  return {
981
1032
  sources: [],
@@ -1122,6 +1173,7 @@ export {
1122
1173
  PriceDataState,
1123
1174
  AggregatedPrice,
1124
1175
  PythContractParams,
1176
+ WormholeContractParams,
1125
1177
  Params
1126
1178
  };
1127
- //# sourceMappingURL=chunk-MQPC6TDF.js.map
1179
+ //# sourceMappingURL=chunk-C3DBWOZD.js.map