@mysten/seal 0.4.19 → 0.4.21
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/CHANGELOG.md +17 -0
- package/dist/cjs/bcs.d.ts +68 -121
- package/dist/cjs/bcs.js +7 -7
- package/dist/cjs/bcs.js.map +2 -2
- package/dist/cjs/bls12381.js +8 -2
- package/dist/cjs/bls12381.js.map +2 -2
- package/dist/cjs/client.d.ts +21 -53
- package/dist/cjs/client.js +60 -34
- package/dist/cjs/client.js.map +2 -2
- package/dist/cjs/decrypt.d.ts +6 -1
- package/dist/cjs/decrypt.js +26 -9
- package/dist/cjs/decrypt.js.map +2 -2
- package/dist/cjs/dem.d.ts +1 -1
- package/dist/cjs/dem.js +9 -0
- package/dist/cjs/dem.js.map +2 -2
- package/dist/cjs/encrypt.js +6 -10
- package/dist/cjs/encrypt.js.map +3 -3
- package/dist/cjs/ibe.d.ts +32 -12
- package/dist/cjs/ibe.js +32 -12
- package/dist/cjs/ibe.js.map +2 -2
- package/dist/cjs/index.d.ts +3 -3
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/kdf.js.map +1 -1
- package/dist/cjs/key-server.d.ts +47 -1
- package/dist/cjs/key-server.js +57 -4
- package/dist/cjs/key-server.js.map +2 -2
- package/dist/cjs/session-key.d.ts +29 -25
- package/dist/cjs/session-key.js +27 -10
- package/dist/cjs/session-key.js.map +2 -2
- package/dist/cjs/shamir.js +1 -1
- package/dist/cjs/shamir.js.map +2 -2
- package/dist/cjs/types.d.ts +67 -0
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils.d.ts +7 -0
- package/dist/cjs/utils.js +7 -0
- package/dist/cjs/utils.js.map +2 -2
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/cjs/version.js.map +1 -1
- package/dist/esm/bcs.d.ts +68 -121
- package/dist/esm/bcs.js +7 -7
- package/dist/esm/bcs.js.map +2 -2
- package/dist/esm/bls12381.js +8 -2
- package/dist/esm/bls12381.js.map +2 -2
- package/dist/esm/client.d.ts +21 -53
- package/dist/esm/client.js +62 -36
- package/dist/esm/client.js.map +2 -2
- package/dist/esm/decrypt.d.ts +6 -1
- package/dist/esm/decrypt.js +28 -11
- package/dist/esm/decrypt.js.map +2 -2
- package/dist/esm/dem.d.ts +1 -1
- package/dist/esm/dem.js +9 -0
- package/dist/esm/dem.js.map +2 -2
- package/dist/esm/encrypt.js +4 -8
- package/dist/esm/encrypt.js.map +2 -2
- package/dist/esm/ibe.d.ts +32 -12
- package/dist/esm/ibe.js +32 -12
- package/dist/esm/ibe.js.map +2 -2
- package/dist/esm/index.d.ts +3 -3
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/kdf.js.map +1 -1
- package/dist/esm/key-server.d.ts +47 -1
- package/dist/esm/key-server.js +64 -6
- package/dist/esm/key-server.js.map +2 -2
- package/dist/esm/session-key.d.ts +29 -25
- package/dist/esm/session-key.js +27 -10
- package/dist/esm/session-key.js.map +2 -2
- package/dist/esm/shamir.js +1 -1
- package/dist/esm/shamir.js.map +2 -2
- package/dist/esm/types.d.ts +67 -0
- package/dist/esm/utils.d.ts +7 -0
- package/dist/esm/utils.js +7 -0
- package/dist/esm/utils.js.map +2 -2
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/esm/version.js.map +1 -1
- package/dist/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/dist/cjs/keys.d.ts +0 -17
- package/dist/cjs/keys.js +0 -64
- package/dist/cjs/keys.js.map +0 -7
- package/dist/esm/keys.d.ts +0 -17
- package/dist/esm/keys.js +0 -44
- package/dist/esm/keys.js.map +0 -7
package/dist/cjs/shamir.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/shamir.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { allEqual, hasDuplicates } from './utils.js';\n\nconst GF256_SIZE = 256;\n\n/**\n * A field element in the Rijndael finite field GF(2\u2078) with a fixed generator g = 0x03.\n */\nexport class GF256 {\n\tvalue: number;\n\n\tconstructor(value: number) {\n\t\tif (value < 0 || value >= GF256_SIZE) {\n\t\t\tthrow new Error(`Invalid value ${value} for GF256`);\n\t\t}\n\t\tthis.value = value;\n\t}\n\n\tlog(): number {\n\t\tif (this.value === 0) {\n\t\t\tthrow new Error('Invalid value');\n\t\t}\n\t\treturn LOG[this.value - 1];\n\t}\n\n\tstatic exp(x: number): GF256 {\n\t\treturn new GF256(EXP[x % (GF256_SIZE - 1)]);\n\t}\n\n\tadd(other: GF256): GF256 {\n\t\treturn new GF256(this.value ^ other.value);\n\t}\n\n\tsub(other: GF256): GF256 {\n\t\t// Addition is the same as subtraction in a binary field.\n\t\treturn this.add(other);\n\t}\n\n\tneg(): GF256 {\n\t\t// Negation doesn't change the value in a binary field.\n\t\treturn this;\n\t}\n\n\tmul(other: GF256): GF256 {\n\t\tif (this.value === 0 || other.value === 0) {\n\t\t\treturn new GF256(0);\n\t\t}\n\t\treturn GF256.exp(this.log() + other.log());\n\t}\n\n\tdiv(other: GF256): GF256 {\n\t\treturn this.mul(GF256.exp(GF256_SIZE - other.log() - 1));\n\t}\n\n\tequals(other: GF256): boolean {\n\t\treturn this.value === other.value;\n\t}\n\n\tstatic zero(): GF256 {\n\t\treturn new GF256(0);\n\t}\n\n\tstatic one(): GF256 {\n\t\treturn new GF256(1);\n\t}\n}\n\n/// Table of E\u1D62 = g\u2071 where g = 0x03 generates the multiplicative group of the field.\nconst EXP: number[] = [\n\t0x01, 0x03, 0x05, 0x0f, 0x11, 0x33, 0x55, 0xff, 0x1a, 0x2e, 0x72, 0x96, 0xa1, 0xf8, 0x13, 0x35,\n\t0x5f, 0xe1, 0x38, 0x48, 0xd8, 0x73, 0x95, 0xa4, 0xf7, 0x02, 0x06, 0x0a, 0x1e, 0x22, 0x66, 0xaa,\n\t0xe5, 0x34, 0x5c, 0xe4, 0x37, 0x59, 0xeb, 0x26, 0x6a, 0xbe, 0xd9, 0x70, 0x90, 0xab, 0xe6, 0x31,\n\t0x53, 0xf5, 0x04, 0x0c, 0x14, 0x3c, 0x44, 0xcc, 0x4f, 0xd1, 0x68, 0xb8, 0xd3, 0x6e, 0xb2, 0xcd,\n\t0x4c, 0xd4, 0x67, 0xa9, 0xe0, 0x3b, 0x4d, 0xd7, 0x62, 0xa6, 0xf1, 0x08, 0x18, 0x28, 0x78, 0x88,\n\t0x83, 0x9e, 0xb9, 0xd0, 0x6b, 0xbd, 0xdc, 0x7f, 0x81, 0x98, 0xb3, 0xce, 0x49, 0xdb, 0x76, 0x9a,\n\t0xb5, 0xc4, 0x57, 0xf9, 0x10, 0x30, 0x50, 0xf0, 0x0b, 0x1d, 0x27, 0x69, 0xbb, 0xd6, 0x61, 0xa3,\n\t0xfe, 0x19, 0x2b, 0x7d, 0x87, 0x92, 0xad, 0xec, 0x2f, 0x71, 0x93, 0xae, 0xe9, 0x20, 0x60, 0xa0,\n\t0xfb, 0x16, 0x3a, 0x4e, 0xd2, 0x6d, 0xb7, 0xc2, 0x5d, 0xe7, 0x32, 0x56, 0xfa, 0x15, 0x3f, 0x41,\n\t0xc3, 0x5e, 0xe2, 0x3d, 0x47, 0xc9, 0x40, 0xc0, 0x5b, 0xed, 0x2c, 0x74, 0x9c, 0xbf, 0xda, 0x75,\n\t0x9f, 0xba, 0xd5, 0x64, 0xac, 0xef, 0x2a, 0x7e, 0x82, 0x9d, 0xbc, 0xdf, 0x7a, 0x8e, 0x89, 0x80,\n\t0x9b, 0xb6, 0xc1, 0x58, 0xe8, 0x23, 0x65, 0xaf, 0xea, 0x25, 0x6f, 0xb1, 0xc8, 0x43, 0xc5, 0x54,\n\t0xfc, 0x1f, 0x21, 0x63, 0xa5, 0xf4, 0x07, 0x09, 0x1b, 0x2d, 0x77, 0x99, 0xb0, 0xcb, 0x46, 0xca,\n\t0x45, 0xcf, 0x4a, 0xde, 0x79, 0x8b, 0x86, 0x91, 0xa8, 0xe3, 0x3e, 0x42, 0xc6, 0x51, 0xf3, 0x0e,\n\t0x12, 0x36, 0x5a, 0xee, 0x29, 0x7b, 0x8d, 0x8c, 0x8f, 0x8a, 0x85, 0x94, 0xa7, 0xf2, 0x0d, 0x17,\n\t0x39, 0x4b, 0xdd, 0x7c, 0x84, 0x97, 0xa2, 0xfd, 0x1c, 0x24, 0x6c, 0xb4, 0xc7, 0x52, 0xf6,\n];\n\n/// Table of L\u1D62 = LOG[i + 1] such that g^L\u1D62 = i where g = 0x03.\nconst LOG: number[] = [\n\t0x00, 0x19, 0x01, 0x32, 0x02, 0x1a, 0xc6, 0x4b, 0xc7, 0x1b, 0x68, 0x33, 0xee, 0xdf, 0x03, 0x64,\n\t0x04, 0xe0, 0x0e, 0x34, 0x8d, 0x81, 0xef, 0x4c, 0x71, 0x08, 0xc8, 0xf8, 0x69, 0x1c, 0xc1, 0x7d,\n\t0xc2, 0x1d, 0xb5, 0xf9, 0xb9, 0x27, 0x6a, 0x4d, 0xe4, 0xa6, 0x72, 0x9a, 0xc9, 0x09, 0x78, 0x65,\n\t0x2f, 0x8a, 0x05, 0x21, 0x0f, 0xe1, 0x24, 0x12, 0xf0, 0x82, 0x45, 0x35, 0x93, 0xda, 0x8e, 0x96,\n\t0x8f, 0xdb, 0xbd, 0x36, 0xd0, 0xce, 0x94, 0x13, 0x5c, 0xd2, 0xf1, 0x40, 0x46, 0x83, 0x38, 0x66,\n\t0xdd, 0xfd, 0x30, 0xbf, 0x06, 0x8b, 0x62, 0xb3, 0x25, 0xe2, 0x98, 0x22, 0x88, 0x91, 0x10, 0x7e,\n\t0x6e, 0x48, 0xc3, 0xa3, 0xb6, 0x1e, 0x42, 0x3a, 0x6b, 0x28, 0x54, 0xfa, 0x85, 0x3d, 0xba, 0x2b,\n\t0x79, 0x0a, 0x15, 0x9b, 0x9f, 0x5e, 0xca, 0x4e, 0xd4, 0xac, 0xe5, 0xf3, 0x73, 0xa7, 0x57, 0xaf,\n\t0x58, 0xa8, 0x50, 0xf4, 0xea, 0xd6, 0x74, 0x4f, 0xae, 0xe9, 0xd5, 0xe7, 0xe6, 0xad, 0xe8, 0x2c,\n\t0xd7, 0x75, 0x7a, 0xeb, 0x16, 0x0b, 0xf5, 0x59, 0xcb, 0x5f, 0xb0, 0x9c, 0xa9, 0x51, 0xa0, 0x7f,\n\t0x0c, 0xf6, 0x6f, 0x17, 0xc4, 0x49, 0xec, 0xd8, 0x43, 0x1f, 0x2d, 0xa4, 0x76, 0x7b, 0xb7, 0xcc,\n\t0xbb, 0x3e, 0x5a, 0xfb, 0x60, 0xb1, 0x86, 0x3b, 0x52, 0xa1, 0x6c, 0xaa, 0x55, 0x29, 0x9d, 0x97,\n\t0xb2, 0x87, 0x90, 0x61, 0xbe, 0xdc, 0xfc, 0xbc, 0x95, 0xcf, 0xcd, 0x37, 0x3f, 0x5b, 0xd1, 0x53,\n\t0x39, 0x84, 0x3c, 0x41, 0xa2, 0x6d, 0x47, 0x14, 0x2a, 0x9e, 0x5d, 0x56, 0xf2, 0xd3, 0xab, 0x44,\n\t0x11, 0x92, 0xd9, 0x23, 0x20, 0x2e, 0x89, 0xb4, 0x7c, 0xb8, 0x26, 0x77, 0x99, 0xe3, 0xa5, 0x67,\n\t0x4a, 0xed, 0xde, 0xc5, 0x31, 0xfe, 0x18, 0x0d, 0x63, 0x8c, 0x80, 0xc0, 0xf7, 0x70, 0x07,\n];\n\nexport class Polynomial {\n\tcoefficients: GF256[];\n\n\t/**\n\t * Construct a new Polynomial over [GF256] from the given coefficients.\n\t * The first coefficient is the constant term.\n\t */\n\tconstructor(coefficients: GF256[]) {\n\t\tthis.coefficients = coefficients.slice();\n\n\t\t// The highest degree coefficient is always non-zero.\n\t\twhile (\n\t\t\tthis.coefficients.length > 0 &&\n\t\t\tthis.coefficients[this.coefficients.length - 1].value === 0\n\t\t) {\n\t\t\tthis.coefficients.pop();\n\t\t}\n\t}\n\n\tstatic fromBytes(bytes: Uint8Array): Polynomial {\n\t\treturn new Polynomial(Array.from(bytes, (b) => new GF256(b)));\n\t}\n\n\tdegree(): number {\n\t\tif (this.coefficients.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn this.coefficients.length - 1;\n\t}\n\n\tgetCoefficient(index: number): GF256 {\n\t\tif (index >= this.coefficients.length) {\n\t\t\treturn GF256.zero();\n\t\t}\n\t\treturn this.coefficients[index];\n\t}\n\n\tadd(other: Polynomial): Polynomial {\n\t\tconst degree = Math.max(this.degree(), other.degree());\n\t\treturn new Polynomial(\n\t\t\tArray.from({ length: degree + 1 }, (_, i) =>\n\t\t\t\tthis.getCoefficient(i).add(other.getCoefficient(i)),\n\t\t\t),\n\t\t);\n\t}\n\n\tmul(other: Polynomial): Polynomial {\n\t\tconst degree = this.degree() + other.degree();\n\t\treturn new Polynomial(\n\t\t\tArray.from({ length: degree + 1 }, (_, i) => {\n\t\t\t\tlet sum = GF256.zero();\n\t\t\t\tfor (let j = 0; j <= i; j++) {\n\t\t\t\t\tif (j <= this.degree() && i - j <= other.degree()) {\n\t\t\t\t\t\tsum = sum.add(this.getCoefficient(j).mul(other.getCoefficient(i - j)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn sum;\n\t\t\t}),\n\t\t);\n\t}\n\n\t/** The polynomial s * this. */\n\tscale(s: GF256): Polynomial {\n\t\treturn new Polynomial(this.coefficients.map((c) => c.mul(s)));\n\t}\n\n\tdiv(s: GF256): Polynomial {\n\t\treturn this.scale(new GF256(1).div(s));\n\t}\n\n\t/** The polynomial x + c. */\n\tstatic monic_linear(c: GF256): Polynomial {\n\t\treturn new Polynomial([c, GF256.one()]);\n\t}\n\n\tstatic zero(): Polynomial {\n\t\treturn new Polynomial([]);\n\t}\n\n\tstatic one(): Polynomial {\n\t\treturn new Polynomial([GF256.one()]);\n\t}\n\n\t/** Given a set of coordinates, interpolate a polynomial. */\n\tstatic interpolate(coordinates: { x: GF256; y: GF256 }[]): Polynomial {\n\t\tif (coordinates.length < 1) {\n\t\t\tthrow new Error('At least one coefficient is required');\n\t\t}\n\n\t\tif (hasDuplicates(coordinates.map(({ x }) => x.value))) {\n\t\t\tthrow new Error('Coefficients must have unique x values');\n\t\t}\n\n\t\treturn coordinates.reduce(\n\t\t\t(sum, { x: x_j, y: y_j }, j) =>\n\t\t\t\tsum.add(\n\t\t\t\t\tcoordinates\n\t\t\t\t\t\t.filter((_, i) => i !== j)\n\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t(product, { x: x_i }) =>\n\t\t\t\t\t\t\t\tproduct.mul(Polynomial.monic_linear(x_i.neg()).div(x_j.sub(x_i))),\n\t\t\t\t\t\t\tPolynomial.one(),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.scale(y_j),\n\t\t\t\t),\n\t\t\tPolynomial.zero(),\n\t\t);\n\t}\n\n\t/** Given a set of coordinates, interpolate a polynomial and evaluate it at x = 0. */\n\tstatic combine(coordinates: { x: GF256; y: GF256 }[]): GF256 {\n\t\tif (coordinates.length < 1) {\n\t\t\tthrow new Error('At least one coefficient is required');\n\t\t}\n\n\t\tif (hasDuplicates(coordinates.map(({ x }) => x.value))) {\n\t\t\tthrow new Error('Coefficients must have unique x values');\n\t\t}\n\n\t\tconst quotient: GF256 = coordinates.reduce((sum, { x: x_j, y: y_j }, j) => {\n\t\t\tconst denominator = x_j.mul(\n\t\t\t\tcoordinates\n\t\t\t\t\t.filter((_, i) => i !== j)\n\t\t\t\t\t.reduce((product, { x: x_i }) => product.mul(x_i.sub(x_j)), GF256.one()),\n\t\t\t);\n\t\t\treturn sum.add(y_j.div(denominator));\n\t\t}, GF256.zero());\n\n\t\tconst xProduct = coordinates.reduce((product, { x }) => product.mul(x), GF256.one());\n\t\treturn xProduct.mul(quotient);\n\t}\n\n\t/** Evaluate the polynomial at x. */\n\tevaluate(x: GF256): GF256 {\n\t\treturn this.coefficients\n\t\t\t.toReversed()\n\t\t\t.reduce((sum, coefficient) => sum.mul(x).add(coefficient), GF256.zero());\n\t}\n\n\tequals(other: Polynomial): boolean {\n\t\tif (this.coefficients.length !== other.coefficients.length) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.coefficients.every((c, i) => c.equals(other.getCoefficient(i)));\n\t}\n}\n\n/** Representation of a share of a secret. The index is a number between 1 and 255. */\nexport type Share = {\n\tindex: number;\n\tshare: Uint8Array;\n};\n\nfunction toInternalShare(share: Share): InternalShare {\n\treturn {\n\t\tindex: new GF256(share.index),\n\t\tshare: Array.from(share.share, (byte) => new GF256(byte)),\n\t};\n}\n\n/** Internal representation of a share of a secret. The index is a non-zero GF256. */\ntype InternalShare = {\n\tindex: GF256;\n\tshare: GF256[];\n};\n\nfunction toShare(internalShare: InternalShare): Share {\n\treturn {\n\t\tindex: internalShare.index.value,\n\t\tshare: new Uint8Array(internalShare.share.map((byte) => byte.value)),\n\t};\n}\n\n/**\n * Sample a random polynomial with the given constant and degree.\n *\n * @param constant The constant term of the polynomial.\n * @param degree The degree of the polynomial.\n * @returns A random polynomial with the given constant and degree.\n */\nfunction samplePolynomial(constant: GF256, degree: number): Polynomial {\n\tconst randomCoefficients = new Uint8Array(degree);\n\tcrypto.getRandomValues(randomCoefficients);\n\n\t// The resulting polynomial has degree + 1 coefficients.\n\treturn Polynomial.fromBytes(new Uint8Array([constant.value, ...randomCoefficients]));\n}\n\n/**\n * Split a secret into shares.\n *\n * @param secret The secret to split.\n * @param threshold The minimum number of shares required to reconstruct the secret.\n * @param total The total number of shares to generate.\n * @returns The shares.\n */\nexport function split(secret: Uint8Array, threshold: number, total: number): Share[] {\n\tif (threshold > total || threshold < 1 || total > GF256_SIZE) {\n\t\tthrow new Error(`Invalid threshold ${threshold} or total ${total}`);\n\t}\n\n\tconst polynomials = Array.from(secret, (s) => samplePolynomial(new GF256(s), threshold - 1));\n\treturn Array.from({ length: total }, (_, i) => {\n\t\t// Indexes start at 1 because 0 is reserved for the constant term (which is also the secret).\n\t\tconst index = new GF256(i + 1);\n\t\tconst share = polynomials.map((p) => p.evaluate(index));\n\t\treturn toShare({ index, share });\n\t});\n}\n\n/** Validate a set of shares and return them in internal shares representation along with the length of the shares. */\nfunction validateShares(shares: Share[]): { internalShares: InternalShare[]; length: number } {\n\tif (shares.length < 1) {\n\t\tthrow new Error('At least one share is required');\n\t}\n\n\tif (!allEqual(shares.map(({ share }) => share.length))) {\n\t\tthrow new Error('All shares must have the same length');\n\t}\n\n\tif (hasDuplicates(shares.map(({ index }) => index))) {\n\t\tthrow new Error('Shares must have unique indices');\n\t}\n\n\tconst internalShares = shares.map(toInternalShare);\n\tconst length = internalShares[0].share.length;\n\n\treturn { internalShares, length };\n}\n\n/**\n * Combine shares into a secret. If fewer than the threshold number of shares are provided,\n * the result will be indistinguishable from random.\n *\n * @param shares The shares to combine.\n * @returns The secret.\n */\nexport function combine(shares: Share[]): Uint8Array {\n\tconst { internalShares, length } = validateShares(shares);\n\n\treturn new Uint8Array(\n\t\tArray.from(\n\t\t\t{ length },\n\t\t\t(_, i) =>\n\t\t\t\tPolynomial.combine(\n\t\t\t\t\tinternalShares.map(({ index, share }) => ({\n\t\t\t\t\t\tx: index,\n\t\t\t\t\t\ty: share[i],\n\t\t\t\t\t})),\n\t\t\t\t).value,\n\t\t),\n\t);\n}\n\n/**\n * Interpolate a polynomial from the given shares.\n *\n * @param shares The shares to interpolate from.\n * @returns A function that evaluates the polynomial at a given x.\n */\nexport function interpolate(shares: Share[]): (x: number) => Uint8Array {\n\tconst { internalShares, length } = validateShares(shares);\n\n\tconst polynomials = Array.from({ length }, (_, i) =>\n\t\tPolynomial.interpolate(internalShares.map(({ index, share }) => ({ x: index, y: share[i] }))),\n\t);\n\n\treturn (x: number) => {\n\t\treturn new Uint8Array(polynomials.map((p) => p.evaluate(new GF256(x)).value));\n\t};\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAAwC;AAExC,MAAM,aAAa;AAKZ,MAAM,MAAM;AAAA,EAGlB,YAAY,OAAe;AAC1B,QAAI,QAAQ,KAAK,SAAS,YAAY;AACrC,YAAM,IAAI,MAAM,iBAAiB,KAAK,YAAY;AAAA,IACnD;AACA,SAAK,QAAQ;AAAA,EACd;AAAA,EAEA,MAAc;AACb,QAAI,KAAK,UAAU,GAAG;AACrB,YAAM,IAAI,MAAM,eAAe;AAAA,IAChC;AACA,WAAO,IAAI,KAAK,QAAQ,CAAC;AAAA,EAC1B;AAAA,EAEA,OAAO,IAAI,GAAkB;AAC5B,WAAO,IAAI,MAAM,IAAI,KAAK,aAAa,EAAE,CAAC;AAAA,EAC3C;AAAA,EAEA,IAAI,OAAqB;AACxB,WAAO,IAAI,MAAM,KAAK,QAAQ,MAAM,KAAK;AAAA,EAC1C;AAAA,EAEA,IAAI,OAAqB;AAExB,WAAO,KAAK,IAAI,KAAK;AAAA,EACtB;AAAA,EAEA,MAAa;AAEZ,WAAO;AAAA,EACR;AAAA,EAEA,IAAI,OAAqB;AACxB,QAAI,KAAK,UAAU,KAAK,MAAM,UAAU,GAAG;AAC1C,aAAO,IAAI,MAAM,CAAC;AAAA,IACnB;AACA,WAAO,MAAM,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC;AAAA,EAC1C;AAAA,EAEA,IAAI,OAAqB;AACxB,WAAO,KAAK,IAAI,MAAM,IAAI,aAAa,MAAM,IAAI,IAAI,CAAC,CAAC;AAAA,EACxD;AAAA,EAEA,OAAO,OAAuB;AAC7B,WAAO,KAAK,UAAU,MAAM;AAAA,EAC7B;AAAA,EAEA,OAAO,OAAc;AACpB,WAAO,IAAI,MAAM,CAAC;AAAA,EACnB;AAAA,EAEA,OAAO,MAAa;AACnB,WAAO,IAAI,MAAM,CAAC;AAAA,EACnB;AACD;AAGA,MAAM,MAAgB;AAAA,EACrB;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AACrF;AAGA,MAAM,MAAgB;AAAA,EACrB;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AACrF;AAEO,MAAM,WAAW;AAAA;AAAA;AAAA;AAAA;AAAA,EAOvB,YAAY,cAAuB;AAClC,SAAK,eAAe,aAAa,MAAM;AAGvC,WACC,KAAK,aAAa,SAAS,KAC3B,KAAK,aAAa,KAAK,aAAa,SAAS,CAAC,EAAE,UAAU,GACzD;AACD,WAAK,aAAa,IAAI;AAAA,IACvB;AAAA,EACD;AAAA,EAEA,OAAO,UAAU,OAA+B;AAC/C,WAAO,IAAI,WAAW,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,MAAM,CAAC,CAAC,CAAC;AAAA,EAC7D;AAAA,EAEA,SAAiB;AAChB,QAAI,KAAK,aAAa,WAAW,GAAG;AACnC,aAAO;AAAA,IACR;AACA,WAAO,KAAK,aAAa,SAAS;AAAA,EACnC;AAAA,EAEA,eAAe,OAAsB;AACpC,QAAI,SAAS,KAAK,aAAa,QAAQ;AACtC,aAAO,MAAM,KAAK;AAAA,IACnB;AACA,WAAO,KAAK,aAAa,KAAK;AAAA,EAC/B;AAAA,EAEA,IAAI,OAA+B;AAClC,UAAM,SAAS,KAAK,IAAI,KAAK,OAAO,GAAG,MAAM,OAAO,CAAC;AACrD,WAAO,IAAI;AAAA,MACV,MAAM;AAAA,QAAK,EAAE,QAAQ,SAAS,EAAE;AAAA,QAAG,CAAC,GAAG,MACtC,KAAK,eAAe,CAAC,EAAE,IAAI,MAAM,eAAe,CAAC,CAAC;AAAA,MACnD;AAAA,IACD;AAAA,EACD;AAAA,EAEA,IAAI,OAA+B;AAClC,UAAM,SAAS,KAAK,OAAO,IAAI,MAAM,OAAO;AAC5C,WAAO,IAAI;AAAA,MACV,MAAM,KAAK,EAAE,QAAQ,SAAS,EAAE,GAAG,CAAC,GAAG,MAAM;AAC5C,YAAI,MAAM,MAAM,KAAK;AACrB,iBAAS,IAAI,GAAG,KAAK,GAAG,KAAK;AAC5B,cAAI,KAAK,KAAK,OAAO,KAAK,IAAI,KAAK,MAAM,OAAO,GAAG;AAClD,kBAAM,IAAI,IAAI,KAAK,eAAe,CAAC,EAAE,IAAI,MAAM,eAAe,IAAI,CAAC,CAAC,CAAC;AAAA,UACtE;AAAA,QACD;AACA,eAAO;AAAA,MACR,CAAC;AAAA,IACF;AAAA,EACD;AAAA;AAAA,EAGA,MAAM,GAAsB;AAC3B,WAAO,IAAI,WAAW,KAAK,aAAa,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAAA,EAC7D;AAAA,EAEA,IAAI,GAAsB;AACzB,WAAO,KAAK,MAAM,IAAI,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;AAAA,EACtC;AAAA;AAAA,EAGA,OAAO,aAAa,GAAsB;AACzC,WAAO,IAAI,WAAW,CAAC,GAAG,MAAM,IAAI,CAAC,CAAC;AAAA,EACvC;AAAA,EAEA,OAAO,OAAmB;AACzB,WAAO,IAAI,WAAW,CAAC,CAAC;AAAA,EACzB;AAAA,EAEA,OAAO,MAAkB;AACxB,WAAO,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,CAAC;AAAA,EACpC;AAAA;AAAA,EAGA,OAAO,YAAY,aAAmD;AACrE,QAAI,YAAY,SAAS,GAAG;AAC3B,YAAM,IAAI,MAAM,sCAAsC;AAAA,IACvD;AAEA,YAAI,4BAAc,YAAY,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;AACvD,YAAM,IAAI,MAAM,wCAAwC;AAAA,IACzD;AAEA,WAAO,YAAY;AAAA,MAClB,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,MACzB,IAAI;AAAA,QACH,YACE,OAAO,CAAC,GAAG,MAAM,MAAM,CAAC,EACxB;AAAA,UACA,CAAC,SAAS,EAAE,GAAG,IAAI,MAClB,QAAQ,IAAI,WAAW,aAAa,IAAI,IAAI,CAAC,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC;AAAA,UACjE,WAAW,IAAI;AAAA,QAChB,EACC,MAAM,GAAG;AAAA,MACZ;AAAA,MACD,WAAW,KAAK;AAAA,IACjB;AAAA,EACD;AAAA;AAAA,EAGA,OAAO,QAAQ,aAA8C;AAC5D,QAAI,YAAY,SAAS,GAAG;AAC3B,YAAM,IAAI,MAAM,sCAAsC;AAAA,IACvD;AAEA,YAAI,4BAAc,YAAY,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,GAAG;AACvD,YAAM,IAAI,MAAM,wCAAwC;AAAA,IACzD;AAEA,UAAM,WAAkB,YAAY,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,MAAM;AAC1E,YAAM,cAAc,IAAI;AAAA,QACvB,YACE,OAAO,CAAC,GAAG,MAAM,MAAM,CAAC,EACxB,OAAO,CAAC,SAAS,EAAE,GAAG,IAAI,MAAM,QAAQ,IAAI,IAAI,IAAI,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,MACzE;AACA,aAAO,IAAI,IAAI,IAAI,IAAI,WAAW,CAAC;AAAA,IACpC,GAAG,MAAM,KAAK,CAAC;AAEf,UAAM,WAAW,YAAY,OAAO,CAAC,SAAS,EAAE,EAAE,MAAM,QAAQ,IAAI,CAAC,GAAG,MAAM,IAAI,CAAC;AACnF,WAAO,SAAS,IAAI,QAAQ;AAAA,EAC7B;AAAA;AAAA,EAGA,SAAS,GAAiB;AACzB,WAAO,KAAK,aACV,WAAW,EACX,OAAO,CAAC,KAAK,gBAAgB,IAAI,IAAI,CAAC,EAAE,IAAI,WAAW,GAAG,MAAM,KAAK,CAAC;AAAA,EACzE;AAAA,EAEA,OAAO,OAA4B;AAClC,QAAI,KAAK,aAAa,WAAW,MAAM,aAAa,QAAQ;AAC3D,aAAO;AAAA,IACR;AACA,WAAO,KAAK,aAAa,MAAM,CAAC,GAAG,MAAM,EAAE,OAAO,MAAM,eAAe,CAAC,CAAC,CAAC;AAAA,EAC3E;AACD;AAQA,SAAS,gBAAgB,OAA6B;AACrD,SAAO;AAAA,IACN,OAAO,IAAI,MAAM,MAAM,KAAK;AAAA,IAC5B,OAAO,MAAM,KAAK,MAAM,OAAO,CAAC,SAAS,IAAI,MAAM,IAAI,CAAC;AAAA,EACzD;AACD;AAQA,SAAS,QAAQ,eAAqC;AACrD,SAAO;AAAA,IACN,OAAO,cAAc,MAAM;AAAA,IAC3B,OAAO,IAAI,WAAW,cAAc,MAAM,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;AAAA,EACpE;AACD;AASA,SAAS,iBAAiB,UAAiB,QAA4B;AACtE,QAAM,qBAAqB,IAAI,WAAW,MAAM;AAChD,SAAO,gBAAgB,kBAAkB;AAGzC,SAAO,WAAW,UAAU,IAAI,WAAW,CAAC,SAAS,OAAO,GAAG,kBAAkB,CAAC,CAAC;AACpF;AAUO,SAAS,MAAM,QAAoB,WAAmB,OAAwB;AACpF,MAAI,YAAY,SAAS,YAAY,KAAK,QAAQ,YAAY;AAC7D,UAAM,IAAI,MAAM,qBAAqB,SAAS,aAAa,KAAK,EAAE;AAAA,EACnE;AAEA,QAAM,cAAc,MAAM,KAAK,QAAQ,CAAC,MAAM,iBAAiB,IAAI,MAAM,CAAC,GAAG,YAAY,CAAC,CAAC;AAC3F,SAAO,MAAM,KAAK,EAAE,QAAQ,MAAM,GAAG,CAAC,GAAG,MAAM;AAE9C,UAAM,QAAQ,IAAI,MAAM,IAAI,CAAC;AAC7B,UAAM,QAAQ,YAAY,IAAI,CAAC,MAAM,EAAE,SAAS,KAAK,CAAC;AACtD,WAAO,QAAQ,EAAE,OAAO,MAAM,CAAC;AAAA,EAChC,CAAC;AACF;AAGA,SAAS,eAAe,QAAsE;AAC7F,MAAI,OAAO,SAAS,GAAG;AACtB,UAAM,IAAI,MAAM,gCAAgC;AAAA,EACjD;AAEA,MAAI,KAAC,uBAAS,OAAO,IAAI,CAAC,EAAE,MAAM,MAAM,MAAM,MAAM,CAAC,GAAG;AACvD,UAAM,IAAI,MAAM,sCAAsC;AAAA,EACvD;AAEA,UAAI,4BAAc,OAAO,IAAI,CAAC,EAAE,MAAM,MAAM,KAAK,CAAC,GAAG;AACpD,UAAM,IAAI,MAAM,iCAAiC;AAAA,EAClD;AAEA,QAAM,iBAAiB,OAAO,IAAI,eAAe;AACjD,QAAM,SAAS,eAAe,CAAC,EAAE,MAAM;AAEvC,SAAO,EAAE,gBAAgB,OAAO;AACjC;AASO,SAAS,QAAQ,QAA6B;AACpD,QAAM,EAAE,gBAAgB,OAAO,IAAI,eAAe,MAAM;AAExD,SAAO,IAAI;AAAA,IACV,MAAM;AAAA,MACL,EAAE,OAAO;AAAA,MACT,CAAC,GAAG,MACH,WAAW;AAAA,QACV,eAAe,IAAI,CAAC,EAAE,OAAO,MAAM,OAAO;AAAA,UACzC,GAAG;AAAA,UACH,GAAG,MAAM,CAAC;AAAA,QACX,EAAE;AAAA,MACH,EAAE;AAAA,IACJ;AAAA,EACD;AACD;AAQO,SAAS,YAAY,QAA4C;AACvE,QAAM,EAAE,gBAAgB,OAAO,IAAI,eAAe,MAAM;AAExD,QAAM,cAAc,MAAM;AAAA,IAAK,EAAE,OAAO;AAAA,IAAG,CAAC,GAAG,MAC9C,WAAW,YAAY,eAAe,IAAI,CAAC,EAAE,OAAO,MAAM,OAAO,EAAE,GAAG,OAAO,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC;AAAA,EAC7F;AAEA,SAAO,CAAC,MAAc;AACrB,WAAO,IAAI,WAAW,YAAY,IAAI,CAAC,MAAM,EAAE,SAAS,IAAI,MAAM,CAAC,CAAC,EAAE,KAAK,CAAC;AAAA,EAC7E;AACD;",
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { allEqual, hasDuplicates } from './utils.js';\n\nconst GF256_SIZE = 256;\n\n/**\n * A field element in the Rijndael finite field GF(2\u2078) with a fixed generator g = 0x03.\n */\nexport class GF256 {\n\tvalue: number;\n\n\tconstructor(value: number) {\n\t\tif (value < 0 || value >= GF256_SIZE) {\n\t\t\tthrow new Error(`Invalid value ${value} for GF256`);\n\t\t}\n\t\tthis.value = value;\n\t}\n\n\tlog(): number {\n\t\tif (this.value === 0) {\n\t\t\tthrow new Error('Invalid value');\n\t\t}\n\t\treturn LOG[this.value - 1];\n\t}\n\n\tstatic exp(x: number): GF256 {\n\t\treturn new GF256(EXP[x % (GF256_SIZE - 1)]);\n\t}\n\n\tadd(other: GF256): GF256 {\n\t\treturn new GF256(this.value ^ other.value);\n\t}\n\n\tsub(other: GF256): GF256 {\n\t\t// Addition is the same as subtraction in a binary field.\n\t\treturn this.add(other);\n\t}\n\n\tneg(): GF256 {\n\t\t// Negation doesn't change the value in a binary field.\n\t\treturn this;\n\t}\n\n\tmul(other: GF256): GF256 {\n\t\tif (this.value === 0 || other.value === 0) {\n\t\t\treturn new GF256(0);\n\t\t}\n\t\treturn GF256.exp(this.log() + other.log());\n\t}\n\n\tdiv(other: GF256): GF256 {\n\t\treturn this.mul(GF256.exp(GF256_SIZE - other.log() - 1));\n\t}\n\n\tequals(other: GF256): boolean {\n\t\treturn this.value === other.value;\n\t}\n\n\tstatic zero(): GF256 {\n\t\treturn new GF256(0);\n\t}\n\n\tstatic one(): GF256 {\n\t\treturn new GF256(1);\n\t}\n}\n\n/// Table of E\u1D62 = g\u2071 where g = 0x03 generates the multiplicative group of the field.\nconst EXP: number[] = [\n\t0x01, 0x03, 0x05, 0x0f, 0x11, 0x33, 0x55, 0xff, 0x1a, 0x2e, 0x72, 0x96, 0xa1, 0xf8, 0x13, 0x35,\n\t0x5f, 0xe1, 0x38, 0x48, 0xd8, 0x73, 0x95, 0xa4, 0xf7, 0x02, 0x06, 0x0a, 0x1e, 0x22, 0x66, 0xaa,\n\t0xe5, 0x34, 0x5c, 0xe4, 0x37, 0x59, 0xeb, 0x26, 0x6a, 0xbe, 0xd9, 0x70, 0x90, 0xab, 0xe6, 0x31,\n\t0x53, 0xf5, 0x04, 0x0c, 0x14, 0x3c, 0x44, 0xcc, 0x4f, 0xd1, 0x68, 0xb8, 0xd3, 0x6e, 0xb2, 0xcd,\n\t0x4c, 0xd4, 0x67, 0xa9, 0xe0, 0x3b, 0x4d, 0xd7, 0x62, 0xa6, 0xf1, 0x08, 0x18, 0x28, 0x78, 0x88,\n\t0x83, 0x9e, 0xb9, 0xd0, 0x6b, 0xbd, 0xdc, 0x7f, 0x81, 0x98, 0xb3, 0xce, 0x49, 0xdb, 0x76, 0x9a,\n\t0xb5, 0xc4, 0x57, 0xf9, 0x10, 0x30, 0x50, 0xf0, 0x0b, 0x1d, 0x27, 0x69, 0xbb, 0xd6, 0x61, 0xa3,\n\t0xfe, 0x19, 0x2b, 0x7d, 0x87, 0x92, 0xad, 0xec, 0x2f, 0x71, 0x93, 0xae, 0xe9, 0x20, 0x60, 0xa0,\n\t0xfb, 0x16, 0x3a, 0x4e, 0xd2, 0x6d, 0xb7, 0xc2, 0x5d, 0xe7, 0x32, 0x56, 0xfa, 0x15, 0x3f, 0x41,\n\t0xc3, 0x5e, 0xe2, 0x3d, 0x47, 0xc9, 0x40, 0xc0, 0x5b, 0xed, 0x2c, 0x74, 0x9c, 0xbf, 0xda, 0x75,\n\t0x9f, 0xba, 0xd5, 0x64, 0xac, 0xef, 0x2a, 0x7e, 0x82, 0x9d, 0xbc, 0xdf, 0x7a, 0x8e, 0x89, 0x80,\n\t0x9b, 0xb6, 0xc1, 0x58, 0xe8, 0x23, 0x65, 0xaf, 0xea, 0x25, 0x6f, 0xb1, 0xc8, 0x43, 0xc5, 0x54,\n\t0xfc, 0x1f, 0x21, 0x63, 0xa5, 0xf4, 0x07, 0x09, 0x1b, 0x2d, 0x77, 0x99, 0xb0, 0xcb, 0x46, 0xca,\n\t0x45, 0xcf, 0x4a, 0xde, 0x79, 0x8b, 0x86, 0x91, 0xa8, 0xe3, 0x3e, 0x42, 0xc6, 0x51, 0xf3, 0x0e,\n\t0x12, 0x36, 0x5a, 0xee, 0x29, 0x7b, 0x8d, 0x8c, 0x8f, 0x8a, 0x85, 0x94, 0xa7, 0xf2, 0x0d, 0x17,\n\t0x39, 0x4b, 0xdd, 0x7c, 0x84, 0x97, 0xa2, 0xfd, 0x1c, 0x24, 0x6c, 0xb4, 0xc7, 0x52, 0xf6,\n];\n\n/// Table of L\u1D62 = LOG[i + 1] such that g^L\u1D62 = i where g = 0x03.\nconst LOG: number[] = [\n\t0x00, 0x19, 0x01, 0x32, 0x02, 0x1a, 0xc6, 0x4b, 0xc7, 0x1b, 0x68, 0x33, 0xee, 0xdf, 0x03, 0x64,\n\t0x04, 0xe0, 0x0e, 0x34, 0x8d, 0x81, 0xef, 0x4c, 0x71, 0x08, 0xc8, 0xf8, 0x69, 0x1c, 0xc1, 0x7d,\n\t0xc2, 0x1d, 0xb5, 0xf9, 0xb9, 0x27, 0x6a, 0x4d, 0xe4, 0xa6, 0x72, 0x9a, 0xc9, 0x09, 0x78, 0x65,\n\t0x2f, 0x8a, 0x05, 0x21, 0x0f, 0xe1, 0x24, 0x12, 0xf0, 0x82, 0x45, 0x35, 0x93, 0xda, 0x8e, 0x96,\n\t0x8f, 0xdb, 0xbd, 0x36, 0xd0, 0xce, 0x94, 0x13, 0x5c, 0xd2, 0xf1, 0x40, 0x46, 0x83, 0x38, 0x66,\n\t0xdd, 0xfd, 0x30, 0xbf, 0x06, 0x8b, 0x62, 0xb3, 0x25, 0xe2, 0x98, 0x22, 0x88, 0x91, 0x10, 0x7e,\n\t0x6e, 0x48, 0xc3, 0xa3, 0xb6, 0x1e, 0x42, 0x3a, 0x6b, 0x28, 0x54, 0xfa, 0x85, 0x3d, 0xba, 0x2b,\n\t0x79, 0x0a, 0x15, 0x9b, 0x9f, 0x5e, 0xca, 0x4e, 0xd4, 0xac, 0xe5, 0xf3, 0x73, 0xa7, 0x57, 0xaf,\n\t0x58, 0xa8, 0x50, 0xf4, 0xea, 0xd6, 0x74, 0x4f, 0xae, 0xe9, 0xd5, 0xe7, 0xe6, 0xad, 0xe8, 0x2c,\n\t0xd7, 0x75, 0x7a, 0xeb, 0x16, 0x0b, 0xf5, 0x59, 0xcb, 0x5f, 0xb0, 0x9c, 0xa9, 0x51, 0xa0, 0x7f,\n\t0x0c, 0xf6, 0x6f, 0x17, 0xc4, 0x49, 0xec, 0xd8, 0x43, 0x1f, 0x2d, 0xa4, 0x76, 0x7b, 0xb7, 0xcc,\n\t0xbb, 0x3e, 0x5a, 0xfb, 0x60, 0xb1, 0x86, 0x3b, 0x52, 0xa1, 0x6c, 0xaa, 0x55, 0x29, 0x9d, 0x97,\n\t0xb2, 0x87, 0x90, 0x61, 0xbe, 0xdc, 0xfc, 0xbc, 0x95, 0xcf, 0xcd, 0x37, 0x3f, 0x5b, 0xd1, 0x53,\n\t0x39, 0x84, 0x3c, 0x41, 0xa2, 0x6d, 0x47, 0x14, 0x2a, 0x9e, 0x5d, 0x56, 0xf2, 0xd3, 0xab, 0x44,\n\t0x11, 0x92, 0xd9, 0x23, 0x20, 0x2e, 0x89, 0xb4, 0x7c, 0xb8, 0x26, 0x77, 0x99, 0xe3, 0xa5, 0x67,\n\t0x4a, 0xed, 0xde, 0xc5, 0x31, 0xfe, 0x18, 0x0d, 0x63, 0x8c, 0x80, 0xc0, 0xf7, 0x70, 0x07,\n];\n\nexport class Polynomial {\n\tcoefficients: GF256[];\n\n\t/**\n\t * Construct a new Polynomial over [GF256] from the given coefficients.\n\t * The first coefficient is the constant term.\n\t */\n\tconstructor(coefficients: GF256[]) {\n\t\tthis.coefficients = coefficients.slice();\n\n\t\t// The highest degree coefficient is always non-zero.\n\t\twhile (\n\t\t\tthis.coefficients.length > 0 &&\n\t\t\tthis.coefficients[this.coefficients.length - 1].value === 0\n\t\t) {\n\t\t\tthis.coefficients.pop();\n\t\t}\n\t}\n\n\tstatic fromBytes(bytes: Uint8Array): Polynomial {\n\t\treturn new Polynomial(Array.from(bytes, (b) => new GF256(b)));\n\t}\n\n\tdegree(): number {\n\t\tif (this.coefficients.length === 0) {\n\t\t\treturn 0;\n\t\t}\n\t\treturn this.coefficients.length - 1;\n\t}\n\n\tgetCoefficient(index: number): GF256 {\n\t\tif (index >= this.coefficients.length) {\n\t\t\treturn GF256.zero();\n\t\t}\n\t\treturn this.coefficients[index];\n\t}\n\n\tadd(other: Polynomial): Polynomial {\n\t\tconst degree = Math.max(this.degree(), other.degree());\n\t\treturn new Polynomial(\n\t\t\tArray.from({ length: degree + 1 }, (_, i) =>\n\t\t\t\tthis.getCoefficient(i).add(other.getCoefficient(i)),\n\t\t\t),\n\t\t);\n\t}\n\n\tmul(other: Polynomial): Polynomial {\n\t\tconst degree = this.degree() + other.degree();\n\t\treturn new Polynomial(\n\t\t\tArray.from({ length: degree + 1 }, (_, i) => {\n\t\t\t\tlet sum = GF256.zero();\n\t\t\t\tfor (let j = 0; j <= i; j++) {\n\t\t\t\t\tif (j <= this.degree() && i - j <= other.degree()) {\n\t\t\t\t\t\tsum = sum.add(this.getCoefficient(j).mul(other.getCoefficient(i - j)));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn sum;\n\t\t\t}),\n\t\t);\n\t}\n\n\t/** The polynomial s * this. */\n\tscale(s: GF256): Polynomial {\n\t\treturn new Polynomial(this.coefficients.map((c) => c.mul(s)));\n\t}\n\n\tdiv(s: GF256): Polynomial {\n\t\treturn this.scale(new GF256(1).div(s));\n\t}\n\n\t/** The polynomial x + c. */\n\tstatic monic_linear(c: GF256): Polynomial {\n\t\treturn new Polynomial([c, GF256.one()]);\n\t}\n\n\tstatic zero(): Polynomial {\n\t\treturn new Polynomial([]);\n\t}\n\n\tstatic one(): Polynomial {\n\t\treturn new Polynomial([GF256.one()]);\n\t}\n\n\t/** Given a set of coordinates, interpolate a polynomial. */\n\tstatic interpolate(coordinates: { x: GF256; y: GF256 }[]): Polynomial {\n\t\tif (coordinates.length < 1) {\n\t\t\tthrow new Error('At least one coefficient is required');\n\t\t}\n\n\t\tif (hasDuplicates(coordinates.map(({ x }) => x.value))) {\n\t\t\tthrow new Error('Coefficients must have unique x values');\n\t\t}\n\n\t\treturn coordinates.reduce(\n\t\t\t(sum, { x: x_j, y: y_j }, j) =>\n\t\t\t\tsum.add(\n\t\t\t\t\tcoordinates\n\t\t\t\t\t\t.filter((_, i) => i !== j)\n\t\t\t\t\t\t.reduce(\n\t\t\t\t\t\t\t(product, { x: x_i }) =>\n\t\t\t\t\t\t\t\tproduct.mul(Polynomial.monic_linear(x_i.neg()).div(x_j.sub(x_i))),\n\t\t\t\t\t\t\tPolynomial.one(),\n\t\t\t\t\t\t)\n\t\t\t\t\t\t.scale(y_j),\n\t\t\t\t),\n\t\t\tPolynomial.zero(),\n\t\t);\n\t}\n\n\t/** Given a set of coordinates, interpolate a polynomial and evaluate it at x = 0. */\n\tstatic combine(coordinates: { x: GF256; y: GF256 }[]): GF256 {\n\t\tif (coordinates.length < 1) {\n\t\t\tthrow new Error('At least one coefficient is required');\n\t\t}\n\n\t\tif (hasDuplicates(coordinates.map(({ x }) => x.value))) {\n\t\t\tthrow new Error('Coefficients must have unique x values');\n\t\t}\n\n\t\tconst quotient: GF256 = coordinates.reduce((sum, { x: x_j, y: y_j }, j) => {\n\t\t\tconst denominator = x_j.mul(\n\t\t\t\tcoordinates\n\t\t\t\t\t.filter((_, i) => i !== j)\n\t\t\t\t\t.reduce((product, { x: x_i }) => product.mul(x_i.sub(x_j)), GF256.one()),\n\t\t\t);\n\t\t\treturn sum.add(y_j.div(denominator));\n\t\t}, GF256.zero());\n\n\t\tconst xProduct = coordinates.reduce((product, { x }) => product.mul(x), GF256.one());\n\t\treturn xProduct.mul(quotient);\n\t}\n\n\t/** Evaluate the polynomial at x. */\n\tevaluate(x: GF256): GF256 {\n\t\treturn this.coefficients\n\t\t\t.toReversed()\n\t\t\t.reduce((sum, coefficient) => sum.mul(x).add(coefficient), GF256.zero());\n\t}\n\n\tequals(other: Polynomial): boolean {\n\t\tif (this.coefficients.length !== other.coefficients.length) {\n\t\t\treturn false;\n\t\t}\n\t\treturn this.coefficients.every((c, i) => c.equals(other.getCoefficient(i)));\n\t}\n}\n\n/** Representation of a share of a secret. The index is a number between 1 and 255. */\nexport type Share = {\n\tindex: number;\n\tshare: Uint8Array;\n};\n\nfunction toInternalShare(share: Share): InternalShare {\n\treturn {\n\t\tindex: new GF256(share.index),\n\t\tshare: Array.from(share.share, (byte) => new GF256(byte)),\n\t};\n}\n\n/** Internal representation of a share of a secret. The index is a non-zero GF256. */\ntype InternalShare = {\n\tindex: GF256;\n\tshare: GF256[];\n};\n\nfunction toShare(internalShare: InternalShare): Share {\n\treturn {\n\t\tindex: internalShare.index.value,\n\t\tshare: new Uint8Array(internalShare.share.map((byte) => byte.value)),\n\t};\n}\n\n/**\n * Sample a random polynomial with the given constant and degree.\n *\n * @param constant The constant term of the polynomial.\n * @param degree The degree of the polynomial.\n * @returns A random polynomial with the given constant and degree.\n */\nfunction samplePolynomial(constant: GF256, degree: number): Polynomial {\n\tconst randomCoefficients = new Uint8Array(degree);\n\tcrypto.getRandomValues(randomCoefficients);\n\n\t// The resulting polynomial has degree + 1 coefficients.\n\treturn Polynomial.fromBytes(new Uint8Array([constant.value, ...randomCoefficients]));\n}\n\n/**\n * Split a secret into shares.\n *\n * @param secret The secret to split.\n * @param threshold The minimum number of shares required to reconstruct the secret.\n * @param total The total number of shares to generate.\n * @returns The shares.\n */\nexport function split(secret: Uint8Array, threshold: number, total: number): Share[] {\n\tif (threshold > total || threshold < 1 || total >= GF256_SIZE) {\n\t\tthrow new Error(`Invalid threshold ${threshold} or total ${total}`);\n\t}\n\n\tconst polynomials = Array.from(secret, (s) => samplePolynomial(new GF256(s), threshold - 1));\n\treturn Array.from({ length: total }, (_, i) => {\n\t\t// Indexes start at 1 because 0 is reserved for the constant term (which is also the secret).\n\t\tconst index = new GF256(i + 1);\n\t\tconst share = polynomials.map((p) => p.evaluate(index));\n\t\treturn toShare({ index, share });\n\t});\n}\n\n/** Validate a set of shares and return them in internal shares representation along with the length of the shares. */\nfunction validateShares(shares: Share[]): { internalShares: InternalShare[]; length: number } {\n\tif (shares.length < 1) {\n\t\tthrow new Error('At least one share is required');\n\t}\n\n\tif (!allEqual(shares.map(({ share }) => share.length))) {\n\t\tthrow new Error('All shares must have the same length');\n\t}\n\n\tif (hasDuplicates(shares.map(({ index }) => index))) {\n\t\tthrow new Error('Shares must have unique indices');\n\t}\n\n\tconst internalShares = shares.map(toInternalShare);\n\tconst length = internalShares[0].share.length;\n\n\treturn { internalShares, length };\n}\n\n/**\n * Combine shares into a secret. If fewer than the threshold number of shares are provided,\n * the result will be indistinguishable from random.\n *\n * @param shares The shares to combine.\n * @returns The secret.\n */\nexport function combine(shares: Share[]): Uint8Array {\n\tconst { internalShares, length } = validateShares(shares);\n\n\treturn new Uint8Array(\n\t\tArray.from(\n\t\t\t{ length },\n\t\t\t(_, i) =>\n\t\t\t\tPolynomial.combine(\n\t\t\t\t\tinternalShares.map(({ index, share }) => ({\n\t\t\t\t\t\tx: index,\n\t\t\t\t\t\ty: share[i],\n\t\t\t\t\t})),\n\t\t\t\t).value,\n\t\t),\n\t);\n}\n\n/**\n * Interpolate a polynomial from the given shares.\n *\n * @param shares The shares to interpolate from.\n * @returns A function that evaluates the polynomial at a given x.\n */\nexport function interpolate(shares: Share[]): (x: number) => Uint8Array {\n\tconst { internalShares, length } = validateShares(shares);\n\n\tconst polynomials = Array.from({ length }, (_, i) =>\n\t\tPolynomial.interpolate(internalShares.map(({ index, share }) => ({ x: index, y: share[i] }))),\n\t);\n\n\treturn (x: number) => {\n\t\treturn new Uint8Array(polynomials.map((p) => p.evaluate(new GF256(x)).value));\n\t};\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,mBAAwC;AAExC,MAAM,aAAa;AAKZ,MAAM,MAAM;AAAA,EAGlB,YAAY,OAAe;AAC1B,QAAI,QAAQ,KAAK,SAAS,YAAY;AACrC,YAAM,IAAI,MAAM,iBAAiB,KAAK,YAAY;AAAA,IACnD;AACA,SAAK,QAAQ;AAAA,EACd;AAAA,EAEA,MAAc;AACb,QAAI,KAAK,UAAU,GAAG;AACrB,YAAM,IAAI,MAAM,eAAe;AAAA,IAChC;AACA,WAAO,IAAI,KAAK,QAAQ,CAAC;AAAA,EAC1B;AAAA,EAEA,OAAO,IAAI,GAAkB;AAC5B,WAAO,IAAI,MAAM,IAAI,KAAK,aAAa,EAAE,CAAC;AAAA,EAC3C;AAAA,EAEA,IAAI,OAAqB;AACxB,WAAO,IAAI,MAAM,KAAK,QAAQ,MAAM,KAAK;AAAA,EAC1C;AAAA,EAEA,IAAI,OAAqB;AAExB,WAAO,KAAK,IAAI,KAAK;AAAA,EACtB;AAAA,EAEA,MAAa;AAEZ,WAAO;AAAA,EACR;AAAA,EAEA,IAAI,OAAqB;AACxB,QAAI,KAAK,UAAU,KAAK,MAAM,UAAU,GAAG;AAC1C,aAAO,IAAI,MAAM,CAAC;AAAA,IACnB;AACA,WAAO,MAAM,IAAI,KAAK,IAAI,IAAI,MAAM,IAAI,CAAC;AAAA,EAC1C;AAAA,EAEA,IAAI,OAAqB;AACxB,WAAO,KAAK,IAAI,MAAM,IAAI,aAAa,MAAM,IAAI,IAAI,CAAC,CAAC;AAAA,EACxD;AAAA,EAEA,OAAO,OAAuB;AAC7B,WAAO,KAAK,UAAU,MAAM;AAAA,EAC7B;AAAA,EAEA,OAAO,OAAc;AACpB,WAAO,IAAI,MAAM,CAAC;AAAA,EACnB;AAAA,EAEA,OAAO,MAAa;AACnB,WAAO,IAAI,MAAM,CAAC;AAAA,EACnB;AACD;AAGA,MAAM,MAAgB;AAAA,EACrB;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AACrF;AAGA,MAAM,MAAgB;AAAA,EACrB;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAC1F;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AAAA,EAAM;AA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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/types.d.ts
CHANGED
|
@@ -1,5 +1,72 @@
|
|
|
1
1
|
import type { ClientWithExtensions, Experimental_CoreClient } from '@mysten/sui/experimental';
|
|
2
|
+
import type { DemType, KemType } from './encrypt.js';
|
|
3
|
+
import type { SessionKey } from './session-key.js';
|
|
2
4
|
export type KeyCacheKey = `${string}:${string}`;
|
|
3
5
|
export type SealCompatibleClient = ClientWithExtensions<{
|
|
4
6
|
core: Experimental_CoreClient;
|
|
5
7
|
}>;
|
|
8
|
+
/** Configuration options for initializing a SealClient*/
|
|
9
|
+
export interface SealClientExtensionOptions {
|
|
10
|
+
/** Array of key server configs consisting of objectId, weight, optional API key name and API key */
|
|
11
|
+
serverConfigs: KeyServerConfig[];
|
|
12
|
+
/** Whether to verify the key servers' authenticity. */
|
|
13
|
+
verifyKeyServers?: boolean;
|
|
14
|
+
/** Timeout in milliseconds for network requests. */
|
|
15
|
+
timeout?: number;
|
|
16
|
+
}
|
|
17
|
+
export interface KeyServerConfig {
|
|
18
|
+
objectId: string;
|
|
19
|
+
weight: number;
|
|
20
|
+
apiKeyName?: string;
|
|
21
|
+
apiKey?: string;
|
|
22
|
+
}
|
|
23
|
+
export interface SealClientOptions extends SealClientExtensionOptions {
|
|
24
|
+
suiClient: SealCompatibleClient;
|
|
25
|
+
}
|
|
26
|
+
export interface EncryptOptions {
|
|
27
|
+
/** The type of KEM to use. */
|
|
28
|
+
kemType?: KemType;
|
|
29
|
+
/** The type of DEM to use. */
|
|
30
|
+
demType?: DemType;
|
|
31
|
+
/** The threshold for the TSS encryption. */
|
|
32
|
+
threshold: number;
|
|
33
|
+
/** The packageId namespace. */
|
|
34
|
+
packageId: string;
|
|
35
|
+
/** The identity to use. */
|
|
36
|
+
id: string;
|
|
37
|
+
/** The data to encrypt. */
|
|
38
|
+
data: Uint8Array;
|
|
39
|
+
/** Optional additional authenticated data. */
|
|
40
|
+
aad?: Uint8Array;
|
|
41
|
+
}
|
|
42
|
+
export interface DecryptOptions {
|
|
43
|
+
/** The encrypted bytes to decrypt. */
|
|
44
|
+
data: Uint8Array;
|
|
45
|
+
/** The session key to use. */
|
|
46
|
+
sessionKey: SessionKey;
|
|
47
|
+
/** The transaction bytes to use (that calls seal_approve* functions). */
|
|
48
|
+
txBytes: Uint8Array;
|
|
49
|
+
/** Whether to check share consistency. */
|
|
50
|
+
checkShareConsistency?: boolean;
|
|
51
|
+
}
|
|
52
|
+
export interface FetchKeysOptions {
|
|
53
|
+
/** The ids of the encrypted objects. */
|
|
54
|
+
ids: string[];
|
|
55
|
+
/** The transaction bytes to use (that calls seal_approve* functions). */
|
|
56
|
+
txBytes: Uint8Array;
|
|
57
|
+
/** The session key to use. */
|
|
58
|
+
sessionKey: SessionKey;
|
|
59
|
+
/** The threshold. */
|
|
60
|
+
threshold: number;
|
|
61
|
+
}
|
|
62
|
+
export interface GetDerivedKeysOptions {
|
|
63
|
+
kemType?: KemType;
|
|
64
|
+
/** The id of the encrypted object. */
|
|
65
|
+
id: string;
|
|
66
|
+
/** The transaction bytes to use (that calls seal_approve* functions). */
|
|
67
|
+
txBytes: Uint8Array;
|
|
68
|
+
/** The session key to use. */
|
|
69
|
+
sessionKey: SessionKey;
|
|
70
|
+
/** The threshold. */
|
|
71
|
+
threshold: number;
|
|
72
|
+
}
|
package/dist/cjs/types.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/types.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ClientWithExtensions, Experimental_CoreClient } from '@mysten/sui/experimental';\n\nexport type KeyCacheKey = `${string}:${string}`;\nexport type SealCompatibleClient = ClientWithExtensions<{\n\tcore: Experimental_CoreClient;\n}>;\n"],
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { ClientWithExtensions, Experimental_CoreClient } from '@mysten/sui/experimental';\nimport type { DemType, KemType } from './encrypt.js';\nimport type { SessionKey } from './session-key.js';\n\nexport type KeyCacheKey = `${string}:${string}`;\nexport type SealCompatibleClient = ClientWithExtensions<{\n\tcore: Experimental_CoreClient;\n}>;\n\n/** Configuration options for initializing a SealClient*/\nexport interface SealClientExtensionOptions {\n\t/** Array of key server configs consisting of objectId, weight, optional API key name and API key */\n\tserverConfigs: KeyServerConfig[];\n\t/** Whether to verify the key servers' authenticity. */\n\tverifyKeyServers?: boolean;\n\t/** Timeout in milliseconds for network requests. */\n\ttimeout?: number;\n}\n\nexport interface KeyServerConfig {\n\tobjectId: string;\n\tweight: number;\n\tapiKeyName?: string;\n\tapiKey?: string;\n}\n\nexport interface SealClientOptions extends SealClientExtensionOptions {\n\tsuiClient: SealCompatibleClient;\n}\n\nexport interface EncryptOptions {\n\t/** The type of KEM to use. */\n\tkemType?: KemType;\n\t/** The type of DEM to use. */\n\tdemType?: DemType;\n\t/** The threshold for the TSS encryption. */\n\tthreshold: number;\n\t/** The packageId namespace. */\n\tpackageId: string;\n\t/** The identity to use. */\n\tid: string;\n\t/** The data to encrypt. */\n\tdata: Uint8Array;\n\t/** Optional additional authenticated data. */\n\taad?: Uint8Array;\n}\n\nexport interface DecryptOptions {\n\t/** The encrypted bytes to decrypt. */\n\tdata: Uint8Array;\n\t/** The session key to use. */\n\tsessionKey: SessionKey;\n\t/** The transaction bytes to use (that calls seal_approve* functions). */\n\ttxBytes: Uint8Array;\n\t/** Whether to check share consistency. */\n\tcheckShareConsistency?: boolean;\n}\n\nexport interface FetchKeysOptions {\n\t/** The ids of the encrypted objects. */\n\tids: string[];\n\t/** The transaction bytes to use (that calls seal_approve* functions). */\n\ttxBytes: Uint8Array;\n\t/** The session key to use. */\n\tsessionKey: SessionKey;\n\t/** The threshold. */\n\tthreshold: number;\n}\n\nexport interface GetDerivedKeysOptions {\n\tkemType?: KemType;\n\t/** The id of the encrypted object. */\n\tid: string;\n\t/** The transaction bytes to use (that calls seal_approve* functions). */\n\ttxBytes: Uint8Array;\n\t/** The session key to use. */\n\tsessionKey: SessionKey;\n\t/** The threshold. */\n\tthreshold: number;\n}\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/cjs/utils.d.ts
CHANGED
|
@@ -22,6 +22,13 @@ export declare function count<T>(array: T[], value: T): number;
|
|
|
22
22
|
export declare function hasDuplicates(array: number[]): boolean;
|
|
23
23
|
/** Check if all elements in the array are equal. */
|
|
24
24
|
export declare function allEqual(array: number[]): boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Check if two Uint8Arrays are equal.
|
|
27
|
+
* @param a - The first Uint8Array.
|
|
28
|
+
* @param b - The second Uint8Array.
|
|
29
|
+
* @returns True if the two Uint8Arrays are equal, false otherwise.
|
|
30
|
+
*/
|
|
31
|
+
export declare function equals(a: Uint8Array, b: Uint8Array): boolean;
|
|
25
32
|
/**
|
|
26
33
|
* A simple class to represent a version number of the form x.y.z.
|
|
27
34
|
*/
|
package/dist/cjs/utils.js
CHANGED
|
@@ -23,6 +23,7 @@ __export(utils_exports, {
|
|
|
23
23
|
allEqual: () => allEqual,
|
|
24
24
|
count: () => count,
|
|
25
25
|
createFullId: () => createFullId,
|
|
26
|
+
equals: () => equals,
|
|
26
27
|
flatten: () => flatten,
|
|
27
28
|
hasDuplicates: () => hasDuplicates,
|
|
28
29
|
xor: () => xor,
|
|
@@ -70,6 +71,12 @@ function allEqual(array) {
|
|
|
70
71
|
}
|
|
71
72
|
return array.every((item) => item === array[0]);
|
|
72
73
|
}
|
|
74
|
+
function equals(a, b) {
|
|
75
|
+
if (a.length !== b.length) {
|
|
76
|
+
return false;
|
|
77
|
+
}
|
|
78
|
+
return a.every((ai, i) => ai === b[i]);
|
|
79
|
+
}
|
|
73
80
|
class Version {
|
|
74
81
|
constructor(version) {
|
|
75
82
|
const parts = version.split(".").map(Number);
|
package/dist/cjs/utils.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/utils.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromHex, toHex } from '@mysten/bcs';\nimport { isValidSuiObjectId } from '@mysten/sui/utils';\n\nimport { UserError } from './error.js';\n\n/** Maximum value for a u8 (unsigned 8-bit integer). */\nexport const MAX_U8 = 255;\n\nexport function xor(a: Uint8Array, b: Uint8Array): Uint8Array {\n\tif (a.length !== b.length) {\n\t\tthrow new Error('Invalid input');\n\t}\n\treturn xorUnchecked(a, b);\n}\n\nexport function xorUnchecked(a: Uint8Array, b: Uint8Array): Uint8Array {\n\treturn a.map((ai, i) => ai ^ b[i]);\n}\n\n/**\n * Create a full ID concatenating package ID || inner ID.\n * @param packageId - The package ID.\n * @param innerId - The inner ID.\n * @returns The full ID.\n */\nexport function createFullId(packageId: string, innerId: string): string {\n\tif (!isValidSuiObjectId(packageId)) {\n\t\tthrow new UserError(`Invalid package ID ${packageId}`);\n\t}\n\tconst fullId = flatten([fromHex(packageId), fromHex(innerId)]);\n\treturn toHex(fullId);\n}\n\n/**\n * Flatten an array of Uint8Arrays into a single Uint8Array.\n *\n * @param arrays - An array of Uint8Arrays to flatten.\n * @returns A single Uint8Array containing all the elements of the input arrays in the given order.\n */\nexport function flatten(arrays: Uint8Array[]): Uint8Array {\n\tconst length = arrays.reduce((sum, arr) => sum + arr.length, 0);\n\tconst result = new Uint8Array(length);\n\tarrays.reduce((offset, array) => {\n\t\tresult.set(array, offset);\n\t\treturn offset + array.length;\n\t}, 0);\n\treturn result;\n}\n\n/** Count the number of occurrences of a value in an array. */\nexport function count<T>(array: T[], value: T): number {\n\treturn array.reduce((count, item) => (item === value ? count + 1 : count), 0);\n}\n\n/** Check if the array has any duplicate elements. */\nexport function hasDuplicates(array: number[]): boolean {\n\treturn new Set(array).size !== array.length;\n}\n\n/** Check if all elements in the array are equal. */\nexport function allEqual(array: number[]): boolean {\n\tif (array.length === 0) {\n\t\treturn true;\n\t}\n\treturn array.every((item) => item === array[0]);\n}\n\n/**\n * A simple class to represent a version number of the form x.y.z.\n */\nexport class Version {\n\tmajor: number;\n\tminor: number;\n\tpatch: number;\n\n\tconstructor(version: string) {\n\t\t// Very basic version parsing. Assumes version is in the format x.y.z where x, y, and z are non-negative integers.\n\t\tconst parts = version.split('.').map(Number);\n\t\tif (\n\t\t\tparts.length !== 3 ||\n\t\t\tparts.some((part) => isNaN(part) || !Number.isInteger(part) || part < 0)\n\t\t) {\n\t\t\tthrow new UserError(`Invalid version format: ${version}`);\n\t\t}\n\t\tthis.major = parts[0];\n\t\tthis.minor = parts[1];\n\t\tthis.patch = parts[2];\n\t}\n\n\t// Compare this version with another version. True if this version is older than the other version.\n\tolder_than(other: Version): boolean {\n\t\tif (this.major !== other.major) {\n\t\t\treturn this.major < other.major;\n\t\t} else if (this.minor !== other.minor) {\n\t\t\treturn this.minor < other.minor;\n\t\t}\n\t\treturn this.patch < other.patch;\n\t}\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAA+B;AAC/B,mBAAmC;AAEnC,mBAA0B;AAGnB,MAAM,SAAS;AAEf,SAAS,IAAI,GAAe,GAA2B;AAC7D,MAAI,EAAE,WAAW,EAAE,QAAQ;AAC1B,UAAM,IAAI,MAAM,eAAe;AAAA,EAChC;AACA,SAAO,aAAa,GAAG,CAAC;AACzB;AAEO,SAAS,aAAa,GAAe,GAA2B;AACtE,SAAO,EAAE,IAAI,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC;AAClC;AAQO,SAAS,aAAa,WAAmB,SAAyB;AACxE,MAAI,KAAC,iCAAmB,SAAS,GAAG;AACnC,UAAM,IAAI,uBAAU,sBAAsB,SAAS,EAAE;AAAA,EACtD;AACA,QAAM,SAAS,QAAQ,KAAC,oBAAQ,SAAS,OAAG,oBAAQ,OAAO,CAAC,CAAC;AAC7D,aAAO,kBAAM,MAAM;AACpB;AAQO,SAAS,QAAQ,QAAkC;AACzD,QAAM,SAAS,OAAO,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,QAAQ,CAAC;AAC9D,QAAM,SAAS,IAAI,WAAW,MAAM;AACpC,SAAO,OAAO,CAAC,QAAQ,UAAU;AAChC,WAAO,IAAI,OAAO,MAAM;AACxB,WAAO,SAAS,MAAM;AAAA,EACvB,GAAG,CAAC;AACJ,SAAO;AACR;AAGO,SAAS,MAAS,OAAY,OAAkB;AACtD,SAAO,MAAM,OAAO,CAACA,QAAO,SAAU,SAAS,QAAQA,SAAQ,IAAIA,QAAQ,CAAC;AAC7E;AAGO,SAAS,cAAc,OAA0B;AACvD,SAAO,IAAI,IAAI,KAAK,EAAE,SAAS,MAAM;AACtC;AAGO,SAAS,SAAS,OAA0B;AAClD,MAAI,MAAM,WAAW,GAAG;AACvB,WAAO;AAAA,EACR;AACA,SAAO,MAAM,MAAM,CAAC,SAAS,SAAS,MAAM,CAAC,CAAC;AAC/C;AAKO,MAAM,QAAQ;AAAA,EAKpB,YAAY,SAAiB;AAE5B,UAAM,QAAQ,QAAQ,MAAM,GAAG,EAAE,IAAI,MAAM;AAC3C,QACC,MAAM,WAAW,KACjB,MAAM,KAAK,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,UAAU,IAAI,KAAK,OAAO,CAAC,GACtE;AACD,YAAM,IAAI,uBAAU,2BAA2B,OAAO,EAAE;AAAA,IACzD;AACA,SAAK,QAAQ,MAAM,CAAC;AACpB,SAAK,QAAQ,MAAM,CAAC;AACpB,SAAK,QAAQ,MAAM,CAAC;AAAA,EACrB;AAAA;AAAA,EAGA,WAAW,OAAyB;AACnC,QAAI,KAAK,UAAU,MAAM,OAAO;AAC/B,aAAO,KAAK,QAAQ,MAAM;AAAA,IAC3B,WAAW,KAAK,UAAU,MAAM,OAAO;AACtC,aAAO,KAAK,QAAQ,MAAM;AAAA,IAC3B;AACA,WAAO,KAAK,QAAQ,MAAM;AAAA,EAC3B;AACD;",
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromHex, toHex } from '@mysten/bcs';\nimport { isValidSuiObjectId } from '@mysten/sui/utils';\n\nimport { UserError } from './error.js';\n\n/** Maximum value for a u8 (unsigned 8-bit integer). */\nexport const MAX_U8 = 255;\n\nexport function xor(a: Uint8Array, b: Uint8Array): Uint8Array {\n\tif (a.length !== b.length) {\n\t\tthrow new Error('Invalid input');\n\t}\n\treturn xorUnchecked(a, b);\n}\n\nexport function xorUnchecked(a: Uint8Array, b: Uint8Array): Uint8Array {\n\treturn a.map((ai, i) => ai ^ b[i]);\n}\n\n/**\n * Create a full ID concatenating package ID || inner ID.\n * @param packageId - The package ID.\n * @param innerId - The inner ID.\n * @returns The full ID.\n */\nexport function createFullId(packageId: string, innerId: string): string {\n\tif (!isValidSuiObjectId(packageId)) {\n\t\tthrow new UserError(`Invalid package ID ${packageId}`);\n\t}\n\tconst fullId = flatten([fromHex(packageId), fromHex(innerId)]);\n\treturn toHex(fullId);\n}\n\n/**\n * Flatten an array of Uint8Arrays into a single Uint8Array.\n *\n * @param arrays - An array of Uint8Arrays to flatten.\n * @returns A single Uint8Array containing all the elements of the input arrays in the given order.\n */\nexport function flatten(arrays: Uint8Array[]): Uint8Array {\n\tconst length = arrays.reduce((sum, arr) => sum + arr.length, 0);\n\tconst result = new Uint8Array(length);\n\tarrays.reduce((offset, array) => {\n\t\tresult.set(array, offset);\n\t\treturn offset + array.length;\n\t}, 0);\n\treturn result;\n}\n\n/** Count the number of occurrences of a value in an array. */\nexport function count<T>(array: T[], value: T): number {\n\treturn array.reduce((count, item) => (item === value ? count + 1 : count), 0);\n}\n\n/** Check if the array has any duplicate elements. */\nexport function hasDuplicates(array: number[]): boolean {\n\treturn new Set(array).size !== array.length;\n}\n\n/** Check if all elements in the array are equal. */\nexport function allEqual(array: number[]): boolean {\n\tif (array.length === 0) {\n\t\treturn true;\n\t}\n\treturn array.every((item) => item === array[0]);\n}\n\n/**\n * Check if two Uint8Arrays are equal.\n * @param a - The first Uint8Array.\n * @param b - The second Uint8Array.\n * @returns True if the two Uint8Arrays are equal, false otherwise.\n */\nexport function equals(a: Uint8Array, b: Uint8Array): boolean {\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\treturn a.every((ai, i) => ai === b[i]);\n}\n\n/**\n * A simple class to represent a version number of the form x.y.z.\n */\nexport class Version {\n\tmajor: number;\n\tminor: number;\n\tpatch: number;\n\n\tconstructor(version: string) {\n\t\t// Very basic version parsing. Assumes version is in the format x.y.z where x, y, and z are non-negative integers.\n\t\tconst parts = version.split('.').map(Number);\n\t\tif (\n\t\t\tparts.length !== 3 ||\n\t\t\tparts.some((part) => isNaN(part) || !Number.isInteger(part) || part < 0)\n\t\t) {\n\t\t\tthrow new UserError(`Invalid version format: ${version}`);\n\t\t}\n\t\tthis.major = parts[0];\n\t\tthis.minor = parts[1];\n\t\tthis.patch = parts[2];\n\t}\n\n\t// Compare this version with another version. True if this version is older than the other version.\n\tolder_than(other: Version): boolean {\n\t\tif (this.major !== other.major) {\n\t\t\treturn this.major < other.major;\n\t\t} else if (this.minor !== other.minor) {\n\t\t\treturn this.minor < other.minor;\n\t\t}\n\t\treturn this.patch < other.patch;\n\t}\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,iBAA+B;AAC/B,mBAAmC;AAEnC,mBAA0B;AAGnB,MAAM,SAAS;AAEf,SAAS,IAAI,GAAe,GAA2B;AAC7D,MAAI,EAAE,WAAW,EAAE,QAAQ;AAC1B,UAAM,IAAI,MAAM,eAAe;AAAA,EAChC;AACA,SAAO,aAAa,GAAG,CAAC;AACzB;AAEO,SAAS,aAAa,GAAe,GAA2B;AACtE,SAAO,EAAE,IAAI,CAAC,IAAI,MAAM,KAAK,EAAE,CAAC,CAAC;AAClC;AAQO,SAAS,aAAa,WAAmB,SAAyB;AACxE,MAAI,KAAC,iCAAmB,SAAS,GAAG;AACnC,UAAM,IAAI,uBAAU,sBAAsB,SAAS,EAAE;AAAA,EACtD;AACA,QAAM,SAAS,QAAQ,KAAC,oBAAQ,SAAS,OAAG,oBAAQ,OAAO,CAAC,CAAC;AAC7D,aAAO,kBAAM,MAAM;AACpB;AAQO,SAAS,QAAQ,QAAkC;AACzD,QAAM,SAAS,OAAO,OAAO,CAAC,KAAK,QAAQ,MAAM,IAAI,QAAQ,CAAC;AAC9D,QAAM,SAAS,IAAI,WAAW,MAAM;AACpC,SAAO,OAAO,CAAC,QAAQ,UAAU;AAChC,WAAO,IAAI,OAAO,MAAM;AACxB,WAAO,SAAS,MAAM;AAAA,EACvB,GAAG,CAAC;AACJ,SAAO;AACR;AAGO,SAAS,MAAS,OAAY,OAAkB;AACtD,SAAO,MAAM,OAAO,CAACA,QAAO,SAAU,SAAS,QAAQA,SAAQ,IAAIA,QAAQ,CAAC;AAC7E;AAGO,SAAS,cAAc,OAA0B;AACvD,SAAO,IAAI,IAAI,KAAK,EAAE,SAAS,MAAM;AACtC;AAGO,SAAS,SAAS,OAA0B;AAClD,MAAI,MAAM,WAAW,GAAG;AACvB,WAAO;AAAA,EACR;AACA,SAAO,MAAM,MAAM,CAAC,SAAS,SAAS,MAAM,CAAC,CAAC;AAC/C;AAQO,SAAS,OAAO,GAAe,GAAwB;AAC7D,MAAI,EAAE,WAAW,EAAE,QAAQ;AAC1B,WAAO;AAAA,EACR;AACA,SAAO,EAAE,MAAM,CAAC,IAAI,MAAM,OAAO,EAAE,CAAC,CAAC;AACtC;AAKO,MAAM,QAAQ;AAAA,EAKpB,YAAY,SAAiB;AAE5B,UAAM,QAAQ,QAAQ,MAAM,GAAG,EAAE,IAAI,MAAM;AAC3C,QACC,MAAM,WAAW,KACjB,MAAM,KAAK,CAAC,SAAS,MAAM,IAAI,KAAK,CAAC,OAAO,UAAU,IAAI,KAAK,OAAO,CAAC,GACtE;AACD,YAAM,IAAI,uBAAU,2BAA2B,OAAO,EAAE;AAAA,IACzD;AACA,SAAK,QAAQ,MAAM,CAAC;AACpB,SAAK,QAAQ,MAAM,CAAC;AACpB,SAAK,QAAQ,MAAM,CAAC;AAAA,EACrB;AAAA;AAAA,EAGA,WAAW,OAAyB;AACnC,QAAI,KAAK,UAAU,MAAM,OAAO;AAC/B,aAAO,KAAK,QAAQ,MAAM;AAAA,IAC3B,WAAW,KAAK,UAAU,MAAM,OAAO;AACtC,aAAO,KAAK,QAAQ,MAAM;AAAA,IAC3B;AACA,WAAO,KAAK,QAAQ,MAAM;AAAA,EAC3B;AACD;",
|
|
6
6
|
"names": ["count"]
|
|
7
7
|
}
|
package/dist/cjs/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const PACKAGE_VERSION = "0.4.
|
|
1
|
+
export declare const PACKAGE_VERSION = "0.4.21";
|
package/dist/cjs/version.js
CHANGED
package/dist/cjs/version.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/version.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '0.4.
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\n// This file is generated by genversion.mjs. Do not edit it directly.\n\nexport const PACKAGE_VERSION = '0.4.21';\n"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,MAAM,kBAAkB;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/bcs.d.ts
CHANGED
|
@@ -1,142 +1,89 @@
|
|
|
1
|
-
export declare const IBEEncryptions: import("@mysten/bcs").
|
|
2
|
-
BonehFranklinBLS12381: {
|
|
3
|
-
nonce: Uint8Array<ArrayBufferLike>;
|
|
4
|
-
encryptedShares: Uint8Array<ArrayBufferLike>[]
|
|
5
|
-
encryptedRandomness: Uint8Array<ArrayBufferLike>;
|
|
6
|
-
};
|
|
7
|
-
$kind: "BonehFranklinBLS12381";
|
|
8
|
-
}, {
|
|
9
|
-
BonehFranklinBLS12381: {
|
|
10
|
-
nonce: Iterable<number>;
|
|
11
|
-
encryptedShares: Iterable<Iterable<number>> & {
|
|
1
|
+
export declare const IBEEncryptions: import("@mysten/bcs").BcsEnum<{
|
|
2
|
+
BonehFranklinBLS12381: import("@mysten/bcs").BcsStruct<{
|
|
3
|
+
nonce: import("@mysten/bcs").BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "bytes[96]">;
|
|
4
|
+
encryptedShares: import("@mysten/bcs").BcsType<Uint8Array<ArrayBufferLike>[], Iterable<Iterable<number>> & {
|
|
12
5
|
length: number;
|
|
13
|
-
}
|
|
14
|
-
encryptedRandomness: Iterable<number>;
|
|
15
|
-
}
|
|
16
|
-
}>;
|
|
17
|
-
export declare const Ciphertext: import("@mysten/bcs").
|
|
18
|
-
Aes256Gcm: {
|
|
19
|
-
blob: number[]
|
|
20
|
-
aad: number[] | null;
|
|
21
|
-
};
|
|
22
|
-
Hmac256Ctr: {
|
|
23
|
-
blob: number[];
|
|
24
|
-
aad: number[] | null;
|
|
25
|
-
mac: Uint8Array<ArrayBufferLike>;
|
|
26
|
-
};
|
|
27
|
-
Plain: {};
|
|
28
|
-
}, "Aes256Gcm" | "Hmac256Ctr" | "Plain">, import("@mysten/bcs").EnumInputShape<{
|
|
29
|
-
Aes256Gcm: {
|
|
30
|
-
blob: Iterable<number> & {
|
|
6
|
+
}, string>;
|
|
7
|
+
encryptedRandomness: import("@mysten/bcs").BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "bytes[32]">;
|
|
8
|
+
}, string>;
|
|
9
|
+
}, "IBEEncryptions">;
|
|
10
|
+
export declare const Ciphertext: import("@mysten/bcs").BcsEnum<{
|
|
11
|
+
Aes256Gcm: import("@mysten/bcs").BcsStruct<{
|
|
12
|
+
blob: import("@mysten/bcs").BcsType<number[], Iterable<number> & {
|
|
31
13
|
length: number;
|
|
32
|
-
}
|
|
33
|
-
aad: (Iterable<number> & {
|
|
14
|
+
}, string>;
|
|
15
|
+
aad: import("@mysten/bcs").BcsType<number[] | null, (Iterable<number> & {
|
|
34
16
|
length: number;
|
|
35
|
-
}) | null | undefined
|
|
36
|
-
}
|
|
37
|
-
Hmac256Ctr: {
|
|
38
|
-
blob: Iterable<number> & {
|
|
17
|
+
}) | null | undefined, "Option<vector<u8>>">;
|
|
18
|
+
}, string>;
|
|
19
|
+
Hmac256Ctr: import("@mysten/bcs").BcsStruct<{
|
|
20
|
+
blob: import("@mysten/bcs").BcsType<number[], Iterable<number> & {
|
|
39
21
|
length: number;
|
|
40
|
-
}
|
|
41
|
-
aad: (Iterable<number> & {
|
|
22
|
+
}, string>;
|
|
23
|
+
aad: import("@mysten/bcs").BcsType<number[] | null, (Iterable<number> & {
|
|
42
24
|
length: number;
|
|
43
|
-
}) | null | undefined
|
|
44
|
-
mac: Iterable<number>;
|
|
45
|
-
}
|
|
46
|
-
Plain: {}
|
|
47
|
-
}
|
|
25
|
+
}) | null | undefined, "Option<vector<u8>>">;
|
|
26
|
+
mac: import("@mysten/bcs").BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "bytes[32]">;
|
|
27
|
+
}, string>;
|
|
28
|
+
Plain: import("@mysten/bcs").BcsStruct<{}, string>;
|
|
29
|
+
}, "Ciphertext">;
|
|
48
30
|
/**
|
|
49
31
|
* The encrypted object format. Should be aligned with the Rust implementation.
|
|
50
32
|
*/
|
|
51
|
-
export declare const EncryptedObject: import("@mysten/bcs").
|
|
52
|
-
version: number
|
|
53
|
-
packageId: string
|
|
54
|
-
id: string
|
|
55
|
-
services: [string, number][]
|
|
56
|
-
threshold: number;
|
|
57
|
-
encryptedShares: {
|
|
58
|
-
BonehFranklinBLS12381: {
|
|
59
|
-
nonce: Uint8Array<ArrayBufferLike>;
|
|
60
|
-
encryptedShares: Uint8Array<ArrayBufferLike>[];
|
|
61
|
-
encryptedRandomness: Uint8Array<ArrayBufferLike>;
|
|
62
|
-
};
|
|
63
|
-
$kind: "BonehFranklinBLS12381";
|
|
64
|
-
};
|
|
65
|
-
ciphertext: import("@mysten/bcs").EnumOutputShapeWithKeys<{
|
|
66
|
-
Aes256Gcm: {
|
|
67
|
-
blob: number[];
|
|
68
|
-
aad: number[] | null;
|
|
69
|
-
};
|
|
70
|
-
Hmac256Ctr: {
|
|
71
|
-
blob: number[];
|
|
72
|
-
aad: number[] | null;
|
|
73
|
-
mac: Uint8Array<ArrayBufferLike>;
|
|
74
|
-
};
|
|
75
|
-
Plain: {};
|
|
76
|
-
}, "Aes256Gcm" | "Hmac256Ctr" | "Plain">;
|
|
77
|
-
}, {
|
|
78
|
-
version: number;
|
|
79
|
-
packageId: string | Uint8Array<ArrayBufferLike>;
|
|
80
|
-
id: string;
|
|
81
|
-
services: Iterable<readonly [string | Uint8Array<ArrayBufferLike>, number]> & {
|
|
33
|
+
export declare const EncryptedObject: import("@mysten/bcs").BcsStruct<{
|
|
34
|
+
version: import("@mysten/bcs").BcsType<number, number, "u8">;
|
|
35
|
+
packageId: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
36
|
+
id: import("@mysten/bcs").BcsType<string, string, string>;
|
|
37
|
+
services: import("@mysten/bcs").BcsType<[string, number][], Iterable<readonly [string | Uint8Array<ArrayBufferLike>, number]> & {
|
|
82
38
|
length: number;
|
|
83
|
-
}
|
|
84
|
-
threshold: number
|
|
85
|
-
encryptedShares: {
|
|
86
|
-
BonehFranklinBLS12381: {
|
|
87
|
-
nonce: Iterable<number>;
|
|
88
|
-
encryptedShares: Iterable<Iterable<number>> & {
|
|
39
|
+
}, string>;
|
|
40
|
+
threshold: import("@mysten/bcs").BcsType<number, number, "u8">;
|
|
41
|
+
encryptedShares: import("@mysten/bcs").BcsEnum<{
|
|
42
|
+
BonehFranklinBLS12381: import("@mysten/bcs").BcsStruct<{
|
|
43
|
+
nonce: import("@mysten/bcs").BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "bytes[96]">;
|
|
44
|
+
encryptedShares: import("@mysten/bcs").BcsType<Uint8Array<ArrayBufferLike>[], Iterable<Iterable<number>> & {
|
|
89
45
|
length: number;
|
|
90
|
-
}
|
|
91
|
-
encryptedRandomness: Iterable<number>;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
ciphertext: import("@mysten/bcs").
|
|
95
|
-
Aes256Gcm: {
|
|
96
|
-
blob: Iterable<number> & {
|
|
46
|
+
}, string>;
|
|
47
|
+
encryptedRandomness: import("@mysten/bcs").BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "bytes[32]">;
|
|
48
|
+
}, string>;
|
|
49
|
+
}, "IBEEncryptions">;
|
|
50
|
+
ciphertext: import("@mysten/bcs").BcsEnum<{
|
|
51
|
+
Aes256Gcm: import("@mysten/bcs").BcsStruct<{
|
|
52
|
+
blob: import("@mysten/bcs").BcsType<number[], Iterable<number> & {
|
|
97
53
|
length: number;
|
|
98
|
-
}
|
|
99
|
-
aad: (Iterable<number> & {
|
|
54
|
+
}, string>;
|
|
55
|
+
aad: import("@mysten/bcs").BcsType<number[] | null, (Iterable<number> & {
|
|
100
56
|
length: number;
|
|
101
|
-
}) | null | undefined
|
|
102
|
-
}
|
|
103
|
-
Hmac256Ctr: {
|
|
104
|
-
blob: Iterable<number> & {
|
|
57
|
+
}) | null | undefined, "Option<vector<u8>>">;
|
|
58
|
+
}, string>;
|
|
59
|
+
Hmac256Ctr: import("@mysten/bcs").BcsStruct<{
|
|
60
|
+
blob: import("@mysten/bcs").BcsType<number[], Iterable<number> & {
|
|
105
61
|
length: number;
|
|
106
|
-
}
|
|
107
|
-
aad: (Iterable<number> & {
|
|
62
|
+
}, string>;
|
|
63
|
+
aad: import("@mysten/bcs").BcsType<number[] | null, (Iterable<number> & {
|
|
108
64
|
length: number;
|
|
109
|
-
}) | null | undefined
|
|
110
|
-
mac: Iterable<number>;
|
|
111
|
-
}
|
|
112
|
-
Plain: {}
|
|
113
|
-
}>;
|
|
114
|
-
}>;
|
|
65
|
+
}) | null | undefined, "Option<vector<u8>>">;
|
|
66
|
+
mac: import("@mysten/bcs").BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "bytes[32]">;
|
|
67
|
+
}, string>;
|
|
68
|
+
Plain: import("@mysten/bcs").BcsStruct<{}, string>;
|
|
69
|
+
}, "Ciphertext">;
|
|
70
|
+
}, string>;
|
|
115
71
|
/**
|
|
116
72
|
* The Move struct for the KeyServerV1 object.
|
|
117
73
|
*/
|
|
118
|
-
export declare const KeyServerMoveV1: import("@mysten/bcs").
|
|
119
|
-
name: string
|
|
120
|
-
url: string
|
|
121
|
-
keyType: number
|
|
122
|
-
pk: number[]
|
|
123
|
-
}, {
|
|
124
|
-
name: string;
|
|
125
|
-
url: string;
|
|
126
|
-
keyType: number;
|
|
127
|
-
pk: Iterable<number> & {
|
|
74
|
+
export declare const KeyServerMoveV1: import("@mysten/bcs").BcsStruct<{
|
|
75
|
+
name: import("@mysten/bcs").BcsType<string, string, "string">;
|
|
76
|
+
url: import("@mysten/bcs").BcsType<string, string, "string">;
|
|
77
|
+
keyType: import("@mysten/bcs").BcsType<number, number, "u8">;
|
|
78
|
+
pk: import("@mysten/bcs").BcsType<number[], Iterable<number> & {
|
|
128
79
|
length: number;
|
|
129
|
-
}
|
|
130
|
-
}>;
|
|
80
|
+
}, string>;
|
|
81
|
+
}, string>;
|
|
131
82
|
/**
|
|
132
83
|
* The Move struct for the parent object.
|
|
133
84
|
*/
|
|
134
|
-
export declare const KeyServerMove: import("@mysten/bcs").
|
|
135
|
-
id: string
|
|
136
|
-
firstVersion: string
|
|
137
|
-
lastVersion: string
|
|
138
|
-
},
|
|
139
|
-
id: string | Uint8Array<ArrayBufferLike>;
|
|
140
|
-
firstVersion: string | number | bigint;
|
|
141
|
-
lastVersion: string | number | bigint;
|
|
142
|
-
}>;
|
|
85
|
+
export declare const KeyServerMove: import("@mysten/bcs").BcsStruct<{
|
|
86
|
+
id: import("@mysten/bcs").BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
|
|
87
|
+
firstVersion: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
88
|
+
lastVersion: import("@mysten/bcs").BcsType<string, string | number | bigint, "u64">;
|
|
89
|
+
}, string>;
|
package/dist/esm/bcs.js
CHANGED
|
@@ -9,25 +9,25 @@ const IBEEncryptions = bcs.enum("IBEEncryptions", {
|
|
|
9
9
|
});
|
|
10
10
|
const Ciphertext = bcs.enum("Ciphertext", {
|
|
11
11
|
Aes256Gcm: bcs.struct("Aes256Gcm", {
|
|
12
|
-
blob: bcs.vector(bcs.
|
|
13
|
-
aad: bcs.option(bcs.vector(bcs.
|
|
12
|
+
blob: bcs.vector(bcs.u8()),
|
|
13
|
+
aad: bcs.option(bcs.vector(bcs.u8()))
|
|
14
14
|
}),
|
|
15
15
|
Hmac256Ctr: bcs.struct("Hmac256Ctr", {
|
|
16
|
-
blob: bcs.vector(bcs.
|
|
17
|
-
aad: bcs.option(bcs.vector(bcs.
|
|
16
|
+
blob: bcs.vector(bcs.u8()),
|
|
17
|
+
aad: bcs.option(bcs.vector(bcs.u8())),
|
|
18
18
|
mac: bcs.bytes(32)
|
|
19
19
|
}),
|
|
20
20
|
Plain: bcs.struct("Plain", {})
|
|
21
21
|
});
|
|
22
22
|
const EncryptedObject = bcs.struct("EncryptedObject", {
|
|
23
|
-
version: bcs.
|
|
23
|
+
version: bcs.u8(),
|
|
24
24
|
packageId: bcs.Address,
|
|
25
25
|
id: bcs.vector(bcs.U8).transform({
|
|
26
26
|
output: (val) => toHex(new Uint8Array(val)),
|
|
27
27
|
input: (val) => fromHex(val)
|
|
28
28
|
}),
|
|
29
|
-
services: bcs.vector(bcs.tuple([bcs.Address, bcs.
|
|
30
|
-
threshold: bcs.
|
|
29
|
+
services: bcs.vector(bcs.tuple([bcs.Address, bcs.u8()])),
|
|
30
|
+
threshold: bcs.u8(),
|
|
31
31
|
encryptedShares: IBEEncryptions,
|
|
32
32
|
ciphertext: Ciphertext
|
|
33
33
|
});
|
package/dist/esm/bcs.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../src/bcs.ts"],
|
|
4
|
-
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromHex, toHex } from '@mysten/bcs';\nimport { bcs } from '@mysten/sui/bcs';\n\nexport const IBEEncryptions = bcs.enum('IBEEncryptions', {\n\tBonehFranklinBLS12381: bcs.struct('BonehFranklinBLS12381', {\n\t\tnonce: bcs.bytes(96),\n\t\tencryptedShares: bcs.vector(bcs.bytes(32)),\n\t\tencryptedRandomness: bcs.bytes(32),\n\t}),\n});\n\nexport const Ciphertext = bcs.enum('Ciphertext', {\n\tAes256Gcm: bcs.struct('Aes256Gcm', {\n\t\tblob: bcs.vector(bcs.
|
|
5
|
-
"mappings": "AAGA,SAAS,SAAS,aAAa;AAC/B,SAAS,WAAW;AAEb,MAAM,iBAAiB,IAAI,KAAK,kBAAkB;AAAA,EACxD,uBAAuB,IAAI,OAAO,yBAAyB;AAAA,IAC1D,OAAO,IAAI,MAAM,EAAE;AAAA,IACnB,iBAAiB,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;AAAA,IACzC,qBAAqB,IAAI,MAAM,EAAE;AAAA,EAClC,CAAC;AACF,CAAC;AAEM,MAAM,aAAa,IAAI,KAAK,cAAc;AAAA,EAChD,WAAW,IAAI,OAAO,aAAa;AAAA,IAClC,MAAM,IAAI,OAAO,IAAI,
|
|
4
|
+
"sourcesContent": ["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromHex, toHex } from '@mysten/bcs';\nimport { bcs } from '@mysten/sui/bcs';\n\nexport const IBEEncryptions = bcs.enum('IBEEncryptions', {\n\tBonehFranklinBLS12381: bcs.struct('BonehFranklinBLS12381', {\n\t\tnonce: bcs.bytes(96),\n\t\tencryptedShares: bcs.vector(bcs.bytes(32)),\n\t\tencryptedRandomness: bcs.bytes(32),\n\t}),\n});\n\nexport const Ciphertext = bcs.enum('Ciphertext', {\n\tAes256Gcm: bcs.struct('Aes256Gcm', {\n\t\tblob: bcs.vector(bcs.u8()),\n\t\taad: bcs.option(bcs.vector(bcs.u8())),\n\t}),\n\tHmac256Ctr: bcs.struct('Hmac256Ctr', {\n\t\tblob: bcs.vector(bcs.u8()),\n\t\taad: bcs.option(bcs.vector(bcs.u8())),\n\t\tmac: bcs.bytes(32),\n\t}),\n\tPlain: bcs.struct('Plain', {}),\n});\n\n/**\n * The encrypted object format. Should be aligned with the Rust implementation.\n */\nexport const EncryptedObject = bcs.struct('EncryptedObject', {\n\tversion: bcs.u8(),\n\tpackageId: bcs.Address,\n\tid: bcs.vector(bcs.U8).transform({\n\t\toutput: (val) => toHex(new Uint8Array(val)),\n\t\tinput: (val: string) => fromHex(val),\n\t}),\n\tservices: bcs.vector(bcs.tuple([bcs.Address, bcs.u8()])),\n\tthreshold: bcs.u8(),\n\tencryptedShares: IBEEncryptions,\n\tciphertext: Ciphertext,\n});\n\n/**\n * The Move struct for the KeyServerV1 object.\n */\nexport const KeyServerMoveV1 = bcs.struct('KeyServerV1', {\n\tname: bcs.string(),\n\turl: bcs.string(),\n\tkeyType: bcs.u8(),\n\tpk: bcs.vector(bcs.u8()),\n});\n\n/**\n * The Move struct for the parent object.\n */\nexport const KeyServerMove = bcs.struct('KeyServer', {\n\tid: bcs.Address,\n\tfirstVersion: bcs.u64(), // latest version\n\tlastVersion: bcs.u64(), // oldest version\n});\n"],
|
|
5
|
+
"mappings": "AAGA,SAAS,SAAS,aAAa;AAC/B,SAAS,WAAW;AAEb,MAAM,iBAAiB,IAAI,KAAK,kBAAkB;AAAA,EACxD,uBAAuB,IAAI,OAAO,yBAAyB;AAAA,IAC1D,OAAO,IAAI,MAAM,EAAE;AAAA,IACnB,iBAAiB,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;AAAA,IACzC,qBAAqB,IAAI,MAAM,EAAE;AAAA,EAClC,CAAC;AACF,CAAC;AAEM,MAAM,aAAa,IAAI,KAAK,cAAc;AAAA,EAChD,WAAW,IAAI,OAAO,aAAa;AAAA,IAClC,MAAM,IAAI,OAAO,IAAI,GAAG,CAAC;AAAA,IACzB,KAAK,IAAI,OAAO,IAAI,OAAO,IAAI,GAAG,CAAC,CAAC;AAAA,EACrC,CAAC;AAAA,EACD,YAAY,IAAI,OAAO,cAAc;AAAA,IACpC,MAAM,IAAI,OAAO,IAAI,GAAG,CAAC;AAAA,IACzB,KAAK,IAAI,OAAO,IAAI,OAAO,IAAI,GAAG,CAAC,CAAC;AAAA,IACpC,KAAK,IAAI,MAAM,EAAE;AAAA,EAClB,CAAC;AAAA,EACD,OAAO,IAAI,OAAO,SAAS,CAAC,CAAC;AAC9B,CAAC;AAKM,MAAM,kBAAkB,IAAI,OAAO,mBAAmB;AAAA,EAC5D,SAAS,IAAI,GAAG;AAAA,EAChB,WAAW,IAAI;AAAA,EACf,IAAI,IAAI,OAAO,IAAI,EAAE,EAAE,UAAU;AAAA,IAChC,QAAQ,CAAC,QAAQ,MAAM,IAAI,WAAW,GAAG,CAAC;AAAA,IAC1C,OAAO,CAAC,QAAgB,QAAQ,GAAG;AAAA,EACpC,CAAC;AAAA,EACD,UAAU,IAAI,OAAO,IAAI,MAAM,CAAC,IAAI,SAAS,IAAI,GAAG,CAAC,CAAC,CAAC;AAAA,EACvD,WAAW,IAAI,GAAG;AAAA,EAClB,iBAAiB;AAAA,EACjB,YAAY;AACb,CAAC;AAKM,MAAM,kBAAkB,IAAI,OAAO,eAAe;AAAA,EACxD,MAAM,IAAI,OAAO;AAAA,EACjB,KAAK,IAAI,OAAO;AAAA,EAChB,SAAS,IAAI,GAAG;AAAA,EAChB,IAAI,IAAI,OAAO,IAAI,GAAG,CAAC;AACxB,CAAC;AAKM,MAAM,gBAAgB,IAAI,OAAO,aAAa;AAAA,EACpD,IAAI,IAAI;AAAA,EACR,cAAc,IAAI,IAAI;AAAA;AAAA,EACtB,aAAa,IAAI,IAAI;AAAA;AACtB,CAAC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
package/dist/esm/bls12381.js
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { toHex } from "@mysten/bcs";
|
|
2
2
|
import { bls12_381 } from "@noble/curves/bls12-381";
|
|
3
|
-
import { flatten } from "./utils.js";
|
|
4
3
|
const _G1Element = class _G1Element {
|
|
5
4
|
constructor(point) {
|
|
6
5
|
this.point = point;
|
|
@@ -72,7 +71,14 @@ const _GTElement = class _GTElement {
|
|
|
72
71
|
const P = [0, 3, 1, 4, 2, 5];
|
|
73
72
|
const PAIR_SIZE = _GTElement.SIZE / P.length;
|
|
74
73
|
const bytes = bls12_381.fields.Fp12.toBytes(this.element);
|
|
75
|
-
|
|
74
|
+
const result = new Uint8Array(_GTElement.SIZE);
|
|
75
|
+
for (let i = 0; i < P.length; i++) {
|
|
76
|
+
const sourceStart = P[i] * PAIR_SIZE;
|
|
77
|
+
const sourceEnd = sourceStart + PAIR_SIZE;
|
|
78
|
+
const targetStart = i * PAIR_SIZE;
|
|
79
|
+
result.set(bytes.subarray(sourceStart, sourceEnd), targetStart);
|
|
80
|
+
}
|
|
81
|
+
return result;
|
|
76
82
|
}
|
|
77
83
|
equals(other) {
|
|
78
84
|
return bls12_381.fields.Fp12.eql(this.element, other.element);
|