@hashgraphonline/standards-sdk 0.1.163 → 0.1.165
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.
- package/README.md +59 -0
- package/dist/cjs/common/node-operator-resolver.d.ts +1 -1
- package/dist/cjs/common/tx/tx-utils.d.ts +1 -1
- package/dist/cjs/hcs-10/base-client.d.ts +1 -1
- package/dist/cjs/hcs-10/browser.d.ts +1 -1
- package/dist/cjs/hcs-10/sdk.d.ts +1 -1
- package/dist/cjs/hcs-10/tx.d.ts +1 -1
- package/dist/cjs/hcs-10/types.d.ts +1 -1
- package/dist/cjs/hcs-11/client.d.ts +51 -51
- package/dist/cjs/hcs-11/types.d.ts +1 -1
- package/dist/cjs/hcs-12/base-client.d.ts +1 -1
- package/dist/cjs/hcs-12/browser.d.ts +1 -1
- package/dist/cjs/hcs-12/sdk.d.ts +1 -1
- package/dist/cjs/hcs-12/security/signature-verifier.d.ts +1 -1
- package/dist/cjs/hcs-12/tx.d.ts +1 -1
- package/dist/cjs/hcs-14/issuers/types.d.ts +1 -1
- package/dist/cjs/hcs-14/sdk.d.ts +1 -1
- package/dist/cjs/hcs-15/browser.d.ts +1 -1
- package/dist/cjs/hcs-15/sdk.d.ts +1 -1
- package/dist/cjs/hcs-15/tx.d.ts +1 -1
- package/dist/cjs/hcs-15/types.d.ts +1 -1
- package/dist/cjs/hcs-16/base-client.d.ts +1 -1
- package/dist/cjs/hcs-16/browser.d.ts +1 -1
- package/dist/cjs/hcs-16/sdk.d.ts +1 -1
- package/dist/cjs/hcs-16/tx.d.ts +1 -1
- package/dist/cjs/hcs-16/types.d.ts +1 -1
- package/dist/cjs/hcs-17/base-client.d.ts +1 -1
- package/dist/cjs/hcs-17/browser.d.ts +1 -1
- package/dist/cjs/hcs-17/sdk.d.ts +1 -1
- package/dist/cjs/hcs-17/tx.d.ts +1 -1
- package/dist/cjs/hcs-17/types.d.ts +1 -1
- package/dist/cjs/hcs-18/browser.d.ts +1 -1
- package/dist/cjs/hcs-18/sdk.d.ts +2 -2
- package/dist/cjs/hcs-18/tx.d.ts +1 -1
- package/dist/cjs/hcs-18/types.d.ts +1 -1
- package/dist/cjs/hcs-2/base-client.d.ts +1 -1
- package/dist/cjs/hcs-2/browser.d.ts +1 -1
- package/dist/cjs/hcs-2/client.d.ts +1 -1
- package/dist/cjs/hcs-2/tx.d.ts +1 -1
- package/dist/cjs/hcs-2/types.d.ts +1 -1
- package/dist/cjs/hcs-20/base-client.d.ts +1 -1
- package/dist/cjs/hcs-20/tx.d.ts +1 -1
- package/dist/cjs/hcs-20/types.d.ts +1 -1
- package/dist/cjs/hcs-21/sdk.d.ts +1 -1
- package/dist/cjs/hcs-21/tx.d.ts +1 -1
- package/dist/cjs/hcs-5/tx.d.ts +1 -1
- package/dist/cjs/hcs-5/types.d.ts +1 -1
- package/dist/cjs/hcs-6/base-client.d.ts +1 -1
- package/dist/cjs/hcs-6/browser.d.ts +1 -1
- package/dist/cjs/hcs-6/sdk.d.ts +1 -1
- package/dist/cjs/hcs-6/tx.d.ts +1 -1
- package/dist/cjs/hcs-6/types.d.ts +1 -1
- package/dist/cjs/hcs-7/evm-bridge.d.ts +1 -1
- package/dist/cjs/hcs-7/tx.d.ts +1 -1
- package/dist/cjs/hcs-7/types.d.ts +1 -1
- package/dist/cjs/inscribe/types.d.ts +1 -1
- package/dist/cjs/services/mirror-node.d.ts +1 -1
- package/dist/cjs/services/registry-broker/client/base-client.d.ts +23 -9
- package/dist/cjs/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/skills.d.ts +20 -9
- package/dist/cjs/services/registry-broker/client/skills.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/client/verification.d.ts +3 -1
- package/dist/cjs/services/registry-broker/client/verification.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/private-key-signer.d.ts +1 -1
- package/dist/cjs/services/registry-broker/schemas.d.ts +13100 -220
- package/dist/cjs/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/cjs/services/registry-broker/types.d.ts +84 -2
- package/dist/cjs/services/registry-broker/types.d.ts.map +1 -1
- package/dist/cjs/standards-sdk.cjs +1 -1
- package/dist/cjs/standards-sdk.cjs.map +1 -1
- package/dist/cjs/utils/key-type-detector.d.ts +1 -1
- package/dist/cjs/utils/parsers/crypto-parser.d.ts +1 -1
- package/dist/cjs/utils/parsers/file-parser.d.ts +1 -1
- package/dist/cjs/utils/parsers/hcs-parser.d.ts +1 -1
- package/dist/cjs/utils/parsers/hts-parser.d.ts +1 -1
- package/dist/cjs/utils/parsers/parser-utils.d.ts +1 -1
- package/dist/cjs/utils/parsers/schedule-parser.d.ts +1 -1
- package/dist/cjs/utils/parsers/scs-parser.d.ts +1 -1
- package/dist/cjs/utils/parsers/util-parser.d.ts +1 -1
- package/dist/cjs/utils/topic-fee-utils.d.ts +1 -1
- package/dist/cjs/utils/transaction-parser.d.ts +1 -1
- package/dist/es/common/node-operator-resolver.d.ts +1 -1
- package/dist/es/common/tx/tx-utils.d.ts +1 -1
- package/dist/es/hcs-10/base-client.d.ts +1 -1
- package/dist/es/hcs-10/browser.d.ts +1 -1
- package/dist/es/hcs-10/sdk.d.ts +1 -1
- package/dist/es/hcs-10/tx.d.ts +1 -1
- package/dist/es/hcs-10/types.d.ts +1 -1
- package/dist/es/hcs-11/client.d.ts +51 -51
- package/dist/es/hcs-11/types.d.ts +1 -1
- package/dist/es/hcs-12/base-client.d.ts +1 -1
- package/dist/es/hcs-12/browser.d.ts +1 -1
- package/dist/es/hcs-12/sdk.d.ts +1 -1
- package/dist/es/hcs-12/security/signature-verifier.d.ts +1 -1
- package/dist/es/hcs-12/tx.d.ts +1 -1
- package/dist/es/hcs-14/issuers/types.d.ts +1 -1
- package/dist/es/hcs-14/sdk.d.ts +1 -1
- package/dist/es/hcs-15/browser.d.ts +1 -1
- package/dist/es/hcs-15/sdk.d.ts +1 -1
- package/dist/es/hcs-15/tx.d.ts +1 -1
- package/dist/es/hcs-15/types.d.ts +1 -1
- package/dist/es/hcs-16/base-client.d.ts +1 -1
- package/dist/es/hcs-16/browser.d.ts +1 -1
- package/dist/es/hcs-16/sdk.d.ts +1 -1
- package/dist/es/hcs-16/tx.d.ts +1 -1
- package/dist/es/hcs-16/types.d.ts +1 -1
- package/dist/es/hcs-17/base-client.d.ts +1 -1
- package/dist/es/hcs-17/browser.d.ts +1 -1
- package/dist/es/hcs-17/sdk.d.ts +1 -1
- package/dist/es/hcs-17/tx.d.ts +1 -1
- package/dist/es/hcs-17/types.d.ts +1 -1
- package/dist/es/hcs-18/browser.d.ts +1 -1
- package/dist/es/hcs-18/sdk.d.ts +2 -2
- package/dist/es/hcs-18/tx.d.ts +1 -1
- package/dist/es/hcs-18/types.d.ts +1 -1
- package/dist/es/hcs-2/base-client.d.ts +1 -1
- package/dist/es/hcs-2/browser.d.ts +1 -1
- package/dist/es/hcs-2/client.d.ts +1 -1
- package/dist/es/hcs-2/tx.d.ts +1 -1
- package/dist/es/hcs-2/types.d.ts +1 -1
- package/dist/es/hcs-20/base-client.d.ts +1 -1
- package/dist/es/hcs-20/tx.d.ts +1 -1
- package/dist/es/hcs-20/types.d.ts +1 -1
- package/dist/es/hcs-21/sdk.d.ts +1 -1
- package/dist/es/hcs-21/tx.d.ts +1 -1
- package/dist/es/hcs-5/tx.d.ts +1 -1
- package/dist/es/hcs-5/types.d.ts +1 -1
- package/dist/es/hcs-6/base-client.d.ts +1 -1
- package/dist/es/hcs-6/browser.d.ts +1 -1
- package/dist/es/hcs-6/sdk.d.ts +1 -1
- package/dist/es/hcs-6/tx.d.ts +1 -1
- package/dist/es/hcs-6/types.d.ts +1 -1
- package/dist/es/hcs-7/evm-bridge.d.ts +1 -1
- package/dist/es/hcs-7/tx.d.ts +1 -1
- package/dist/es/hcs-7/types.d.ts +1 -1
- package/dist/es/inscribe/types.d.ts +1 -1
- package/dist/es/services/mirror-node.d.ts +1 -1
- package/dist/es/services/registry-broker/client/base-client.d.ts +23 -9
- package/dist/es/services/registry-broker/client/base-client.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/skills.d.ts +20 -9
- package/dist/es/services/registry-broker/client/skills.d.ts.map +1 -1
- package/dist/es/services/registry-broker/client/verification.d.ts +3 -1
- package/dist/es/services/registry-broker/client/verification.d.ts.map +1 -1
- package/dist/es/services/registry-broker/private-key-signer.d.ts +1 -1
- package/dist/es/services/registry-broker/schemas.d.ts +13100 -220
- package/dist/es/services/registry-broker/schemas.d.ts.map +1 -1
- package/dist/es/services/registry-broker/types.d.ts +84 -2
- package/dist/es/services/registry-broker/types.d.ts.map +1 -1
- package/dist/es/standards-sdk.es116.js +1 -1
- package/dist/es/standards-sdk.es123.js +5 -5
- package/dist/es/standards-sdk.es132.js +1 -1
- package/dist/es/standards-sdk.es133.js +1 -1
- package/dist/es/standards-sdk.es134.js +1 -1
- package/dist/es/standards-sdk.es135.js +5 -5
- package/dist/es/standards-sdk.es137.js +1 -1
- package/dist/es/standards-sdk.es140.js +245 -0
- package/dist/es/standards-sdk.es140.js.map +1 -1
- package/dist/es/standards-sdk.es143.js +1 -1
- package/dist/es/standards-sdk.es144.js +48 -3
- package/dist/es/standards-sdk.es144.js.map +1 -1
- package/dist/es/standards-sdk.es155.js +19 -19
- package/dist/es/standards-sdk.es155.js.map +1 -1
- package/dist/es/standards-sdk.es156.js +54 -15
- package/dist/es/standards-sdk.es156.js.map +1 -1
- package/dist/es/standards-sdk.es157.js +76 -48
- package/dist/es/standards-sdk.es157.js.map +1 -1
- package/dist/es/standards-sdk.es158.js +66 -69
- package/dist/es/standards-sdk.es158.js.map +1 -1
- package/dist/es/standards-sdk.es159.js +180 -61
- package/dist/es/standards-sdk.es159.js.map +1 -1
- package/dist/es/standards-sdk.es160.js +14 -197
- package/dist/es/standards-sdk.es160.js.map +1 -1
- package/dist/es/standards-sdk.es161.js +165 -235
- package/dist/es/standards-sdk.es161.js.map +1 -1
- package/dist/es/standards-sdk.es162.js +314 -65
- package/dist/es/standards-sdk.es162.js.map +1 -1
- package/dist/es/standards-sdk.es163.js +294 -120
- package/dist/es/standards-sdk.es163.js.map +1 -1
- package/dist/es/standards-sdk.es164.js +322 -191
- package/dist/es/standards-sdk.es164.js.map +1 -1
- package/dist/es/standards-sdk.es165.js +279 -294
- package/dist/es/standards-sdk.es165.js.map +1 -1
- package/dist/es/standards-sdk.es166.js +63 -440
- package/dist/es/standards-sdk.es166.js.map +1 -1
- package/dist/es/standards-sdk.es167.js +65 -323
- package/dist/es/standards-sdk.es167.js.map +1 -1
- package/dist/es/standards-sdk.es168.js +543 -69
- package/dist/es/standards-sdk.es168.js.map +1 -1
- package/dist/es/standards-sdk.es169.js +1 -1
- package/dist/es/standards-sdk.es173.js +1 -1
- package/dist/es/standards-sdk.es179.js +37 -1
- package/dist/es/standards-sdk.es179.js.map +1 -1
- package/dist/es/standards-sdk.es22.js +1 -1
- package/dist/es/standards-sdk.es41.js +7 -7
- package/dist/es/standards-sdk.es41.js.map +1 -1
- package/dist/es/standards-sdk.es53.js +1 -1
- package/dist/es/standards-sdk.es56.js +1 -1
- package/dist/es/standards-sdk.es59.js +1 -1
- package/dist/es/standards-sdk.es60.js +1 -1
- package/dist/es/standards-sdk.es62.js +1 -1
- package/dist/es/standards-sdk.es63.js +2 -2
- package/dist/es/standards-sdk.es64.js +1 -1
- package/dist/es/standards-sdk.es65.js +1 -1
- package/dist/es/standards-sdk.es66.js +1 -1
- package/dist/es/standards-sdk.es69.js +1 -1
- package/dist/es/standards-sdk.es71.js +1 -1
- package/dist/es/standards-sdk.es72.js +1 -1
- package/dist/es/standards-sdk.es88.js +1 -1
- package/dist/es/standards-sdk.es98.js +1 -1
- package/dist/es/utils/key-type-detector.d.ts +1 -1
- package/dist/es/utils/parsers/crypto-parser.d.ts +1 -1
- package/dist/es/utils/parsers/file-parser.d.ts +1 -1
- package/dist/es/utils/parsers/hcs-parser.d.ts +1 -1
- package/dist/es/utils/parsers/hts-parser.d.ts +1 -1
- package/dist/es/utils/parsers/parser-utils.d.ts +1 -1
- package/dist/es/utils/parsers/schedule-parser.d.ts +1 -1
- package/dist/es/utils/parsers/scs-parser.d.ts +1 -1
- package/dist/es/utils/parsers/util-parser.d.ts +1 -1
- package/dist/es/utils/topic-fee-utils.d.ts +1 -1
- package/dist/es/utils/transaction-parser.d.ts +1 -1
- package/package.json +7 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es168.js","sources":["../../src/utils/parsers/parser-utils.ts"],"sourcesContent":["import { proto } from '@hashgraph/proto';\nimport { ContractId, Transaction } from '@hashgraph/sdk';\nimport { Buffer } from 'buffer';\n\nexport function parseKey(\n key: proto.IKey | null | undefined,\n): string | undefined {\n if (!key) {\n return undefined;\n }\n\n if (key.contractID) {\n return `ContractID: ${new ContractId(\n key.contractID.shardNum ?? 0,\n key.contractID.realmNum ?? 0,\n key.contractID.contractNum ?? 0,\n ).toString()}`;\n }\n if (key.ed25519) {\n return `ED25519: ${Buffer.from(key.ed25519).toString('hex')}`;\n }\n if (key.ECDSASecp256k1) {\n return `ECDSA_secp256k1: ${Buffer.from(key.ECDSASecp256k1).toString(\n 'hex',\n )}`;\n }\n if (key?.keyList?.keys?.length > 0) {\n const keys = key.keyList.keys.map(k => parseKey(k)).filter(Boolean);\n return `KeyList (${keys.length} keys): [${keys.join(', ')}]`;\n }\n if (key?.thresholdKey?.keys?.keys?.length > 0) {\n const keys = key.thresholdKey.keys.keys\n .map(k => parseKey(k))\n .filter(Boolean);\n return `ThresholdKey (${key.thresholdKey.threshold} of ${\n keys.length\n }): [${keys.join(', ')}]`;\n }\n if (key.delegatableContractId) {\n return `DelegatableContractID: ${new ContractId(\n key.delegatableContractId.shardNum ?? 0,\n key.delegatableContractId.realmNum ?? 0,\n key.delegatableContractId.contractNum ?? 0,\n ).toString()}`;\n }\n if (Object.keys(key).length === 0) {\n return 'Empty Key Structure';\n }\n\n return 'Unknown or Unset Key Type';\n}\n\n/**\n * Extract TransactionBody from Transaction object using protobuf parsing\n * This replaces fragile constructor name checking with reliable protobuf data\n */\nexport function extractTransactionBody(\n transaction: Transaction,\n): proto.ITransactionBody | null {\n try {\n const bytes = transaction.toBytes ? transaction.toBytes() : undefined;\n if (!bytes) {\n return null;\n }\n\n const decoded = proto.TransactionList.decode(bytes);\n if (!decoded.transactionList || decoded.transactionList.length === 0) {\n return null;\n }\n\n const tx = decoded.transactionList[0];\n\n if (tx.bodyBytes && tx.bodyBytes.length > 0) {\n return proto.TransactionBody.decode(tx.bodyBytes);\n }\n\n if (tx.signedTransactionBytes && tx.signedTransactionBytes.length > 0) {\n const signedTx = proto.SignedTransaction.decode(\n tx.signedTransactionBytes,\n );\n if (signedTx.bodyBytes) {\n return proto.TransactionBody.decode(signedTx.bodyBytes);\n }\n }\n\n return null;\n } catch (error) {\n return null;\n }\n}\n\n/**\n * Check if transaction has specific transaction type using protobuf data\n * This replaces constructor name checking with reliable protobuf field detection\n */\nexport function hasTransactionType(\n transaction: Transaction,\n transactionField: keyof proto.ITransactionBody,\n): boolean {\n const txBody = extractTransactionBody(transaction);\n return !!(txBody && txBody[transactionField]);\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,SACd,KACoB;AACpB,MAAI,CAAC,KAAK;AACR,WAAO;AAAA,EACT;AAEA,MAAI,IAAI,YAAY;AAClB,WAAO,eAAe,IAAI;AAAA,MACxB,IAAI,WAAW,YAAY;AAAA,MAC3B,IAAI,WAAW,YAAY;AAAA,MAC3B,IAAI,WAAW,eAAe;AAAA,IAAA,EAC9B,UAAU;AAAA,EACd;AACA,MAAI,IAAI,SAAS;AACf,WAAO,YAAY,OAAO,KAAK,IAAI,OAAO,EAAE,SAAS,KAAK,CAAC;AAAA,EAC7D;AACA,MAAI,IAAI,gBAAgB;AACtB,WAAO,oBAAoB,OAAO,KAAK,IAAI,cAAc,EAAE;AAAA,MACzD;AAAA,IAAA,CACD;AAAA,EACH;AACA,MAAI,KAAK,SAAS,MAAM,SAAS,GAAG;AAClC,UAAM,OAAO,IAAI,QAAQ,KAAK,IAAI,CAAA,MAAK,SAAS,CAAC,CAAC,EAAE,OAAO,OAAO;AAClE,WAAO,YAAY,KAAK,MAAM,YAAY,KAAK,KAAK,IAAI,CAAC;AAAA,EAC3D;AACA,MAAI,KAAK,cAAc,MAAM,MAAM,SAAS,GAAG;AAC7C,UAAM,OAAO,IAAI,aAAa,KAAK,KAChC,IAAI,CAAA,MAAK,SAAS,CAAC,CAAC,EACpB,OAAO,OAAO;AACjB,WAAO,iBAAiB,IAAI,aAAa,SAAS,OAChD,KAAK,MACP,OAAO,KAAK,KAAK,IAAI,CAAC;AAAA,EACxB;AACA,MAAI,IAAI,uBAAuB;AAC7B,WAAO,0BAA0B,IAAI;AAAA,MACnC,IAAI,sBAAsB,YAAY;AAAA,MACtC,IAAI,sBAAsB,YAAY;AAAA,MACtC,IAAI,sBAAsB,eAAe;AAAA,IAAA,EACzC,UAAU;AAAA,EACd;AACA,MAAI,OAAO,KAAK,GAAG,EAAE,WAAW,GAAG;AACjC,WAAO;AAAA,EACT;AAEA,SAAO;AACT;AAMO,SAAS,uBACd,aAC+B;AAC/B,MAAI;AACF,UAAM,QAAQ,YAAY,UAAU,YAAY,YAAY;AAC5D,QAAI,CAAC,OAAO;AACV,aAAO;AAAA,IACT;AAEA,UAAM,UAAU,MAAM,gBAAgB,OAAO,KAAK;AAClD,QAAI,CAAC,QAAQ,mBAAmB,QAAQ,gBAAgB,WAAW,GAAG;AACpE,aAAO;AAAA,IACT;AAEA,UAAM,KAAK,QAAQ,gBAAgB,CAAC;AAEpC,QAAI,GAAG,aAAa,GAAG,UAAU,SAAS,GAAG;AAC3C,aAAO,MAAM,gBAAgB,OAAO,GAAG,SAAS;AAAA,IAClD;AAEA,QAAI,GAAG,0BAA0B,GAAG,uBAAuB,SAAS,GAAG;AACrE,YAAM,WAAW,MAAM,kBAAkB;AAAA,QACvC,GAAG;AAAA,MAAA;AAEL,UAAI,SAAS,WAAW;AACtB,eAAO,MAAM,gBAAgB,OAAO,SAAS,SAAS;AAAA,MACxD;AAAA,IACF;AAEA,WAAO;AAAA,EACT,SAAS,OAAO;AACd,WAAO;AAAA,EACT;AACF;AAMO,SAAS,mBACd,aACA,kBACS;AACT,QAAM,SAAS,uBAAuB,WAAW;AACjD,SAAO,CAAC,EAAE,UAAU,OAAO,gBAAgB;AAC7C;"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es168.js","sources":["../../src/services/registry-broker/client/skills.ts"],"sourcesContent":["import type {\n JsonValue,\n SkillBadgeQuery,\n SkillBadgeResponse,\n SkillCatalogQueryOptions,\n SkillCatalogResponse,\n SkillDeprecationRecord,\n SkillDeprecationSetRequest,\n SkillDeprecationsResponse,\n SkillListOptions,\n SkillRecommendedVersionResponse,\n SkillRecommendedVersionSetRequest,\n SkillRegistryConfigResponse,\n SkillRegistryCategoriesResponse,\n SkillSecurityBreakdownRequest,\n SkillSecurityBreakdownResponse,\n SkillRegistryJobStatusResponse,\n SkillRegistryListResponse,\n SkillRegistryMineResponse,\n SkillRegistryMyListResponse,\n SkillRegistryOwnershipResponse,\n SkillRegistryPublishRequest,\n SkillRegistryPublishResponse,\n SkillRegistryQuoteRequest,\n SkillRegistryQuoteResponse,\n SkillRegistryTagsResponse,\n SkillRegistryVoteRequest,\n SkillRegistryVoteStatusResponse,\n SkillResolverManifestResponse,\n SkillRegistryVersionsResponse,\n SkillVerificationDomainProofChallengeRequest,\n SkillVerificationDomainProofChallengeResponse,\n SkillVerificationDomainProofVerifyRequest,\n SkillVerificationDomainProofVerifyResponse,\n SkillVerificationRequestCreateRequest,\n SkillVerificationRequestCreateResponse,\n SkillVerificationStatusResponse,\n} from '../types';\nimport {\n skillBadgeResponseSchema,\n skillCatalogResponseSchema,\n skillDeprecationRecordSchema,\n skillDeprecationsResponseSchema,\n skillRecommendedVersionResponseSchema,\n skillRegistryConfigResponseSchema,\n skillRegistryCategoriesResponseSchema,\n skillRegistryJobStatusResponseSchema,\n skillRegistryListResponseSchema,\n skillSecurityBreakdownResponseSchema,\n skillRegistryMineResponseSchema,\n skillRegistryMyListResponseSchema,\n skillRegistryOwnershipResponseSchema,\n skillRegistryPublishResponseSchema,\n skillRegistryQuoteResponseSchema,\n skillRegistryTagsResponseSchema,\n skillRegistryVoteStatusResponseSchema,\n skillResolverManifestResponseSchema,\n skillVerificationDomainProofChallengeResponseSchema,\n skillVerificationDomainProofVerifyResponseSchema,\n skillRegistryVersionsResponseSchema,\n skillVerificationRequestCreateResponseSchema,\n skillVerificationStatusResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient } from './base-client';\n\nexport async function skillsConfig(\n client: RegistryBrokerClient,\n): Promise<SkillRegistryConfigResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/config', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n skillRegistryConfigResponseSchema,\n 'skill registry config response',\n );\n}\n\nexport async function listSkills(\n client: RegistryBrokerClient,\n params: SkillListOptions = {},\n): Promise<SkillRegistryListResponse> {\n const query = new URLSearchParams();\n if (params.name) {\n query.set('name', params.name);\n }\n if (params.version) {\n query.set('version', params.version);\n }\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n if (params.cursor) {\n query.set('cursor', params.cursor);\n }\n if (typeof params.includeFiles === 'boolean') {\n query.set('includeFiles', params.includeFiles ? 'true' : 'false');\n }\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n if (params.q) {\n query.set('q', params.q);\n }\n if (params.tag) {\n query.set('tag', params.tag);\n }\n if (params.category) {\n query.set('category', params.category);\n }\n if (typeof params.featured === 'boolean') {\n query.set('featured', params.featured ? 'true' : 'false');\n }\n if (typeof params.verified === 'boolean') {\n query.set('verified', params.verified ? 'true' : 'false');\n }\n if (params.view) {\n query.set('view', params.view);\n }\n\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryListResponseSchema,\n 'skill registry list response',\n );\n}\n\nexport async function getSkillSecurityBreakdown(\n client: RegistryBrokerClient,\n params: SkillSecurityBreakdownRequest,\n): Promise<SkillSecurityBreakdownResponse> {\n const normalizedJobId = params.jobId.trim();\n if (!normalizedJobId) {\n throw new Error('jobId is required');\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/${encodeURIComponent(normalizedJobId)}/security-breakdown`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillSecurityBreakdownResponseSchema,\n 'skill security breakdown response',\n );\n}\n\nexport async function getSkillsCatalog(\n client: RegistryBrokerClient,\n params: SkillCatalogQueryOptions = {},\n): Promise<SkillCatalogResponse> {\n const query = new URLSearchParams();\n if (params.q) {\n query.set('q', params.q);\n }\n if (params.category) {\n query.set('category', params.category);\n }\n params.tags?.forEach(tag => {\n if (tag.trim()) {\n query.append('tag', tag.trim());\n }\n });\n if (typeof params.featured === 'boolean') {\n query.set('featured', params.featured ? 'true' : 'false');\n }\n if (typeof params.verified === 'boolean') {\n query.set('verified', params.verified ? 'true' : 'false');\n }\n if (params.channel) {\n query.set('channel', params.channel);\n }\n if (params.sortBy) {\n query.set('sortBy', params.sortBy);\n }\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n if (params.cursor) {\n query.set('cursor', params.cursor);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills/catalog${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillCatalogResponseSchema,\n 'skill catalog response',\n );\n}\n\nexport async function listSkillVersions(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillRegistryVersionsResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/versions?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryVersionsResponseSchema,\n 'skill registry versions response',\n );\n}\n\nexport async function listMySkills(\n client: RegistryBrokerClient,\n params: { limit?: number } = {},\n): Promise<SkillRegistryMineResponse> {\n const query = new URLSearchParams();\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills/mine${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryMineResponseSchema,\n 'skill registry mine response',\n );\n}\n\nexport async function getMySkillsList(\n client: RegistryBrokerClient,\n params: { limit?: number; cursor?: string; accountId?: string } = {},\n): Promise<SkillRegistryMyListResponse> {\n const query = new URLSearchParams();\n if (typeof params.limit === 'number' && Number.isFinite(params.limit)) {\n query.set('limit', String(Math.trunc(params.limit)));\n }\n if (params.cursor) {\n query.set('cursor', params.cursor);\n }\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(`/skills/my-list${suffix}`, {\n method: 'GET',\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryMyListResponseSchema,\n 'skill registry my list response',\n );\n}\n\nexport async function quoteSkillPublish(\n client: RegistryBrokerClient,\n payload: SkillRegistryQuoteRequest,\n): Promise<SkillRegistryQuoteResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/quote', {\n method: 'POST',\n body: payload,\n headers: { 'content-type': 'application/json' },\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryQuoteResponseSchema,\n 'skill registry quote response',\n );\n}\n\nexport async function publishSkill(\n client: RegistryBrokerClient,\n payload: SkillRegistryPublishRequest,\n): Promise<SkillRegistryPublishResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/publish', {\n method: 'POST',\n body: payload,\n headers: { 'content-type': 'application/json' },\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryPublishResponseSchema,\n 'skill registry publish response',\n );\n}\n\nexport async function getSkillPublishJob(\n client: RegistryBrokerClient,\n jobId: string,\n params: { accountId?: string } = {},\n): Promise<SkillRegistryJobStatusResponse> {\n const normalized = jobId.trim();\n if (!normalized) {\n throw new Error('jobId is required');\n }\n\n const query = new URLSearchParams();\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n const suffix = query.size > 0 ? `?${query.toString()}` : '';\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/jobs/${encodeURIComponent(normalized)}${suffix}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryJobStatusResponseSchema,\n 'skill registry job status response',\n );\n}\n\nexport async function getSkillOwnership(\n client: RegistryBrokerClient,\n params: { name: string; accountId?: string },\n): Promise<SkillRegistryOwnershipResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n if (params.accountId) {\n query.set('accountId', params.accountId);\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/ownership?${query.toString()}`,\n {\n method: 'GET',\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryOwnershipResponseSchema,\n 'skill registry ownership response',\n );\n}\n\nexport async function getRecommendedSkillVersion(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillRecommendedVersionResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n const raw = await client.requestJson<JsonValue>(\n `/skills/recommended?${query.toString()}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n skillRecommendedVersionResponseSchema,\n 'skill recommended version response',\n );\n}\n\nexport async function setRecommendedSkillVersion(\n client: RegistryBrokerClient,\n payload: SkillRecommendedVersionSetRequest,\n): Promise<SkillRecommendedVersionResponse> {\n const normalizedName = payload.name.trim();\n const normalizedVersion = payload.version.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n if (!normalizedVersion) {\n throw new Error('version is required');\n }\n const raw = await client.requestJson<JsonValue>('/skills/recommended', {\n method: 'POST',\n body: {\n name: normalizedName,\n version: normalizedVersion,\n },\n headers: { 'content-type': 'application/json' },\n });\n return client.parseWithSchema(\n raw,\n skillRecommendedVersionResponseSchema,\n 'skill recommended version response',\n );\n}\n\nexport async function getSkillDeprecations(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillDeprecationsResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n const raw = await client.requestJson<JsonValue>(\n `/skills/deprecations?${query.toString()}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n skillDeprecationsResponseSchema,\n 'skill deprecations response',\n );\n}\n\nexport async function setSkillDeprecation(\n client: RegistryBrokerClient,\n payload: SkillDeprecationSetRequest,\n): Promise<SkillDeprecationRecord> {\n const normalizedName = payload.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n const version = payload.version?.trim();\n const reason = payload.reason.trim();\n if (!reason) {\n throw new Error('reason is required');\n }\n const replacementRef = payload.replacementRef?.trim();\n const raw = await client.requestJson<JsonValue>('/skills/deprecate', {\n method: 'POST',\n body: {\n name: normalizedName,\n version,\n reason,\n replacementRef,\n },\n headers: { 'content-type': 'application/json' },\n });\n return client.parseWithSchema(\n raw,\n skillDeprecationRecordSchema,\n 'skill deprecation response',\n );\n}\n\nexport async function getSkillBadge(\n client: RegistryBrokerClient,\n params: SkillBadgeQuery,\n): Promise<SkillBadgeResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n if (params.metric) {\n query.set('metric', params.metric);\n }\n if (params.label?.trim()) {\n query.set('label', params.label.trim());\n }\n if (params.style) {\n query.set('style', params.style);\n }\n const raw = await client.requestJson<JsonValue>(\n `/skills/badge?${query.toString()}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n skillBadgeResponseSchema,\n 'skill badge response',\n );\n}\n\nexport async function listSkillTags(\n client: RegistryBrokerClient,\n): Promise<SkillRegistryTagsResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/tags', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n skillRegistryTagsResponseSchema,\n 'skill tags response',\n );\n}\n\nexport async function listSkillCategories(\n client: RegistryBrokerClient,\n): Promise<SkillRegistryCategoriesResponse> {\n const raw = await client.requestJson<JsonValue>('/skills/categories', {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n skillRegistryCategoriesResponseSchema,\n 'skill categories response',\n );\n}\n\nexport async function resolveSkillMarkdown(\n client: RegistryBrokerClient,\n skillRef: string,\n): Promise<string> {\n const normalizedSkillRef = skillRef.trim();\n if (!normalizedSkillRef) {\n throw new Error('skillRef is required');\n }\n const response = await client.request(\n `/skills/${encodeURIComponent(normalizedSkillRef)}/SKILL.md`,\n {\n method: 'GET',\n headers: {\n accept: 'text/markdown, text/plain;q=0.9, */*;q=0.8',\n },\n },\n );\n return response.text();\n}\n\nexport async function resolveSkillManifest(\n client: RegistryBrokerClient,\n skillRef: string,\n): Promise<SkillResolverManifestResponse> {\n const normalizedSkillRef = skillRef.trim();\n if (!normalizedSkillRef) {\n throw new Error('skillRef is required');\n }\n const raw = await client.requestJson<JsonValue>(\n `/skills/${encodeURIComponent(normalizedSkillRef)}/manifest`,\n {\n method: 'GET',\n },\n );\n return client.parseWithSchema(\n raw,\n skillResolverManifestResponseSchema,\n 'skill resolver manifest response',\n );\n}\n\nexport async function getSkillVoteStatus(\n client: RegistryBrokerClient,\n params: { name: string },\n): Promise<SkillRegistryVoteStatusResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/vote?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillRegistryVoteStatusResponseSchema,\n 'skill registry vote status response',\n );\n}\n\nexport async function setSkillVote(\n client: RegistryBrokerClient,\n payload: SkillRegistryVoteRequest,\n): Promise<SkillRegistryVoteStatusResponse> {\n const normalizedName = payload.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const raw = await client.requestJson<JsonValue>('/skills/vote', {\n method: 'POST',\n body: { name: normalizedName, upvoted: payload.upvoted },\n headers: { 'content-type': 'application/json' },\n });\n\n return client.parseWithSchema(\n raw,\n skillRegistryVoteStatusResponseSchema,\n 'skill registry vote status response',\n );\n}\n\nexport async function requestSkillVerification(\n client: RegistryBrokerClient,\n payload: SkillVerificationRequestCreateRequest,\n): Promise<SkillVerificationRequestCreateResponse> {\n const normalizedName = payload.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const raw = await client.requestJson<JsonValue>(\n '/skills/verification/request',\n {\n method: 'POST',\n body: {\n name: normalizedName,\n version: payload.version,\n tier: payload.tier,\n },\n headers: { 'content-type': 'application/json' },\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillVerificationRequestCreateResponseSchema,\n 'skill verification request create response',\n );\n}\n\nexport async function getSkillVerificationStatus(\n client: RegistryBrokerClient,\n params: { name: string; version?: string },\n): Promise<SkillVerificationStatusResponse> {\n const normalizedName = params.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const query = new URLSearchParams();\n query.set('name', normalizedName);\n if (params.version) {\n query.set('version', params.version);\n }\n\n const raw = await client.requestJson<JsonValue>(\n `/skills/verification/status?${query.toString()}`,\n { method: 'GET' },\n );\n\n return client.parseWithSchema(\n raw,\n skillVerificationStatusResponseSchema,\n 'skill verification status response',\n );\n}\n\nexport async function createSkillDomainProofChallenge(\n client: RegistryBrokerClient,\n payload: SkillVerificationDomainProofChallengeRequest,\n): Promise<SkillVerificationDomainProofChallengeResponse> {\n const normalizedName = payload.name.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n\n const raw = await client.requestJson<JsonValue>(\n '/skills/verification/domain/challenge',\n {\n method: 'POST',\n body: {\n name: normalizedName,\n version: payload.version,\n domain: payload.domain,\n },\n headers: { 'content-type': 'application/json' },\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillVerificationDomainProofChallengeResponseSchema,\n 'skill domain proof challenge response',\n );\n}\n\nexport async function verifySkillDomainProof(\n client: RegistryBrokerClient,\n payload: SkillVerificationDomainProofVerifyRequest,\n): Promise<SkillVerificationDomainProofVerifyResponse> {\n const normalizedName = payload.name.trim();\n const challengeToken = payload.challengeToken.trim();\n if (!normalizedName) {\n throw new Error('name is required');\n }\n if (!challengeToken) {\n throw new Error('challengeToken is required');\n }\n\n const raw = await client.requestJson<JsonValue>(\n '/skills/verification/domain/verify',\n {\n method: 'POST',\n body: {\n name: normalizedName,\n version: payload.version,\n domain: payload.domain,\n challengeToken,\n },\n headers: { 'content-type': 'application/json' },\n },\n );\n\n return client.parseWithSchema(\n raw,\n skillVerificationDomainProofVerifyResponseSchema,\n 'skill domain proof verify response',\n );\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -3,7 +3,7 @@ import { Buffer } from "buffer";
|
|
|
3
3
|
import { randomBytes } from "crypto";
|
|
4
4
|
import { secp256k1 } from "@noble/curves/secp256k1.js";
|
|
5
5
|
import { registerEncryptionKeyResponseSchema } from "./standards-sdk.es140.js";
|
|
6
|
-
import { optionalImport } from "./standards-sdk.
|
|
6
|
+
import { optionalImport } from "./standards-sdk.es157.js";
|
|
7
7
|
const getFs = async () => {
|
|
8
8
|
const fsModule = await optionalImport("node:fs");
|
|
9
9
|
if (fsModule && typeof fsModule.existsSync === "function" && typeof fsModule.readFileSync === "function" && typeof fsModule.writeFileSync === "function" && typeof fsModule.appendFileSync === "function") {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { creditPurchaseResponseSchema, x402MinimumsResponseSchema, x402CreditPurchaseResponseSchema } from "./standards-sdk.es140.js";
|
|
2
2
|
import { normalizeHexPrivateKey } from "./standards-sdk.es171.js";
|
|
3
|
-
import { optionalImport } from "./standards-sdk.
|
|
3
|
+
import { optionalImport } from "./standards-sdk.es157.js";
|
|
4
4
|
async function loadX402Dependencies(client) {
|
|
5
5
|
const [{ default: axios }, x402Axios, x402Types] = await Promise.all([
|
|
6
6
|
import("axios"),
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { registerStatusResponseSchema, moltbookOwnerRegistrationUpdateResponseSchema, verificationStatusResponseSchema, verificationChallengeResponseSchema, verificationChallengeDetailsResponseSchema, verificationVerifyResponseSchema, verificationOwnershipResponseSchema, verificationVerifySenderResponseSchema } from "./standards-sdk.es140.js";
|
|
1
|
+
import { registerStatusResponseSchema, moltbookOwnerRegistrationUpdateResponseSchema, verificationStatusResponseSchema, verificationChallengeResponseSchema, verificationChallengeDetailsResponseSchema, verificationVerifyResponseSchema, verificationOwnershipResponseSchema, verificationVerifySenderResponseSchema, verificationDnsStatusResponseSchema } from "./standards-sdk.es140.js";
|
|
2
2
|
async function getVerificationStatus(client, uaid) {
|
|
3
3
|
const raw = await client.requestJson(
|
|
4
4
|
`/verification/status/${encodeURIComponent(uaid)}`,
|
|
@@ -74,6 +74,40 @@ async function verifySenderOwnership(client, uaid) {
|
|
|
74
74
|
"verification sender response"
|
|
75
75
|
);
|
|
76
76
|
}
|
|
77
|
+
async function verifyUaidDnsTxt(client, payload) {
|
|
78
|
+
const raw = await client.requestJson("/verification/dns/verify", {
|
|
79
|
+
method: "POST",
|
|
80
|
+
headers: { "content-type": "application/json" },
|
|
81
|
+
body: {
|
|
82
|
+
uaid: payload.uaid,
|
|
83
|
+
...payload.persist !== void 0 ? { persist: payload.persist } : {}
|
|
84
|
+
}
|
|
85
|
+
});
|
|
86
|
+
return client.parseWithSchema(
|
|
87
|
+
raw,
|
|
88
|
+
verificationDnsStatusResponseSchema,
|
|
89
|
+
"verification dns verify response"
|
|
90
|
+
);
|
|
91
|
+
}
|
|
92
|
+
async function getVerificationDnsStatus(client, uaid, query) {
|
|
93
|
+
const params = new URLSearchParams();
|
|
94
|
+
if (query?.refresh !== void 0) {
|
|
95
|
+
params.set("refresh", String(query.refresh));
|
|
96
|
+
}
|
|
97
|
+
if (query?.persist !== void 0) {
|
|
98
|
+
params.set("persist", String(query.persist));
|
|
99
|
+
}
|
|
100
|
+
const queryString = params.toString();
|
|
101
|
+
const path = `/verification/dns/status/${encodeURIComponent(uaid)}${queryString ? `?${queryString}` : ""}`;
|
|
102
|
+
const raw = await client.requestJson(path, {
|
|
103
|
+
method: "GET"
|
|
104
|
+
});
|
|
105
|
+
return client.parseWithSchema(
|
|
106
|
+
raw,
|
|
107
|
+
verificationDnsStatusResponseSchema,
|
|
108
|
+
"verification dns status response"
|
|
109
|
+
);
|
|
110
|
+
}
|
|
77
111
|
async function getRegisterStatus(client, uaid) {
|
|
78
112
|
const raw = await client.requestJson(
|
|
79
113
|
`/register/status/${encodeURIComponent(uaid)}`,
|
|
@@ -110,10 +144,12 @@ export {
|
|
|
110
144
|
createVerificationChallenge,
|
|
111
145
|
getRegisterStatus,
|
|
112
146
|
getVerificationChallenge,
|
|
147
|
+
getVerificationDnsStatus,
|
|
113
148
|
getVerificationOwnership,
|
|
114
149
|
getVerificationStatus,
|
|
115
150
|
registerOwnedMoltbookAgent,
|
|
116
151
|
verifySenderOwnership,
|
|
152
|
+
verifyUaidDnsTxt,
|
|
117
153
|
verifyVerificationChallenge
|
|
118
154
|
};
|
|
119
155
|
//# sourceMappingURL=standards-sdk.es179.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es179.js","sources":["../../src/services/registry-broker/client/verification.ts"],"sourcesContent":["import type {\n JsonValue,\n MoltbookOwnerRegistrationUpdateRequest,\n MoltbookOwnerRegistrationUpdateResponse,\n RegisterStatusResponse,\n VerificationChallengeDetailsResponse,\n VerificationChallengeResponse,\n VerificationOwnershipResponse,\n VerificationStatusResponse,\n VerificationVerifyResponse,\n VerificationVerifySenderResponse,\n} from '../types';\nimport {\n moltbookOwnerRegistrationUpdateResponseSchema,\n registerStatusResponseSchema,\n verificationChallengeDetailsResponseSchema,\n verificationChallengeResponseSchema,\n verificationOwnershipResponseSchema,\n verificationStatusResponseSchema,\n verificationVerifyResponseSchema,\n verificationVerifySenderResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient } from './base-client';\n\nexport async function getVerificationStatus(\n client: RegistryBrokerClient,\n uaid: string,\n): Promise<VerificationStatusResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/verification/status/${encodeURIComponent(uaid)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n verificationStatusResponseSchema,\n 'verification status response',\n );\n}\n\nexport async function createVerificationChallenge(\n client: RegistryBrokerClient,\n uaid: string,\n): Promise<VerificationChallengeResponse> {\n const raw = await client.requestJson<JsonValue>('/verification/challenge', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: { uaid },\n });\n return client.parseWithSchema(\n raw,\n verificationChallengeResponseSchema,\n 'verification challenge response',\n );\n}\n\nexport async function getVerificationChallenge(\n client: RegistryBrokerClient,\n challengeId: string,\n): Promise<VerificationChallengeDetailsResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/verification/challenge/${encodeURIComponent(challengeId)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n verificationChallengeDetailsResponseSchema,\n 'verification challenge details response',\n );\n}\n\nexport async function verifyVerificationChallenge(\n client: RegistryBrokerClient,\n params: { challengeId: string; method?: 'moltbook-post' | string },\n): Promise<VerificationVerifyResponse> {\n const raw = await client.requestJson<JsonValue>('/verification/verify', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: {\n challengeId: params.challengeId,\n method: params.method ?? 'moltbook-post',\n },\n });\n return client.parseWithSchema(\n raw,\n verificationVerifyResponseSchema,\n 'verification verify response',\n );\n}\n\nexport async function getVerificationOwnership(\n client: RegistryBrokerClient,\n uaid: string,\n): Promise<VerificationOwnershipResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/verification/ownership/${encodeURIComponent(uaid)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n verificationOwnershipResponseSchema,\n 'verification ownership response',\n );\n}\n\nexport async function verifySenderOwnership(\n client: RegistryBrokerClient,\n uaid: string,\n): Promise<VerificationVerifySenderResponse> {\n const raw = await client.requestJson<JsonValue>(\n '/verification/verify-sender',\n {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: { uaid },\n },\n );\n return client.parseWithSchema(\n raw,\n verificationVerifySenderResponseSchema,\n 'verification sender response',\n );\n}\n\nexport async function getRegisterStatus(\n client: RegistryBrokerClient,\n uaid: string,\n): Promise<RegisterStatusResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/register/status/${encodeURIComponent(uaid)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n registerStatusResponseSchema,\n 'register status response',\n );\n}\n\nexport async function registerOwnedMoltbookAgent(\n client: RegistryBrokerClient,\n uaid: string,\n request: MoltbookOwnerRegistrationUpdateRequest,\n): Promise<MoltbookOwnerRegistrationUpdateResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/register/${encodeURIComponent(uaid)}`,\n {\n method: 'PUT',\n headers: { 'content-type': 'application/json' },\n body: {\n registered: request.registered ?? true,\n ...(request.name ? { name: request.name } : {}),\n ...(request.description ? { description: request.description } : {}),\n ...(request.endpoint ? { endpoint: request.endpoint } : {}),\n ...(request.metadata ? { metadata: request.metadata } : {}),\n },\n },\n );\n return client.parseWithSchema(\n raw,\n moltbookOwnerRegistrationUpdateResponseSchema,\n 'moltbook owner registration update response',\n );\n}\n"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"standards-sdk.es179.js","sources":["../../src/services/registry-broker/client/verification.ts"],"sourcesContent":["import type {\n JsonValue,\n MoltbookOwnerRegistrationUpdateRequest,\n MoltbookOwnerRegistrationUpdateResponse,\n RegisterStatusResponse,\n VerificationDnsStatusQuery,\n VerificationDnsStatusResponse,\n VerificationDnsVerifyRequest,\n VerificationChallengeDetailsResponse,\n VerificationChallengeResponse,\n VerificationOwnershipResponse,\n VerificationStatusResponse,\n VerificationVerifyResponse,\n VerificationVerifySenderResponse,\n} from '../types';\nimport {\n moltbookOwnerRegistrationUpdateResponseSchema,\n registerStatusResponseSchema,\n verificationChallengeDetailsResponseSchema,\n verificationChallengeResponseSchema,\n verificationDnsStatusResponseSchema,\n verificationOwnershipResponseSchema,\n verificationStatusResponseSchema,\n verificationVerifyResponseSchema,\n verificationVerifySenderResponseSchema,\n} from '../schemas';\nimport type { RegistryBrokerClient } from './base-client';\n\nexport async function getVerificationStatus(\n client: RegistryBrokerClient,\n uaid: string,\n): Promise<VerificationStatusResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/verification/status/${encodeURIComponent(uaid)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n verificationStatusResponseSchema,\n 'verification status response',\n );\n}\n\nexport async function createVerificationChallenge(\n client: RegistryBrokerClient,\n uaid: string,\n): Promise<VerificationChallengeResponse> {\n const raw = await client.requestJson<JsonValue>('/verification/challenge', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: { uaid },\n });\n return client.parseWithSchema(\n raw,\n verificationChallengeResponseSchema,\n 'verification challenge response',\n );\n}\n\nexport async function getVerificationChallenge(\n client: RegistryBrokerClient,\n challengeId: string,\n): Promise<VerificationChallengeDetailsResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/verification/challenge/${encodeURIComponent(challengeId)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n verificationChallengeDetailsResponseSchema,\n 'verification challenge details response',\n );\n}\n\nexport async function verifyVerificationChallenge(\n client: RegistryBrokerClient,\n params: { challengeId: string; method?: 'moltbook-post' | string },\n): Promise<VerificationVerifyResponse> {\n const raw = await client.requestJson<JsonValue>('/verification/verify', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: {\n challengeId: params.challengeId,\n method: params.method ?? 'moltbook-post',\n },\n });\n return client.parseWithSchema(\n raw,\n verificationVerifyResponseSchema,\n 'verification verify response',\n );\n}\n\nexport async function getVerificationOwnership(\n client: RegistryBrokerClient,\n uaid: string,\n): Promise<VerificationOwnershipResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/verification/ownership/${encodeURIComponent(uaid)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n verificationOwnershipResponseSchema,\n 'verification ownership response',\n );\n}\n\nexport async function verifySenderOwnership(\n client: RegistryBrokerClient,\n uaid: string,\n): Promise<VerificationVerifySenderResponse> {\n const raw = await client.requestJson<JsonValue>(\n '/verification/verify-sender',\n {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: { uaid },\n },\n );\n return client.parseWithSchema(\n raw,\n verificationVerifySenderResponseSchema,\n 'verification sender response',\n );\n}\n\nexport async function verifyUaidDnsTxt(\n client: RegistryBrokerClient,\n payload: VerificationDnsVerifyRequest,\n): Promise<VerificationDnsStatusResponse> {\n const raw = await client.requestJson<JsonValue>('/verification/dns/verify', {\n method: 'POST',\n headers: { 'content-type': 'application/json' },\n body: {\n uaid: payload.uaid,\n ...(payload.persist !== undefined ? { persist: payload.persist } : {}),\n },\n });\n return client.parseWithSchema(\n raw,\n verificationDnsStatusResponseSchema,\n 'verification dns verify response',\n );\n}\n\nexport async function getVerificationDnsStatus(\n client: RegistryBrokerClient,\n uaid: string,\n query?: VerificationDnsStatusQuery,\n): Promise<VerificationDnsStatusResponse> {\n const params = new URLSearchParams();\n if (query?.refresh !== undefined) {\n params.set('refresh', String(query.refresh));\n }\n if (query?.persist !== undefined) {\n params.set('persist', String(query.persist));\n }\n\n const queryString = params.toString();\n const path = `/verification/dns/status/${encodeURIComponent(uaid)}${\n queryString ? `?${queryString}` : ''\n }`;\n const raw = await client.requestJson<JsonValue>(path, {\n method: 'GET',\n });\n return client.parseWithSchema(\n raw,\n verificationDnsStatusResponseSchema,\n 'verification dns status response',\n );\n}\n\nexport async function getRegisterStatus(\n client: RegistryBrokerClient,\n uaid: string,\n): Promise<RegisterStatusResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/register/status/${encodeURIComponent(uaid)}`,\n { method: 'GET' },\n );\n return client.parseWithSchema(\n raw,\n registerStatusResponseSchema,\n 'register status response',\n );\n}\n\nexport async function registerOwnedMoltbookAgent(\n client: RegistryBrokerClient,\n uaid: string,\n request: MoltbookOwnerRegistrationUpdateRequest,\n): Promise<MoltbookOwnerRegistrationUpdateResponse> {\n const raw = await client.requestJson<JsonValue>(\n `/register/${encodeURIComponent(uaid)}`,\n {\n method: 'PUT',\n headers: { 'content-type': 'application/json' },\n body: {\n registered: request.registered ?? true,\n ...(request.name ? { name: request.name } : {}),\n ...(request.description ? { description: request.description } : {}),\n ...(request.endpoint ? { endpoint: request.endpoint } : {}),\n ...(request.metadata ? { metadata: request.metadata } : {}),\n },\n },\n );\n return client.parseWithSchema(\n raw,\n moltbookOwnerRegistrationUpdateResponseSchema,\n 'moltbook owner registration update response',\n );\n}\n"],"names":[],"mappings":";AA4BA,eAAsB,sBACpB,QACA,MACqC;AACrC,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB,wBAAwB,mBAAmB,IAAI,CAAC;AAAA,IAChD,EAAE,QAAQ,MAAA;AAAA,EAAM;AAElB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,4BACpB,QACA,MACwC;AACxC,QAAM,MAAM,MAAM,OAAO,YAAuB,2BAA2B;AAAA,IACzE,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAC3B,MAAM,EAAE,KAAA;AAAA,EAAK,CACd;AACD,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,yBACpB,QACA,aAC+C;AAC/C,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB,2BAA2B,mBAAmB,WAAW,CAAC;AAAA,IAC1D,EAAE,QAAQ,MAAA;AAAA,EAAM;AAElB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,4BACpB,QACA,QACqC;AACrC,QAAM,MAAM,MAAM,OAAO,YAAuB,wBAAwB;AAAA,IACtE,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAC3B,MAAM;AAAA,MACJ,aAAa,OAAO;AAAA,MACpB,QAAQ,OAAO,UAAU;AAAA,IAAA;AAAA,EAC3B,CACD;AACD,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,yBACpB,QACA,MACwC;AACxC,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB,2BAA2B,mBAAmB,IAAI,CAAC;AAAA,IACnD,EAAE,QAAQ,MAAA;AAAA,EAAM;AAElB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,sBACpB,QACA,MAC2C;AAC3C,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB;AAAA,IACA;AAAA,MACE,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,MAC3B,MAAM,EAAE,KAAA;AAAA,IAAK;AAAA,EACf;AAEF,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,iBACpB,QACA,SACwC;AACxC,QAAM,MAAM,MAAM,OAAO,YAAuB,4BAA4B;AAAA,IAC1E,QAAQ;AAAA,IACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,IAC3B,MAAM;AAAA,MACJ,MAAM,QAAQ;AAAA,MACd,GAAI,QAAQ,YAAY,SAAY,EAAE,SAAS,QAAQ,YAAY,CAAA;AAAA,IAAC;AAAA,EACtE,CACD;AACD,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,yBACpB,QACA,MACA,OACwC;AACxC,QAAM,SAAS,IAAI,gBAAA;AACnB,MAAI,OAAO,YAAY,QAAW;AAChC,WAAO,IAAI,WAAW,OAAO,MAAM,OAAO,CAAC;AAAA,EAC7C;AACA,MAAI,OAAO,YAAY,QAAW;AAChC,WAAO,IAAI,WAAW,OAAO,MAAM,OAAO,CAAC;AAAA,EAC7C;AAEA,QAAM,cAAc,OAAO,SAAA;AAC3B,QAAM,OAAO,4BAA4B,mBAAmB,IAAI,CAAC,GAC/D,cAAc,IAAI,WAAW,KAAK,EACpC;AACA,QAAM,MAAM,MAAM,OAAO,YAAuB,MAAM;AAAA,IACpD,QAAQ;AAAA,EAAA,CACT;AACD,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,kBACpB,QACA,MACiC;AACjC,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB,oBAAoB,mBAAmB,IAAI,CAAC;AAAA,IAC5C,EAAE,QAAQ,MAAA;AAAA,EAAM;AAElB,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;AAEA,eAAsB,2BACpB,QACA,MACA,SACkD;AAClD,QAAM,MAAM,MAAM,OAAO;AAAA,IACvB,aAAa,mBAAmB,IAAI,CAAC;AAAA,IACrC;AAAA,MACE,QAAQ;AAAA,MACR,SAAS,EAAE,gBAAgB,mBAAA;AAAA,MAC3B,MAAM;AAAA,QACJ,YAAY,QAAQ,cAAc;AAAA,QAClC,GAAI,QAAQ,OAAO,EAAE,MAAM,QAAQ,KAAA,IAAS,CAAA;AAAA,QAC5C,GAAI,QAAQ,cAAc,EAAE,aAAa,QAAQ,YAAA,IAAgB,CAAA;AAAA,QACjE,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAA,IAAa,CAAA;AAAA,QACxD,GAAI,QAAQ,WAAW,EAAE,UAAU,QAAQ,SAAA,IAAa,CAAA;AAAA,MAAC;AAAA,IAC3D;AAAA,EACF;AAEF,SAAO,OAAO;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAEJ;"}
|
|
@@ -196,12 +196,12 @@ class WasmValidator {
|
|
|
196
196
|
async parseModule(data) {
|
|
197
197
|
const textData = data.slice(8);
|
|
198
198
|
const dataStr = new TextDecoder("utf-8", { fatal: false }).decode(textData);
|
|
199
|
-
const exports = [];
|
|
200
|
-
if (dataStr.includes("INFO")) exports.push("INFO");
|
|
201
|
-
if (dataStr.includes("POST")) exports.push("POST");
|
|
202
|
-
if (dataStr.includes("GET")) exports.push("GET");
|
|
203
|
-
if (exports.length === 0 && data.length > 8) {
|
|
204
|
-
exports.push("INFO", "POST", "GET");
|
|
199
|
+
const exports$1 = [];
|
|
200
|
+
if (dataStr.includes("INFO")) exports$1.push("INFO");
|
|
201
|
+
if (dataStr.includes("POST")) exports$1.push("POST");
|
|
202
|
+
if (dataStr.includes("GET")) exports$1.push("GET");
|
|
203
|
+
if (exports$1.length === 0 && data.length > 8) {
|
|
204
|
+
exports$1.push("INFO", "POST", "GET");
|
|
205
205
|
}
|
|
206
206
|
const imports = [];
|
|
207
207
|
const importParts = dataStr.split("import:");
|
|
@@ -232,7 +232,7 @@ class WasmValidator {
|
|
|
232
232
|
}
|
|
233
233
|
const hasStartFunction = dataStr.includes("start:true");
|
|
234
234
|
return {
|
|
235
|
-
exports,
|
|
235
|
+
exports: exports$1,
|
|
236
236
|
imports,
|
|
237
237
|
memory: { initial, maximum },
|
|
238
238
|
functionCount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"standards-sdk.es41.js","sources":["../../src/hcs-12/validation/wasm-validator.ts"],"sourcesContent":["/**\n * WASM Validator for HCS-12 HashLinks\n *\n * Validates WebAssembly modules for security, compatibility, and HashLink requirements.\n */\n\nimport { Logger } from '../../utils/logger';\nimport { getCryptoAdapter } from '../../utils/crypto-abstraction';\nimport { isSSREnvironment } from '../../utils/crypto-env';\nimport { ModuleInfo } from '../types';\n\nexport interface WasmValidationResult {\n isValid: boolean;\n errors: string[];\n warnings: string[];\n version?: number;\n exports?: string[];\n imports?: ImportInfo[];\n memoryRequirements?: MemoryRequirements;\n exportSignatures?: Record<string, ExportSignature>;\n moduleInfo?: ModuleInfo;\n}\n\nexport interface ImportInfo {\n module: string;\n name: string;\n type: string;\n}\n\nexport interface MemoryRequirements {\n initial: number;\n maximum?: number;\n}\n\nexport interface ExportSignature {\n type: string;\n params: string[];\n results: string[];\n}\n\n/**\n * Validator for WASM modules\n */\nexport class WasmValidator {\n private logger: Logger;\n private cryptoAdapter = getCryptoAdapter();\n\n private readonly REQUIRED_EXPORTS = ['INFO', 'POST', 'GET'];\n\n private readonly ALLOWED_IMPORTS = new Set([\n 'env.console_log',\n 'env.get_network',\n 'env.submit_hcs_message',\n 'env.memory',\n ]);\n\n private readonly MAX_INITIAL_MEMORY = 256;\n\n private readonly WARN_MODULE_SIZE = 1 * 1024 * 1024;\n\n private readonly MAX_MODULE_SIZE = 5 * 1024 * 1024;\n\n constructor(logger: Logger) {\n this.logger = logger;\n }\n\n /**\n * Validate a WASM module\n */\n async validate(wasmData: Uint8Array): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n const result: WasmValidationResult = {\n isValid: true,\n errors,\n warnings,\n };\n\n try {\n if (wasmData.length > this.WARN_MODULE_SIZE) {\n warnings.push(\n `Large module size: ${(wasmData.length / 1024 / 1024).toFixed(2)} MB`,\n );\n }\n if (wasmData.length > this.MAX_MODULE_SIZE) {\n errors.push('Module size exceeds maximum allowed');\n result.isValid = false;\n }\n\n if (!this.validateMagicNumber(wasmData)) {\n errors.push('Invalid WASM magic number');\n result.isValid = false;\n return result;\n }\n\n const version = this.getWasmVersion(wasmData);\n result.version = version;\n if (version !== 1) {\n errors.push(`Unsupported WASM version: ${version}`);\n result.isValid = false;\n return result;\n }\n\n const moduleInfo = await this.parseModule(wasmData);\n\n result.exports = moduleInfo.exports;\n for (const required of this.REQUIRED_EXPORTS) {\n if (!moduleInfo.exports.includes(required)) {\n errors.push(`Missing required export: ${required}`);\n result.isValid = false;\n }\n }\n\n result.imports = moduleInfo.imports;\n for (const imp of moduleInfo.imports) {\n const importName = `${imp.module}.${imp.name}`;\n if (!this.ALLOWED_IMPORTS.has(importName)) {\n errors.push(`Disallowed import: ${importName}`);\n result.isValid = false;\n }\n }\n\n if (moduleInfo.memory) {\n result.memoryRequirements = moduleInfo.memory;\n if (moduleInfo.memory.initial > this.MAX_INITIAL_MEMORY) {\n errors.push(\n `Excessive initial memory: ${moduleInfo.memory.initial} pages`,\n );\n result.isValid = false;\n }\n }\n\n if (moduleInfo.hasStartFunction) {\n warnings.push('Module has start function - may execute code on load');\n }\n\n if (moduleInfo.functionCount > 100) {\n warnings.push(`High function count: ${moduleInfo.functionCount}`);\n }\n\n if (this.hasSuspiciousPatterns(wasmData)) {\n warnings.push('Potentially unsafe operation detected');\n }\n\n result.exportSignatures = moduleInfo.exportSignatures;\n } catch (error) {\n this.logger.error('WASM validation failed', { error });\n errors.push(\n `Validation error: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n result.isValid = false;\n }\n\n return result;\n }\n\n /**\n * Validate INFO function return\n */\n async validateInfoFunction(\n infoFunc: () => Promise<string> | string,\n ): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n\n try {\n const infoStr = await infoFunc();\n const info = JSON.parse(infoStr);\n\n if (!info.name || !info.version || !info.hashlinks_version) {\n errors.push('INFO missing required fields');\n return {\n isValid: false,\n errors,\n warnings,\n };\n }\n\n return {\n isValid: true,\n errors,\n warnings,\n moduleInfo: info,\n };\n } catch (error) {\n errors.push('INFO function returned invalid JSON');\n return {\n isValid: false,\n errors,\n warnings,\n };\n }\n }\n\n /**\n * Validate action parameter schemas\n */\n async validateActionSchemas(moduleInfo: any): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n\n if (moduleInfo.validation_rules) {\n for (const [action, rule] of Object.entries(\n moduleInfo.validation_rules,\n )) {\n if (typeof rule !== 'object') {\n errors.push(`Invalid validation rule for action: ${action}`);\n }\n }\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n warnings,\n };\n }\n\n /**\n * Extract metadata from WASM\n */\n async extractMetadata(wasmData: Uint8Array): Promise<any> {\n return {\n size: wasmData.length,\n hash: await this.calculateHash(wasmData),\n producers: { language: ['Unknown'] },\n };\n }\n\n /**\n * Calculate WASM hash\n */\n async calculateHash(wasmData: Uint8Array): Promise<string> {\n if (isSSREnvironment()) {\n return this.createSSRSafeHash(wasmData);\n }\n\n const hasher = this.cryptoAdapter.createHash('sha256');\n const result = hasher.update(Buffer.from(wasmData)).digest('hex');\n const hash = result instanceof Promise ? await result : result;\n return typeof hash === 'string' ? hash : hash.toString('hex');\n }\n\n /**\n * Create SSR-safe hash for WASM data\n */\n private createSSRSafeHash(wasmData: Uint8Array): string {\n let hash = 0;\n for (let i = 0; i < Math.min(wasmData.length, 1024); i++) {\n hash = ((hash << 5) - hash + wasmData[i]) & 0xffffffff;\n }\n return `ssr-wasm-${wasmData.length}-${Math.abs(hash).toString(16).padStart(8, '0')}`;\n }\n\n /**\n * Validate WASM magic number\n */\n private validateMagicNumber(data: Uint8Array): boolean {\n return (\n data.length >= 4 &&\n data[0] === 0x00 &&\n data[1] === 0x61 &&\n data[2] === 0x73 &&\n data[3] === 0x6d\n );\n }\n\n /**\n * Get WASM version\n */\n private getWasmVersion(data: Uint8Array): number {\n if (data.length < 8) return 0;\n return data[4] | (data[5] << 8) | (data[6] << 16) | (data[7] << 24);\n }\n\n /**\n * Parse WASM module (simplified for testing)\n */\n private async parseModule(data: Uint8Array): Promise<any> {\n const textData = data.slice(8);\n const dataStr = new TextDecoder('utf-8', { fatal: false }).decode(textData);\n\n const exports: string[] = [];\n if (dataStr.includes('INFO')) exports.push('INFO');\n if (dataStr.includes('POST')) exports.push('POST');\n if (dataStr.includes('GET')) exports.push('GET');\n\n if (exports.length === 0 && data.length > 8) {\n exports.push('INFO', 'POST', 'GET');\n }\n\n const imports: ImportInfo[] = [];\n const importParts = dataStr.split('import:');\n for (let i = 1; i < importParts.length; i++) {\n const part = importParts[i];\n const match = part.match(\n /^([a-zA-Z_]+[a-zA-Z0-9_]*)\\.([a-zA-Z_]+[a-zA-Z0-9_]*)/,\n );\n if (match) {\n imports.push({\n module: match[1],\n name: match[2],\n type: 'function',\n });\n }\n }\n\n let initial = 1;\n let maximum = 16;\n const memMatch = dataStr.match(/memory:(\\d+)(?:-(\\d+))?/);\n if (memMatch) {\n initial = parseInt(memMatch[1]);\n if (memMatch[2]) maximum = parseInt(memMatch[2]);\n }\n\n let functionCount = 10;\n const funcMatch = dataStr.match(/functions:(\\d+)/);\n if (funcMatch) {\n functionCount = parseInt(funcMatch[1]);\n }\n\n const hasStartFunction = dataStr.includes('start:true');\n\n return {\n exports,\n imports,\n memory: { initial, maximum },\n functionCount,\n hasStartFunction,\n exportSignatures: {\n INFO: { type: 'function', params: [], results: ['i32'] },\n POST: {\n type: 'function',\n params: ['i32', 'i32', 'i32', 'i32'],\n results: ['i32'],\n },\n GET: {\n type: 'function',\n params: ['i32', 'i32', 'i32'],\n results: ['i32'],\n },\n },\n };\n }\n\n /**\n * Check for suspicious patterns\n */\n private hasSuspiciousPatterns(data: Uint8Array): boolean {\n const dataStr = new TextDecoder('utf-8', { fatal: false }).decode(data);\n const suspiciousPatterns = ['eval', '__proto__', 'constructor'];\n\n return suspiciousPatterns.some(pattern => dataStr.includes(pattern));\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"standards-sdk.es41.js","sources":["../../src/hcs-12/validation/wasm-validator.ts"],"sourcesContent":["/**\n * WASM Validator for HCS-12 HashLinks\n *\n * Validates WebAssembly modules for security, compatibility, and HashLink requirements.\n */\n\nimport { Logger } from '../../utils/logger';\nimport { getCryptoAdapter } from '../../utils/crypto-abstraction';\nimport { isSSREnvironment } from '../../utils/crypto-env';\nimport { ModuleInfo } from '../types';\n\nexport interface WasmValidationResult {\n isValid: boolean;\n errors: string[];\n warnings: string[];\n version?: number;\n exports?: string[];\n imports?: ImportInfo[];\n memoryRequirements?: MemoryRequirements;\n exportSignatures?: Record<string, ExportSignature>;\n moduleInfo?: ModuleInfo;\n}\n\nexport interface ImportInfo {\n module: string;\n name: string;\n type: string;\n}\n\nexport interface MemoryRequirements {\n initial: number;\n maximum?: number;\n}\n\nexport interface ExportSignature {\n type: string;\n params: string[];\n results: string[];\n}\n\n/**\n * Validator for WASM modules\n */\nexport class WasmValidator {\n private logger: Logger;\n private cryptoAdapter = getCryptoAdapter();\n\n private readonly REQUIRED_EXPORTS = ['INFO', 'POST', 'GET'];\n\n private readonly ALLOWED_IMPORTS = new Set([\n 'env.console_log',\n 'env.get_network',\n 'env.submit_hcs_message',\n 'env.memory',\n ]);\n\n private readonly MAX_INITIAL_MEMORY = 256;\n\n private readonly WARN_MODULE_SIZE = 1 * 1024 * 1024;\n\n private readonly MAX_MODULE_SIZE = 5 * 1024 * 1024;\n\n constructor(logger: Logger) {\n this.logger = logger;\n }\n\n /**\n * Validate a WASM module\n */\n async validate(wasmData: Uint8Array): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n const result: WasmValidationResult = {\n isValid: true,\n errors,\n warnings,\n };\n\n try {\n if (wasmData.length > this.WARN_MODULE_SIZE) {\n warnings.push(\n `Large module size: ${(wasmData.length / 1024 / 1024).toFixed(2)} MB`,\n );\n }\n if (wasmData.length > this.MAX_MODULE_SIZE) {\n errors.push('Module size exceeds maximum allowed');\n result.isValid = false;\n }\n\n if (!this.validateMagicNumber(wasmData)) {\n errors.push('Invalid WASM magic number');\n result.isValid = false;\n return result;\n }\n\n const version = this.getWasmVersion(wasmData);\n result.version = version;\n if (version !== 1) {\n errors.push(`Unsupported WASM version: ${version}`);\n result.isValid = false;\n return result;\n }\n\n const moduleInfo = await this.parseModule(wasmData);\n\n result.exports = moduleInfo.exports;\n for (const required of this.REQUIRED_EXPORTS) {\n if (!moduleInfo.exports.includes(required)) {\n errors.push(`Missing required export: ${required}`);\n result.isValid = false;\n }\n }\n\n result.imports = moduleInfo.imports;\n for (const imp of moduleInfo.imports) {\n const importName = `${imp.module}.${imp.name}`;\n if (!this.ALLOWED_IMPORTS.has(importName)) {\n errors.push(`Disallowed import: ${importName}`);\n result.isValid = false;\n }\n }\n\n if (moduleInfo.memory) {\n result.memoryRequirements = moduleInfo.memory;\n if (moduleInfo.memory.initial > this.MAX_INITIAL_MEMORY) {\n errors.push(\n `Excessive initial memory: ${moduleInfo.memory.initial} pages`,\n );\n result.isValid = false;\n }\n }\n\n if (moduleInfo.hasStartFunction) {\n warnings.push('Module has start function - may execute code on load');\n }\n\n if (moduleInfo.functionCount > 100) {\n warnings.push(`High function count: ${moduleInfo.functionCount}`);\n }\n\n if (this.hasSuspiciousPatterns(wasmData)) {\n warnings.push('Potentially unsafe operation detected');\n }\n\n result.exportSignatures = moduleInfo.exportSignatures;\n } catch (error) {\n this.logger.error('WASM validation failed', { error });\n errors.push(\n `Validation error: ${error instanceof Error ? error.message : 'Unknown error'}`,\n );\n result.isValid = false;\n }\n\n return result;\n }\n\n /**\n * Validate INFO function return\n */\n async validateInfoFunction(\n infoFunc: () => Promise<string> | string,\n ): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n\n try {\n const infoStr = await infoFunc();\n const info = JSON.parse(infoStr);\n\n if (!info.name || !info.version || !info.hashlinks_version) {\n errors.push('INFO missing required fields');\n return {\n isValid: false,\n errors,\n warnings,\n };\n }\n\n return {\n isValid: true,\n errors,\n warnings,\n moduleInfo: info,\n };\n } catch (error) {\n errors.push('INFO function returned invalid JSON');\n return {\n isValid: false,\n errors,\n warnings,\n };\n }\n }\n\n /**\n * Validate action parameter schemas\n */\n async validateActionSchemas(moduleInfo: any): Promise<WasmValidationResult> {\n const errors: string[] = [];\n const warnings: string[] = [];\n\n if (moduleInfo.validation_rules) {\n for (const [action, rule] of Object.entries(\n moduleInfo.validation_rules,\n )) {\n if (typeof rule !== 'object') {\n errors.push(`Invalid validation rule for action: ${action}`);\n }\n }\n }\n\n return {\n isValid: errors.length === 0,\n errors,\n warnings,\n };\n }\n\n /**\n * Extract metadata from WASM\n */\n async extractMetadata(wasmData: Uint8Array): Promise<any> {\n return {\n size: wasmData.length,\n hash: await this.calculateHash(wasmData),\n producers: { language: ['Unknown'] },\n };\n }\n\n /**\n * Calculate WASM hash\n */\n async calculateHash(wasmData: Uint8Array): Promise<string> {\n if (isSSREnvironment()) {\n return this.createSSRSafeHash(wasmData);\n }\n\n const hasher = this.cryptoAdapter.createHash('sha256');\n const result = hasher.update(Buffer.from(wasmData)).digest('hex');\n const hash = result instanceof Promise ? await result : result;\n return typeof hash === 'string' ? hash : hash.toString('hex');\n }\n\n /**\n * Create SSR-safe hash for WASM data\n */\n private createSSRSafeHash(wasmData: Uint8Array): string {\n let hash = 0;\n for (let i = 0; i < Math.min(wasmData.length, 1024); i++) {\n hash = ((hash << 5) - hash + wasmData[i]) & 0xffffffff;\n }\n return `ssr-wasm-${wasmData.length}-${Math.abs(hash).toString(16).padStart(8, '0')}`;\n }\n\n /**\n * Validate WASM magic number\n */\n private validateMagicNumber(data: Uint8Array): boolean {\n return (\n data.length >= 4 &&\n data[0] === 0x00 &&\n data[1] === 0x61 &&\n data[2] === 0x73 &&\n data[3] === 0x6d\n );\n }\n\n /**\n * Get WASM version\n */\n private getWasmVersion(data: Uint8Array): number {\n if (data.length < 8) return 0;\n return data[4] | (data[5] << 8) | (data[6] << 16) | (data[7] << 24);\n }\n\n /**\n * Parse WASM module (simplified for testing)\n */\n private async parseModule(data: Uint8Array): Promise<any> {\n const textData = data.slice(8);\n const dataStr = new TextDecoder('utf-8', { fatal: false }).decode(textData);\n\n const exports: string[] = [];\n if (dataStr.includes('INFO')) exports.push('INFO');\n if (dataStr.includes('POST')) exports.push('POST');\n if (dataStr.includes('GET')) exports.push('GET');\n\n if (exports.length === 0 && data.length > 8) {\n exports.push('INFO', 'POST', 'GET');\n }\n\n const imports: ImportInfo[] = [];\n const importParts = dataStr.split('import:');\n for (let i = 1; i < importParts.length; i++) {\n const part = importParts[i];\n const match = part.match(\n /^([a-zA-Z_]+[a-zA-Z0-9_]*)\\.([a-zA-Z_]+[a-zA-Z0-9_]*)/,\n );\n if (match) {\n imports.push({\n module: match[1],\n name: match[2],\n type: 'function',\n });\n }\n }\n\n let initial = 1;\n let maximum = 16;\n const memMatch = dataStr.match(/memory:(\\d+)(?:-(\\d+))?/);\n if (memMatch) {\n initial = parseInt(memMatch[1]);\n if (memMatch[2]) maximum = parseInt(memMatch[2]);\n }\n\n let functionCount = 10;\n const funcMatch = dataStr.match(/functions:(\\d+)/);\n if (funcMatch) {\n functionCount = parseInt(funcMatch[1]);\n }\n\n const hasStartFunction = dataStr.includes('start:true');\n\n return {\n exports,\n imports,\n memory: { initial, maximum },\n functionCount,\n hasStartFunction,\n exportSignatures: {\n INFO: { type: 'function', params: [], results: ['i32'] },\n POST: {\n type: 'function',\n params: ['i32', 'i32', 'i32', 'i32'],\n results: ['i32'],\n },\n GET: {\n type: 'function',\n params: ['i32', 'i32', 'i32'],\n results: ['i32'],\n },\n },\n };\n }\n\n /**\n * Check for suspicious patterns\n */\n private hasSuspiciousPatterns(data: Uint8Array): boolean {\n const dataStr = new TextDecoder('utf-8', { fatal: false }).decode(data);\n const suspiciousPatterns = ['eval', '__proto__', 'constructor'];\n\n return suspiciousPatterns.some(pattern => dataStr.includes(pattern));\n }\n}\n"],"names":["exports"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { getCryptoAdapter } from "./standards-sdk.es132.js";
|
|
2
|
-
import { base58Encode } from "./standards-sdk.
|
|
2
|
+
import { base58Encode } from "./standards-sdk.es156.js";
|
|
3
3
|
import { canonicalizeAgentData } from "./standards-sdk.es55.js";
|
|
4
4
|
function encodeMultibaseB58btc(input) {
|
|
5
5
|
const bytes = Buffer.from(input, "utf8");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { isUaidProfileResolverAdapter, isDidProfileResolverAdapter, isDidResolverAdapter } from "./standards-sdk.es58.js";
|
|
2
2
|
import { HieroDidResolver } from "./standards-sdk.es60.js";
|
|
3
3
|
import { parseHcs14Did } from "./standards-sdk.es56.js";
|
|
4
|
-
import { multibaseB58btcDecode } from "./standards-sdk.
|
|
4
|
+
import { multibaseB58btcDecode } from "./standards-sdk.es156.js";
|
|
5
5
|
class ResolverRegistry {
|
|
6
6
|
constructor() {
|
|
7
7
|
this.resolvers = [];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { nodeDnsTxtLookup } from "./standards-sdk.es66.js";
|
|
2
|
-
import { isFqdn, normalizeDomain, parseSemicolonFields } from "./standards-sdk.
|
|
2
|
+
import { isFqdn, normalizeDomain, parseSemicolonFields } from "./standards-sdk.es158.js";
|
|
3
3
|
const AID_DNS_WEB_PROFILE_ID = "hcs-14.profile.aid-dns-web";
|
|
4
4
|
function buildErrorProfile(uaid, code, message, details) {
|
|
5
5
|
const error = {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { nodeDnsTxtLookup } from "./standards-sdk.es66.js";
|
|
2
|
-
import { isFqdn, normalizeDomain } from "./standards-sdk.
|
|
3
|
-
import { normalizeAnsVersion, isValidAnsProfileVersion, parseAnsDnsTxtRecord, toErrorMessage, parseAnsAgentCard, extractEndpointCandidates, selectPreferredEndpoint } from "./standards-sdk.
|
|
2
|
+
import { isFqdn, normalizeDomain } from "./standards-sdk.es158.js";
|
|
3
|
+
import { normalizeAnsVersion, isValidAnsProfileVersion, parseAnsDnsTxtRecord, toErrorMessage, parseAnsAgentCard, extractEndpointCandidates, selectPreferredEndpoint } from "./standards-sdk.es159.js";
|
|
4
4
|
const ANS_DNS_WEB_PROFILE_ID = "hcs-14.profile.ans-dns-web";
|
|
5
5
|
const UAID_UNSPECIFIED_PARAM_VALUE = "0";
|
|
6
6
|
function buildErrorProfile(uaid, code, message, details) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { nodeDnsTxtLookup } from "./standards-sdk.es66.js";
|
|
2
|
-
import { uaidTargetFromParsed, isFqdn, normalizeDomain, buildCanonicalUaid, parseSemicolonFields } from "./standards-sdk.
|
|
2
|
+
import { uaidTargetFromParsed, isFqdn, normalizeDomain, buildCanonicalUaid, parseSemicolonFields } from "./standards-sdk.es158.js";
|
|
3
3
|
import { AID_DNS_WEB_PROFILE_ID } from "./standards-sdk.es62.js";
|
|
4
4
|
import { ANS_DNS_WEB_PROFILE_ID } from "./standards-sdk.es63.js";
|
|
5
5
|
import { UAID_DID_RESOLUTION_PROFILE_ID } from "./standards-sdk.es65.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HCS5BaseClient } from "./standards-sdk.
|
|
1
|
+
import { HCS5BaseClient } from "./standards-sdk.es160.js";
|
|
2
2
|
import { buildHcs1Hrl } from "./standards-sdk.es70.js";
|
|
3
3
|
import { PrivateKey } from "@hashgraph/sdk";
|
|
4
4
|
import { inscribeWithSigner } from "./standards-sdk.es137.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { HCS5BaseClient } from "./standards-sdk.
|
|
1
|
+
import { HCS5BaseClient } from "./standards-sdk.es160.js";
|
|
2
2
|
import { buildHcs1Hrl } from "./standards-sdk.es70.js";
|
|
3
3
|
import { AccountId } from "@hashgraph/sdk";
|
|
4
4
|
import { inscribe } from "./standards-sdk.es137.js";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es154.js";
|
|
2
|
-
import {
|
|
2
|
+
import { HCS21_SAFE_MESSAGE_BYTES, HCS21_MAX_MESSAGE_BYTES, HCS21TopicType, HCS21MetadataPointerPattern } from "./standards-sdk.es86.js";
|
|
3
3
|
import { HCS21ValidationError } from "./standards-sdk.es87.js";
|
|
4
4
|
function buildHcs21RegistryMemo(params) {
|
|
5
5
|
const indexed = params.indexed ?? 0;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { AccountId, TopicCreateTransaction, CustomFixedFee, TokenId,
|
|
1
|
+
import { AccountCreateTransaction, Hbar, AccountId, TopicCreateTransaction, CustomFixedFee, TokenId, AccountUpdateTransaction, ScheduleCreateTransaction, TopicUpdateTransaction } from "@hashgraph/sdk";
|
|
2
2
|
import { buildTopicCreateTx, buildMessageTx } from "./standards-sdk.es154.js";
|
|
3
3
|
import { FloraOperation, FloraTopicType } from "./standards-sdk.es97.js";
|
|
4
4
|
const HCS16_FLORA_ACCOUNT_CREATE_TRANSACTION_MEMO = "hcs-16:op:0:0";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proto } from '@hashgraph/proto';
|
|
2
|
-
import { Transaction } from '
|
|
2
|
+
import { Transaction } from '../../../node_modules/@hashgraph/sdk';
|
|
3
3
|
import { AccountAmount, TokenAmount, CryptoDeleteData, CryptoCreateAccountData, CryptoUpdateAccountData, CryptoApproveAllowanceData, CryptoDeleteAllowanceData } from '../transaction-parser-types';
|
|
4
4
|
export declare class CryptoParser {
|
|
5
5
|
static parseCryptoTransfers(cryptoTransfer: proto.ICryptoTransferTransactionBody, result: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proto } from '@hashgraph/proto';
|
|
2
|
-
import { Transaction } from '
|
|
2
|
+
import { Transaction } from '../../../node_modules/@hashgraph/sdk';
|
|
3
3
|
import { FileCreateData, FileAppendData, FileUpdateData, FileDeleteData } from '../transaction-parser-types';
|
|
4
4
|
/**
|
|
5
5
|
* File Service Parser
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proto } from '@hashgraph/proto';
|
|
2
|
-
import { Transaction } from '
|
|
2
|
+
import { Transaction } from '../../../node_modules/@hashgraph/sdk';
|
|
3
3
|
import { ConsensusCreateTopicData, ConsensusSubmitMessageData, ConsensusUpdateTopicData, ConsensusDeleteTopicData } from '../transaction-parser-types';
|
|
4
4
|
export declare class HCSParser {
|
|
5
5
|
static parseConsensusCreateTopic(body: proto.IConsensusCreateTopicTransactionBody): ConsensusCreateTopicData | undefined;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { proto } from '@hashgraph/proto';
|
|
2
2
|
import { TokenCreationData, TokenMintData, TokenBurnData, TokenUpdateData, TokenFeeScheduleUpdateData, TokenFreezeData, TokenUnfreezeData, TokenGrantKycData, TokenRevokeKycData, TokenPauseData, TokenUnpauseData, TokenWipeAccountData, TokenDeleteData, TokenAssociateData, TokenDissociateData, TokenAirdropData, ParsedTransaction } from '../transaction-parser-types';
|
|
3
|
-
import { Transaction } from '
|
|
3
|
+
import { Transaction } from '../../../node_modules/@hashgraph/sdk';
|
|
4
4
|
export declare class HTSParser {
|
|
5
5
|
/**
|
|
6
6
|
* Main entry point for parsing HTS transactions from a Transaction object
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proto } from '@hashgraph/proto';
|
|
2
|
-
import { Transaction } from '
|
|
2
|
+
import { Transaction } from '../../../node_modules/@hashgraph/sdk';
|
|
3
3
|
export declare function parseKey(key: proto.IKey | null | undefined): string | undefined;
|
|
4
4
|
/**
|
|
5
5
|
* Extract TransactionBody from Transaction object using protobuf parsing
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proto } from '@hashgraph/proto';
|
|
2
|
-
import { Transaction } from '
|
|
2
|
+
import { Transaction } from '../../../node_modules/@hashgraph/sdk';
|
|
3
3
|
import { ContractCallData, ContractCreateData, ContractUpdateData, ContractDeleteData } from '../transaction-parser-types';
|
|
4
4
|
/**
|
|
5
5
|
* Smart Contract Service (SCS) Parser
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { proto } from '@hashgraph/proto';
|
|
2
|
-
import { Transaction } from '
|
|
2
|
+
import { Transaction } from '../../../node_modules/@hashgraph/sdk';
|
|
3
3
|
import { UtilPrngData, NetworkFreezeData, SystemDeleteData, SystemUndeleteData, NodeCreateData, NodeUpdateData, NodeDeleteData } from '../transaction-parser-types';
|
|
4
4
|
/**
|
|
5
5
|
* Utility and System Operations Parser
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Transaction } from '
|
|
1
|
+
import { Transaction } from '../../node_modules/@hashgraph/sdk';
|
|
2
2
|
import { ParsedTransaction, ValidationResult, ParseOptions } from './transaction-parser-types';
|
|
3
3
|
export { TransactionParsingError } from './transaction-parser-types';
|
|
4
4
|
/**
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hashgraphonline/standards-sdk",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.165",
|
|
4
4
|
"description": "The Hashgraph Online Standards SDK provides a complete implementation of the Hiero Consensus Standards (HCS), giving developers all the tools needed to build wonderful decentralized applications on the Hashgraph network. https://hol.org",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"files": [
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
}
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
|
-
"@hashgraphonline/conversational-agent": "0.2.
|
|
75
|
+
"@hashgraphonline/conversational-agent": "0.2.220",
|
|
76
76
|
"@hiero-did-sdk/registrar": "0.1.8",
|
|
77
77
|
"@hiero-did-sdk/resolver": "0.1.8",
|
|
78
78
|
"@swc/jest": "^0.2.39",
|
|
@@ -82,6 +82,7 @@
|
|
|
82
82
|
"@types/node": "^22.18.12",
|
|
83
83
|
"@typescript-eslint/eslint-plugin": "^8.46.2",
|
|
84
84
|
"@typescript-eslint/parser": "^8.46.2",
|
|
85
|
+
"agent0-sdk": "0.2.1",
|
|
85
86
|
"concurrently": "^8.2.2",
|
|
86
87
|
"eslint-plugin-sonarjs": "^3.0.5",
|
|
87
88
|
"ioredis": "^5.8.2",
|
|
@@ -94,7 +95,7 @@
|
|
|
94
95
|
"openai": "^4.104.0",
|
|
95
96
|
"prettier": "^3.6.2",
|
|
96
97
|
"process": "^0.11.10",
|
|
97
|
-
"rimraf": "^6.
|
|
98
|
+
"rimraf": "^6.1.3",
|
|
98
99
|
"terser": "^5.44.0",
|
|
99
100
|
"ts-jest": "^29.4.5",
|
|
100
101
|
"tsx": "^4.20.6",
|
|
@@ -107,12 +108,11 @@
|
|
|
107
108
|
"@hashgraph/proto": "^2.24.0",
|
|
108
109
|
"@hashgraph/sdk": "^2.78.0",
|
|
109
110
|
"@hashgraph/hedera-wallet-connect": "^2.0.4",
|
|
110
|
-
"@hashgraphonline/hashinal-wc": "^2.0.
|
|
111
|
+
"@hashgraphonline/hashinal-wc": "^2.0.64",
|
|
111
112
|
"@kiloscribe/inscription-sdk": "2.0.10-canary.9",
|
|
112
113
|
"@noble/curves": "^2.0.1",
|
|
113
114
|
"@types/localtunnel": "^2.0.4",
|
|
114
|
-
"
|
|
115
|
-
"axios": "^1.12.2",
|
|
115
|
+
"axios": "^1.13.6",
|
|
116
116
|
"bignumber.js": "^9.3.1",
|
|
117
117
|
"buffer": "^6.0.3",
|
|
118
118
|
"chalk": "^5.4.1",
|
|
@@ -202,6 +202,7 @@
|
|
|
202
202
|
"demo:registry-broker-x402-topup": "tsx demo/registry-broker/registry-broker-x402-topup.ts",
|
|
203
203
|
"demo:registry-broker-nanda-a2a": "tsx demo/registry-broker/registry-broker-nanda-a2a-demo.ts",
|
|
204
204
|
"demo:registry-broker-skills": "tsx demo/registry-broker/skill-registry-publish-demo.ts",
|
|
205
|
+
"demo:registry-broker-uaid-dns": "tsx demo/registry-broker/uaid-dns-verification-demo.ts",
|
|
205
206
|
"watch": "nodemon --watch src --ext ts,tsx --exec \"npm run build && yalc push\"",
|
|
206
207
|
"test": "jest --config jest.config.json",
|
|
207
208
|
"test:unit-list": "jest --config jest.config.json --listTests --testPathPattern __tests__/utils/ --testPathPattern __tests__/services/ --testPathPattern __tests__/content-store/ --testPathPattern __tests__/fees/ --testPathPattern __tests__/common/tx/",
|