Files
pezkuwi-api/packages/merkleize-metadata/dist/esm/proof.mjs.map
T
pezkuwichain 31467f90d4 feat: add PAPI rebrand packages
- @pezkuwi/papi-utils (rebrand of @polkadot-api/utils)
- @pezkuwi/bizinikiwi-bindings (rebrand of @polkadot-api/substrate-bindings)
- @pezkuwi/metadata-builders (rebrand of @polkadot-api/metadata-builders)
- @pezkuwi/merkleize-metadata (rebrand of @polkadot-api/merkleize-metadata)

All @polkadot-api references replaced with @pezkuwi equivalents.
2026-01-22 15:40:12 +03:00

1 line
3.2 KiB
Plaintext

{"version":3,"file":"proof.mjs","sources":["../../src/proof.ts"],"sourcesContent":["const getLevelFromIdx = (idx: number) => Math.log2(idx + 1) | 0\nconst getAncestorIdx = (from: number, nLevels: number) =>\n ((from + 1) >> nLevels) - 1\n\nexport function getProofData(\n leaves: Array<Uint8Array>,\n knownLeavesIdxs: Array<number>,\n) {\n const knownLeaves = knownLeavesIdxs.map((idx) => leaves[idx])\n\n const startingIdx = leaves.length - 1\n const leafIdxs = knownLeavesIdxs.map((idx) => startingIdx + idx)\n\n const proofIdxs: Array<number> = []\n if (leafIdxs.length) {\n const nLevels = getLevelFromIdx(leafIdxs.at(-1)!)\n const splitPosition = Math.pow(2, nLevels) - 1\n const splitIdx = leafIdxs.findIndex((x) => x >= splitPosition)\n if (splitIdx > 0) {\n leafIdxs.unshift(...leafIdxs.splice(splitIdx))\n knownLeaves.unshift(...knownLeaves.splice(splitIdx))\n }\n }\n\n let targetIdx = 0\n const traverse = (nodeIdx: number): void => {\n if (targetIdx === leafIdxs.length) {\n proofIdxs.push(nodeIdx)\n return\n }\n\n const target = leafIdxs[targetIdx]\n if (target === nodeIdx) {\n ++targetIdx\n return\n }\n\n const currentLevel = getLevelFromIdx(nodeIdx)\n const targetLevel = getLevelFromIdx(target)\n\n if (nodeIdx !== getAncestorIdx(target, targetLevel - currentLevel)) {\n proofIdxs.push(nodeIdx)\n return\n }\n\n const leftSon = 2 * nodeIdx + 1\n traverse(leftSon)\n traverse(leftSon + 1)\n }\n traverse(0)\n\n return {\n leaves: knownLeaves,\n leafIdxs,\n proofIdxs,\n }\n}\n"],"names":[],"mappings":"AAAA,MAAM,kBAAkB,CAAC,GAAA,KAAgB,KAAK,IAAA,CAAK,GAAA,GAAM,CAAC,CAAA,GAAI,CAAA;AAC9D,MAAM,iBAAiB,CAAC,IAAA,EAAc,OAAA,KAAA,CAClC,IAAA,GAAO,KAAM,OAAA,IAAW,CAAA;AAErB,SAAS,YAAA,CACd,QACA,eAAA,EACA;AACA,EAAA,MAAM,cAAc,eAAA,CAAgB,GAAA,CAAI,CAAC,GAAA,KAAQ,MAAA,CAAO,GAAG,CAAC,CAAA;AAE5D,EAAA,MAAM,WAAA,GAAc,OAAO,MAAA,GAAS,CAAA;AACpC,EAAA,MAAM,WAAW,eAAA,CAAgB,GAAA,CAAI,CAAC,GAAA,KAAQ,cAAc,GAAG,CAAA;AAE/D,EAAA,MAAM,YAA2B,EAAC;AAClC,EAAA,IAAI,SAAS,MAAA,EAAQ;AACnB,IAAA,MAAM,OAAA,GAAU,eAAA,CAAgB,QAAA,CAAS,EAAA,CAAG,EAAE,CAAE,CAAA;AAChD,IAAA,MAAM,aAAA,GAAgB,IAAA,CAAK,GAAA,CAAI,CAAA,EAAG,OAAO,CAAA,GAAI,CAAA;AAC7C,IAAA,MAAM,WAAW,QAAA,CAAS,SAAA,CAAU,CAAC,CAAA,KAAM,KAAK,aAAa,CAAA;AAC7D,IAAA,IAAI,WAAW,CAAA,EAAG;AAChB,MAAA,QAAA,CAAS,OAAA,CAAQ,GAAG,QAAA,CAAS,MAAA,CAAO,QAAQ,CAAC,CAAA;AAC7C,MAAA,WAAA,CAAY,OAAA,CAAQ,GAAG,WAAA,CAAY,MAAA,CAAO,QAAQ,CAAC,CAAA;AAAA,IACrD;AAAA,EACF;AAEA,EAAA,IAAI,SAAA,GAAY,CAAA;AAChB,EAAA,MAAM,QAAA,GAAW,CAAC,OAAA,KAA0B;AAC1C,IAAA,IAAI,SAAA,KAAc,SAAS,MAAA,EAAQ;AACjC,MAAA,SAAA,CAAU,KAAK,OAAO,CAAA;AACtB,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,MAAA,GAAS,SAAS,SAAS,CAAA;AACjC,IAAA,IAAI,WAAW,OAAA,EAAS;AACtB,MAAA,EAAE,SAAA;AACF,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,YAAA,GAAe,gBAAgB,OAAO,CAAA;AAC5C,IAAA,MAAM,WAAA,GAAc,gBAAgB,MAAM,CAAA;AAE1C,IAAA,IAAI,OAAA,KAAY,cAAA,CAAe,MAAA,EAAQ,WAAA,GAAc,YAAY,CAAA,EAAG;AAClE,MAAA,SAAA,CAAU,KAAK,OAAO,CAAA;AACtB,MAAA;AAAA,IACF;AAEA,IAAA,MAAM,OAAA,GAAU,IAAI,OAAA,GAAU,CAAA;AAC9B,IAAA,QAAA,CAAS,OAAO,CAAA;AAChB,IAAA,QAAA,CAAS,UAAU,CAAC,CAAA;AAAA,EACtB,CAAA;AACA,EAAA,QAAA,CAAS,CAAC,CAAA;AAEV,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,WAAA;AAAA,IACR,QAAA;AAAA,IACA;AAAA,GACF;AACF;;;;"}