import "../../_dnt.polyfills.js"; import { blake2_256 } from "../../crypto/mod.js" import * as $ from "../../deps/scale.js" const seed = "modlpy/utilisuba" // cspell:disable-line const codec = blake2_256.$hash($.tuple( $.constant(null, new TextEncoder().encode(seed)), $.array($.sizedUint8Array(32)), $.u16, )) export function multisigAccountId(signatories: Uint8Array[], threshold: number) { return codec.encode( [null, signatories.sort(sortUint8Array), threshold], ) } function sortUint8Array(a: Uint8Array, b: Uint8Array) { for (let i = 0; i < a.length && i < b.length; i++) { if (a[i] !== b[i]) { return a[i]! - b[i]! } } return a.length - b.length }