UNPKG

@mysten/sui

Version:
1 lines 1.38 kB
{"version":3,"file":"dynamic-fields.mjs","names":["bcs"],"sources":["../../src/utils/dynamic-fields.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { toHex } from '@mysten/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\n\nimport type { TypeTag } from '../bcs/bcs.js';\nimport { bcs } from '../bcs/index.js';\n\nexport function deriveDynamicFieldID(\n\tparentId: string,\n\ttypeTag: typeof TypeTag.$inferInput,\n\tkey: Uint8Array,\n) {\n\tconst address = bcs.Address.serialize(parentId).toBytes();\n\tconst tag = bcs.TypeTag.serialize(typeTag).toBytes();\n\tconst keyLength = bcs.u64().serialize(key.length).toBytes();\n\n\tconst hash = blake2b.create({\n\t\tdkLen: 32,\n\t});\n\n\thash.update(new Uint8Array([0xf0]));\n\thash.update(address);\n\thash.update(keyLength);\n\thash.update(key);\n\thash.update(tag);\n\n\treturn `0x${toHex(hash.digest().slice(0, 32))}`;\n}\n"],"mappings":";;;;;AASA,SAAgB,qBACf,UACA,SACA,KACC;CACD,MAAM,UAAUA,OAAI,QAAQ,UAAU,SAAS,CAAC,SAAS;CACzD,MAAM,MAAMA,OAAI,QAAQ,UAAU,QAAQ,CAAC,SAAS;CACpD,MAAM,YAAYA,OAAI,KAAK,CAAC,UAAU,IAAI,OAAO,CAAC,SAAS;CAE3D,MAAM,OAAO,QAAQ,OAAO,EAC3B,OAAO,IACP,CAAC;AAEF,MAAK,OAAO,IAAI,WAAW,CAAC,IAAK,CAAC,CAAC;AACnC,MAAK,OAAO,QAAQ;AACpB,MAAK,OAAO,UAAU;AACtB,MAAK,OAAO,IAAI;AAChB,MAAK,OAAO,IAAI;AAEhB,QAAO,KAAK,MAAM,KAAK,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC"}