@haneullabs/haneul 2.5.1 → 2.5.2

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.
Files changed (33) hide show
  1. package/dist/cryptography/publickey.d.mts +1 -1
  2. package/dist/cryptography/publickey.d.mts.map +1 -1
  3. package/dist/cryptography/publickey.mjs +3 -3
  4. package/dist/cryptography/publickey.mjs.map +1 -1
  5. package/dist/grpc/proto/haneul/rpc/v2/signature_verification_service.client.d.mts +4 -4
  6. package/dist/grpc/proto/haneul/rpc/v2/state_service.client.d.mts +4 -4
  7. package/dist/grpc/proto/haneul/rpc/v2/transaction.d.mts.map +1 -1
  8. package/dist/multisig/publickey.mjs +1 -1
  9. package/dist/multisig/publickey.mjs.map +1 -1
  10. package/dist/transactions/Transaction.d.mts +6 -6
  11. package/dist/transactions/data/internal.d.mts +109 -109
  12. package/dist/transactions/data/internal.d.mts.map +1 -1
  13. package/dist/transactions/data/v1.d.mts +220 -220
  14. package/dist/transactions/data/v1.d.mts.map +1 -1
  15. package/dist/transactions/data/v2.d.mts +16 -16
  16. package/dist/transactions/data/v2.d.mts.map +1 -1
  17. package/dist/verify/index.d.mts +2 -2
  18. package/dist/verify/index.mjs +2 -2
  19. package/dist/verify/verify.d.mts +2 -2
  20. package/dist/verify/verify.d.mts.map +1 -1
  21. package/dist/verify/verify.mjs +2 -2
  22. package/dist/verify/verify.mjs.map +1 -1
  23. package/dist/version.mjs +1 -1
  24. package/dist/version.mjs.map +1 -1
  25. package/dist/zklogin/nonce.mjs +1 -1
  26. package/dist/zklogin/nonce.mjs.map +1 -1
  27. package/package.json +1 -1
  28. package/src/cryptography/publickey.ts +3 -3
  29. package/src/multisig/publickey.ts +1 -1
  30. package/src/verify/index.ts +1 -1
  31. package/src/verify/verify.ts +1 -1
  32. package/src/version.ts +1 -1
  33. package/src/zklogin/nonce.ts +1 -1
@@ -42,7 +42,7 @@ declare abstract class PublicKey {
42
42
  * Returns the bytes representation of the public key
43
43
  * prefixed with the signature scheme flag
44
44
  */
45
- toSuiBytes(): Uint8Array<ArrayBuffer>;
45
+ toHaneulBytes(): Uint8Array<ArrayBuffer>;
46
46
  /**
47
47
  * Return the Haneul address associated with this Ed25519 public key
48
48
  */
@@ -1 +1 @@
1
- {"version":3,"file":"publickey.d.mts","names":[],"sources":["../../src/cryptography/publickey.ts"],"sourcesContent":[],"mappings":";;;;;;AAgBA;AAoBsB,KApBV,iBAAA,GAoBmB,MAAA,GApBU,UAoBV,GApBuB,QAoBvB,CAAA,MAAA,CAAA;;;;AAmC3B,uBAnCkB,SAAA,CAmClB;EAU4B;;;EAWA,MAAA,CAAA,SAAA,EApDb,SAoDa,CAAA,EAAA,OAAA;EAAuB;;;EAexC,QAAA,CAAA,CAAA,EAAA,MAAA;EAsBoB,QAAA,CAAA,CAAA,EAAA,KAAA;EAAX;;;;;;0BA7Df,uBACI,6BACH,cACN;;;;iCAU4B,uBAAuB,sBAAsB;;;;iCAW7C,uBAAuB,sBAAsB;;;;;;;;;gBAe9D,WAAW;;;;;;;;yBAsBF,WAAW;;;;;;;;wBAUZ,uBAAuB,sBAAsB"}
1
+ {"version":3,"file":"publickey.d.mts","names":[],"sources":["../../src/cryptography/publickey.ts"],"sourcesContent":[],"mappings":";;;;;;AAgBA;AAoBsB,KApBV,iBAAA,GAoBmB,MAAA,GApBU,UAoBV,GApBuB,QAoBvB,CAAA,MAAA,CAAA;;;;AAmC3B,uBAnCkB,SAAA,CAmClB;EAU4B;;;EAWA,MAAA,CAAA,SAAA,EApDb,SAoDa,CAAA,EAAA,OAAA;EAAuB;;;EAerC,QAAA,CAAA,CAAA,EAAA,MAAA;EAsBiB,QAAA,CAAA,CAAA,EAAA,KAAA;EAAX;;;;;;0BA7Df,uBACI,6BACH,cACN;;;;iCAU4B,uBAAuB,sBAAsB;;;;iCAW7C,uBAAuB,sBAAsB;;;;;;;;;mBAe3D,WAAW;;;;;;;;yBAsBL,WAAW;;;;;;;;wBAUZ,uBAAuB,sBAAsB"}
@@ -38,7 +38,7 @@ var PublicKey = class {
38
38
  * of the scheme flag with the raw bytes of the public key
39
39
  */
40
40
  toSuiPublicKey() {
41
- return toBase64(this.toSuiBytes());
41
+ return toBase64(this.toHaneulBytes());
42
42
  }
43
43
  verifyWithIntent(bytes, signature, intent) {
44
44
  const digest = blake2b(messageWithIntent(intent, bytes), { dkLen: 32 });
@@ -66,7 +66,7 @@ var PublicKey = class {
66
66
  * Returns the bytes representation of the public key
67
67
  * prefixed with the signature scheme flag
68
68
  */
69
- toSuiBytes() {
69
+ toHaneulBytes() {
70
70
  const rawBytes = this.toRawBytes();
71
71
  const suiBytes = new Uint8Array(rawBytes.length + 1);
72
72
  suiBytes.set([this.flag()]);
@@ -77,7 +77,7 @@ var PublicKey = class {
77
77
  * Return the Haneul address associated with this Ed25519 public key
78
78
  */
79
79
  toHaneulAddress() {
80
- return normalizeHaneulAddress(bytesToHex(blake2b(this.toSuiBytes(), { dkLen: 32 })).slice(0, HANEUL_ADDRESS_LENGTH * 2));
80
+ return normalizeHaneulAddress(bytesToHex(blake2b(this.toHaneulBytes(), { dkLen: 32 })).slice(0, HANEUL_ADDRESS_LENGTH * 2));
81
81
  }
82
82
  };
83
83
  function parseSerializedKeypairSignature(serializedSignature) {
@@ -1 +1 @@
1
- {"version":3,"file":"publickey.mjs","names":["bcs"],"sources":["../../src/cryptography/publickey.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@haneullabs/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\nimport { bytesToHex } from '@noble/hashes/utils.js';\n\nimport { bcs } from '../bcs/index.js';\nimport { normalizeHaneulAddress, HANEUL_ADDRESS_LENGTH } from '../utils/haneul-types.js';\nimport type { IntentScope } from './intent.js';\nimport { messageWithIntent } from './intent.js';\nimport { SIGNATURE_FLAG_TO_SCHEME, SIGNATURE_SCHEME_TO_SIZE } from './signature-scheme.js';\n\n/**\n * Value to be converted into public key.\n */\nexport type PublicKeyInitData = string | Uint8Array | Iterable<number>;\n\nexport function bytesEqual(a: Uint8Array, b: Uint8Array) {\n\tif (a === b) return true;\n\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * A public key\n */\nexport abstract class PublicKey {\n\t/**\n\t * Checks if two public keys are equal\n\t */\n\tequals(publicKey: PublicKey) {\n\t\treturn bytesEqual(this.toRawBytes(), publicKey.toRawBytes());\n\t}\n\n\t/**\n\t * Return the base-64 representation of the public key\n\t */\n\ttoBase64() {\n\t\treturn toBase64(this.toRawBytes());\n\t}\n\n\ttoString(): never {\n\t\tthrow new Error(\n\t\t\t'`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.',\n\t\t);\n\t}\n\n\t/**\n\t * Return the Haneul representation of the public key encoded in\n\t * base-64. A Haneul public key is formed by the concatenation\n\t * of the scheme flag with the raw bytes of the public key\n\t */\n\ttoSuiPublicKey(): string {\n\t\tconst bytes = this.toSuiBytes();\n\t\treturn toBase64(bytes);\n\t}\n\n\tverifyWithIntent(\n\t\tbytes: Uint8Array,\n\t\tsignature: Uint8Array | string,\n\t\tintent: IntentScope,\n\t): Promise<boolean> {\n\t\tconst intentMessage = messageWithIntent(intent, bytes);\n\t\tconst digest = blake2b(intentMessage, { dkLen: 32 });\n\n\t\treturn this.verify(digest, signature);\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided PersonalMessage\n\t */\n\tverifyPersonalMessage(message: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\treturn this.verifyWithIntent(\n\t\t\tbcs.byteVector().serialize(message).toBytes(),\n\t\t\tsignature,\n\t\t\t'PersonalMessage',\n\t\t);\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided Transaction\n\t */\n\tverifyTransaction(transaction: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\treturn this.verifyWithIntent(transaction, signature, 'TransactionData');\n\t}\n\n\t/**\n\t * Verifies that the public key is associated with the provided address\n\t */\n\tverifyAddress(address: string): boolean {\n\t\treturn this.toHaneulAddress() === address;\n\t}\n\n\t/**\n\t * Returns the bytes representation of the public key\n\t * prefixed with the signature scheme flag\n\t */\n\ttoSuiBytes(): Uint8Array<ArrayBuffer> {\n\t\tconst rawBytes = this.toRawBytes();\n\t\tconst suiBytes = new Uint8Array(rawBytes.length + 1);\n\t\tsuiBytes.set([this.flag()]);\n\t\tsuiBytes.set(rawBytes, 1);\n\n\t\treturn suiBytes;\n\t}\n\n\t/**\n\t * Return the Haneul address associated with this Ed25519 public key\n\t */\n\ttoHaneulAddress(): string {\n\t\t// Each hex char represents half a byte, hence hex address doubles the length\n\t\treturn normalizeHaneulAddress(\n\t\t\tbytesToHex(blake2b(this.toSuiBytes(), { dkLen: 32 })).slice(0, HANEUL_ADDRESS_LENGTH * 2),\n\t\t);\n\t}\n\n\t/**\n\t * Return the byte array representation of the public key\n\t */\n\tabstract toRawBytes(): Uint8Array<ArrayBuffer>;\n\n\t/**\n\t * Return signature scheme flag of the public key\n\t */\n\tabstract flag(): number;\n\n\t/**\n\t * Verifies that the signature is valid for for the provided message\n\t */\n\tabstract verify(data: Uint8Array, signature: Uint8Array | string): Promise<boolean>;\n}\n\nexport function parseSerializedKeypairSignature(serializedSignature: string) {\n\tconst bytes = fromBase64(serializedSignature);\n\n\tconst signatureScheme =\n\t\tSIGNATURE_FLAG_TO_SCHEME[bytes[0] as keyof typeof SIGNATURE_FLAG_TO_SCHEME];\n\n\tswitch (signatureScheme) {\n\t\tcase 'ED25519':\n\t\tcase 'Secp256k1':\n\t\tcase 'Secp256r1':\n\t\t\tconst size =\n\t\t\t\tSIGNATURE_SCHEME_TO_SIZE[signatureScheme as keyof typeof SIGNATURE_SCHEME_TO_SIZE];\n\t\t\tconst signature = bytes.slice(1, bytes.length - size);\n\t\t\tconst publicKey = bytes.slice(1 + signature.length);\n\n\t\t\treturn {\n\t\t\t\tserializedSignature,\n\t\t\t\tsignatureScheme,\n\t\t\t\tsignature,\n\t\t\t\tpublicKey,\n\t\t\t\tbytes,\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new Error('Unsupported signature scheme');\n\t}\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAgB,WAAW,GAAe,GAAe;AACxD,KAAI,MAAM,EAAG,QAAO;AAEpB,KAAI,EAAE,WAAW,EAAE,OAClB,QAAO;AAGR,MAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,IAC7B,KAAI,EAAE,OAAO,EAAE,GACd,QAAO;AAGT,QAAO;;;;;AAMR,IAAsB,YAAtB,MAAgC;;;;CAI/B,OAAO,WAAsB;AAC5B,SAAO,WAAW,KAAK,YAAY,EAAE,UAAU,YAAY,CAAC;;;;;CAM7D,WAAW;AACV,SAAO,SAAS,KAAK,YAAY,CAAC;;CAGnC,WAAkB;AACjB,QAAM,IAAI,MACT,4FACA;;;;;;;CAQF,iBAAyB;AAExB,SAAO,SADO,KAAK,YAAY,CACT;;CAGvB,iBACC,OACA,WACA,QACmB;EAEnB,MAAM,SAAS,QADO,kBAAkB,QAAQ,MAAM,EAChB,EAAE,OAAO,IAAI,CAAC;AAEpD,SAAO,KAAK,OAAO,QAAQ,UAAU;;;;;CAMtC,sBAAsB,SAAqB,WAAkD;AAC5F,SAAO,KAAK,iBACXA,OAAI,YAAY,CAAC,UAAU,QAAQ,CAAC,SAAS,EAC7C,WACA,kBACA;;;;;CAMF,kBAAkB,aAAyB,WAAkD;AAC5F,SAAO,KAAK,iBAAiB,aAAa,WAAW,kBAAkB;;;;;CAMxE,cAAc,SAA0B;AACvC,SAAO,KAAK,iBAAiB,KAAK;;;;;;CAOnC,aAAsC;EACrC,MAAM,WAAW,KAAK,YAAY;EAClC,MAAM,WAAW,IAAI,WAAW,SAAS,SAAS,EAAE;AACpD,WAAS,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;AAC3B,WAAS,IAAI,UAAU,EAAE;AAEzB,SAAO;;;;;CAMR,kBAA0B;AAEzB,SAAO,uBACN,WAAW,QAAQ,KAAK,YAAY,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,wBAAwB,EAAE,CACzF;;;AAmBH,SAAgB,gCAAgC,qBAA6B;CAC5E,MAAM,QAAQ,WAAW,oBAAoB;CAE7C,MAAM,kBACL,yBAAyB,MAAM;AAEhC,SAAQ,iBAAR;EACC,KAAK;EACL,KAAK;EACL,KAAK;GACJ,MAAM,OACL,yBAAyB;GAC1B,MAAM,YAAY,MAAM,MAAM,GAAG,MAAM,SAAS,KAAK;AAGrD,UAAO;IACN;IACA;IACA;IACA,WANiB,MAAM,MAAM,IAAI,UAAU,OAAO;IAOlD;IACA;EACF,QACC,OAAM,IAAI,MAAM,+BAA+B"}
1
+ {"version":3,"file":"publickey.mjs","names":["bcs"],"sources":["../../src/cryptography/publickey.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@haneullabs/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\nimport { bytesToHex } from '@noble/hashes/utils.js';\n\nimport { bcs } from '../bcs/index.js';\nimport { normalizeHaneulAddress, HANEUL_ADDRESS_LENGTH } from '../utils/haneul-types.js';\nimport type { IntentScope } from './intent.js';\nimport { messageWithIntent } from './intent.js';\nimport { SIGNATURE_FLAG_TO_SCHEME, SIGNATURE_SCHEME_TO_SIZE } from './signature-scheme.js';\n\n/**\n * Value to be converted into public key.\n */\nexport type PublicKeyInitData = string | Uint8Array | Iterable<number>;\n\nexport function bytesEqual(a: Uint8Array, b: Uint8Array) {\n\tif (a === b) return true;\n\n\tif (a.length !== b.length) {\n\t\treturn false;\n\t}\n\n\tfor (let i = 0; i < a.length; i++) {\n\t\tif (a[i] !== b[i]) {\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn true;\n}\n\n/**\n * A public key\n */\nexport abstract class PublicKey {\n\t/**\n\t * Checks if two public keys are equal\n\t */\n\tequals(publicKey: PublicKey) {\n\t\treturn bytesEqual(this.toRawBytes(), publicKey.toRawBytes());\n\t}\n\n\t/**\n\t * Return the base-64 representation of the public key\n\t */\n\ttoBase64() {\n\t\treturn toBase64(this.toRawBytes());\n\t}\n\n\ttoString(): never {\n\t\tthrow new Error(\n\t\t\t'`toString` is not implemented on public keys. Use `toBase64()` or `toRawBytes()` instead.',\n\t\t);\n\t}\n\n\t/**\n\t * Return the Haneul representation of the public key encoded in\n\t * base-64. A Haneul public key is formed by the concatenation\n\t * of the scheme flag with the raw bytes of the public key\n\t */\n\ttoSuiPublicKey(): string {\n\t\tconst bytes = this.toHaneulBytes();\n\t\treturn toBase64(bytes);\n\t}\n\n\tverifyWithIntent(\n\t\tbytes: Uint8Array,\n\t\tsignature: Uint8Array | string,\n\t\tintent: IntentScope,\n\t): Promise<boolean> {\n\t\tconst intentMessage = messageWithIntent(intent, bytes);\n\t\tconst digest = blake2b(intentMessage, { dkLen: 32 });\n\n\t\treturn this.verify(digest, signature);\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided PersonalMessage\n\t */\n\tverifyPersonalMessage(message: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\treturn this.verifyWithIntent(\n\t\t\tbcs.byteVector().serialize(message).toBytes(),\n\t\t\tsignature,\n\t\t\t'PersonalMessage',\n\t\t);\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided Transaction\n\t */\n\tverifyTransaction(transaction: Uint8Array, signature: Uint8Array | string): Promise<boolean> {\n\t\treturn this.verifyWithIntent(transaction, signature, 'TransactionData');\n\t}\n\n\t/**\n\t * Verifies that the public key is associated with the provided address\n\t */\n\tverifyAddress(address: string): boolean {\n\t\treturn this.toHaneulAddress() === address;\n\t}\n\n\t/**\n\t * Returns the bytes representation of the public key\n\t * prefixed with the signature scheme flag\n\t */\n\ttoHaneulBytes(): Uint8Array<ArrayBuffer> {\n\t\tconst rawBytes = this.toRawBytes();\n\t\tconst suiBytes = new Uint8Array(rawBytes.length + 1);\n\t\tsuiBytes.set([this.flag()]);\n\t\tsuiBytes.set(rawBytes, 1);\n\n\t\treturn suiBytes;\n\t}\n\n\t/**\n\t * Return the Haneul address associated with this Ed25519 public key\n\t */\n\ttoHaneulAddress(): string {\n\t\t// Each hex char represents half a byte, hence hex address doubles the length\n\t\treturn normalizeHaneulAddress(\n\t\t\tbytesToHex(blake2b(this.toHaneulBytes(), { dkLen: 32 })).slice(0, HANEUL_ADDRESS_LENGTH * 2),\n\t\t);\n\t}\n\n\t/**\n\t * Return the byte array representation of the public key\n\t */\n\tabstract toRawBytes(): Uint8Array<ArrayBuffer>;\n\n\t/**\n\t * Return signature scheme flag of the public key\n\t */\n\tabstract flag(): number;\n\n\t/**\n\t * Verifies that the signature is valid for for the provided message\n\t */\n\tabstract verify(data: Uint8Array, signature: Uint8Array | string): Promise<boolean>;\n}\n\nexport function parseSerializedKeypairSignature(serializedSignature: string) {\n\tconst bytes = fromBase64(serializedSignature);\n\n\tconst signatureScheme =\n\t\tSIGNATURE_FLAG_TO_SCHEME[bytes[0] as keyof typeof SIGNATURE_FLAG_TO_SCHEME];\n\n\tswitch (signatureScheme) {\n\t\tcase 'ED25519':\n\t\tcase 'Secp256k1':\n\t\tcase 'Secp256r1':\n\t\t\tconst size =\n\t\t\t\tSIGNATURE_SCHEME_TO_SIZE[signatureScheme as keyof typeof SIGNATURE_SCHEME_TO_SIZE];\n\t\t\tconst signature = bytes.slice(1, bytes.length - size);\n\t\t\tconst publicKey = bytes.slice(1 + signature.length);\n\n\t\t\treturn {\n\t\t\t\tserializedSignature,\n\t\t\t\tsignatureScheme,\n\t\t\t\tsignature,\n\t\t\t\tpublicKey,\n\t\t\t\tbytes,\n\t\t\t};\n\t\tdefault:\n\t\t\tthrow new Error('Unsupported signature scheme');\n\t}\n}\n"],"mappings":";;;;;;;;;AAkBA,SAAgB,WAAW,GAAe,GAAe;AACxD,KAAI,MAAM,EAAG,QAAO;AAEpB,KAAI,EAAE,WAAW,EAAE,OAClB,QAAO;AAGR,MAAK,IAAI,IAAI,GAAG,IAAI,EAAE,QAAQ,IAC7B,KAAI,EAAE,OAAO,EAAE,GACd,QAAO;AAGT,QAAO;;;;;AAMR,IAAsB,YAAtB,MAAgC;;;;CAI/B,OAAO,WAAsB;AAC5B,SAAO,WAAW,KAAK,YAAY,EAAE,UAAU,YAAY,CAAC;;;;;CAM7D,WAAW;AACV,SAAO,SAAS,KAAK,YAAY,CAAC;;CAGnC,WAAkB;AACjB,QAAM,IAAI,MACT,4FACA;;;;;;;CAQF,iBAAyB;AAExB,SAAO,SADO,KAAK,eAAe,CACZ;;CAGvB,iBACC,OACA,WACA,QACmB;EAEnB,MAAM,SAAS,QADO,kBAAkB,QAAQ,MAAM,EAChB,EAAE,OAAO,IAAI,CAAC;AAEpD,SAAO,KAAK,OAAO,QAAQ,UAAU;;;;;CAMtC,sBAAsB,SAAqB,WAAkD;AAC5F,SAAO,KAAK,iBACXA,OAAI,YAAY,CAAC,UAAU,QAAQ,CAAC,SAAS,EAC7C,WACA,kBACA;;;;;CAMF,kBAAkB,aAAyB,WAAkD;AAC5F,SAAO,KAAK,iBAAiB,aAAa,WAAW,kBAAkB;;;;;CAMxE,cAAc,SAA0B;AACvC,SAAO,KAAK,iBAAiB,KAAK;;;;;;CAOnC,gBAAyC;EACxC,MAAM,WAAW,KAAK,YAAY;EAClC,MAAM,WAAW,IAAI,WAAW,SAAS,SAAS,EAAE;AACpD,WAAS,IAAI,CAAC,KAAK,MAAM,CAAC,CAAC;AAC3B,WAAS,IAAI,UAAU,EAAE;AAEzB,SAAO;;;;;CAMR,kBAA0B;AAEzB,SAAO,uBACN,WAAW,QAAQ,KAAK,eAAe,EAAE,EAAE,OAAO,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,wBAAwB,EAAE,CAC5F;;;AAmBH,SAAgB,gCAAgC,qBAA6B;CAC5E,MAAM,QAAQ,WAAW,oBAAoB;CAE7C,MAAM,kBACL,yBAAyB,MAAM;AAEhC,SAAQ,iBAAR;EACC,KAAK;EACL,KAAK;EACL,KAAK;GACJ,MAAM,OACL,yBAAyB;GAC1B,MAAM,YAAY,MAAM,MAAM,GAAG,MAAM,SAAS,KAAK;AAGrD,UAAO;IACN;IACA;IACA;IACA,WANiB,MAAM,MAAM,IAAI,UAAU,OAAO;IAOlD;IACA;EACF,QACC,OAAM,IAAI,MAAM,+BAA+B"}
@@ -1,6 +1,6 @@
1
1
  import { VerifySignatureRequest, VerifySignatureResponse } from "./signature_verification_service.mjs";
2
- import * as _protobuf_ts_runtime2 from "@protobuf-ts/runtime";
3
- import * as _protobuf_ts_runtime_rpc2 from "@protobuf-ts/runtime-rpc";
2
+ import * as _protobuf_ts_runtime3 from "@protobuf-ts/runtime";
3
+ import * as _protobuf_ts_runtime_rpc3 from "@protobuf-ts/runtime-rpc";
4
4
  import { RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
5
5
 
6
6
  //#region src/grpc/proto/haneul/rpc/v2/signature_verification_service.client.d.ts
@@ -22,9 +22,9 @@ interface ISignatureVerificationServiceClient {
22
22
  declare class SignatureVerificationServiceClient implements ISignatureVerificationServiceClient, ServiceInfo {
23
23
  private readonly _transport;
24
24
  typeName: string;
25
- methods: _protobuf_ts_runtime_rpc2.MethodInfo<any, any>[];
25
+ methods: _protobuf_ts_runtime_rpc3.MethodInfo<any, any>[];
26
26
  options: {
27
- [extensionName: string]: _protobuf_ts_runtime2.JsonValue;
27
+ [extensionName: string]: _protobuf_ts_runtime3.JsonValue;
28
28
  };
29
29
  constructor(_transport: RpcTransport);
30
30
  /**
@@ -1,6 +1,6 @@
1
1
  import { GetBalanceRequest, GetBalanceResponse, GetCoinInfoRequest, GetCoinInfoResponse, ListBalancesRequest, ListBalancesResponse, ListDynamicFieldsRequest, ListDynamicFieldsResponse, ListOwnedObjectsRequest, ListOwnedObjectsResponse } from "./state_service.mjs";
2
- import * as _protobuf_ts_runtime3 from "@protobuf-ts/runtime";
3
- import * as _protobuf_ts_runtime_rpc3 from "@protobuf-ts/runtime-rpc";
2
+ import * as _protobuf_ts_runtime2 from "@protobuf-ts/runtime";
3
+ import * as _protobuf_ts_runtime_rpc2 from "@protobuf-ts/runtime-rpc";
4
4
  import { RpcOptions, RpcTransport, ServiceInfo, UnaryCall } from "@protobuf-ts/runtime-rpc";
5
5
 
6
6
  //#region src/grpc/proto/haneul/rpc/v2/state_service.client.d.ts
@@ -36,9 +36,9 @@ interface IStateServiceClient {
36
36
  declare class StateServiceClient implements IStateServiceClient, ServiceInfo {
37
37
  private readonly _transport;
38
38
  typeName: string;
39
- methods: _protobuf_ts_runtime_rpc3.MethodInfo<any, any>[];
39
+ methods: _protobuf_ts_runtime_rpc2.MethodInfo<any, any>[];
40
40
  options: {
41
- [extensionName: string]: _protobuf_ts_runtime3.JsonValue;
41
+ [extensionName: string]: _protobuf_ts_runtime2.JsonValue;
42
42
  };
43
43
  constructor(_transport: RpcTransport);
44
44
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.mts","names":[],"sources":["../../../../../../src/grpc/proto/haneul/rpc/v2/transaction.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"transaction.d.mts","names":[],"sources":["../../../../../../src/grpc/proto/haneul/rpc/v2/transaction.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AA0BA;;;;AAkCc,UAlCG,WAAA,CAkCH;EAAqB;AAOnC;AAiCA;;;EAkCgB,GAAA,CAAA,EAtGT,GAsGS;EAAS;AAiBzB;AAsCA;;;EA4BiB,MAAA,CAAA,EAAA,MAAA;EAYJ;;;;;EAqCmC,OAAA,CAAA,EAAA,MAAA;EASpC;AAuFZ;AAoBA;EAYc,IAAA,CAAA,EA1VN,eA0VM;EAYO;;;EA8BR,MAAA,CAAA,EAAA,MAAA;EAWO;;;EA6BH,UAAA,CAAQ,EApaX,UAoaW;EAqCR;AAmBjB;AAmBA;EAqBiB,UAAO,CAAA,EAhgBV,qBAsgBM;AAapB;AAsBA;AA+BA;AA+BA;AA2DA;AAyBA;AAeiB,UAnsBA,UAAA,CAmsBA;EAiEA;AAyBjB;AAmBA;AAmBA;AA+BA;EA0BiB,OAAA,EAt3BP,eAs3B4B,EAAA;EAWrB;;;;;EAkCuC,KAAA,CAAA,EAAA,MAAA;EAoC5C;AAyFZ;AAiBA;AAeA;;;;EAYyD,KAAA,CAAA,EAAA,MAAA;EAK7C;AAqCZ;AAaC;AAkBD;AAAkD;EAmCrC,MAAA,CAAA,EAAA,MAAkC;AAAC;AAyChD;AAAsE;AAuDtE;AAA0D;AAmB1D;AAEM,UAlxCW,qBAAA,CAkxCsB;EA4B1B;AAA6B;AA4B1C;EAEM,IAAA,CAAA,EAx0CE,+CAw0C2B;EAiBtB;AAA6C;AAmB1D;AAAgD;AAmBhD;AAAgD;EAyBnC,KAAA,CAAA,EAAA,MAA4B;EAEnC;AAiBN;AAAwD;AA2BxD;AAA0C;AAoC1C;EAEM,QAAA,CAAA,EAAA,MAAA;EAiEO;AAAqC;AAiClD;AAAsD;AAYtD;AAAgE;AAwDhE;EAEM,YAAA,CAAA,EA9nDU,SA8nDV;EA0BO;AAAiD;AAmB9D;AAAkE;AAmBlE;AACkD;AA0ClD;EAEM,YAAA,CAAA,EAnuDU,SAmuDK;EAmBR;AAAiC;AAkB9C;AAAsE;AAkDtE;EAEM,KAAA,CAAA,EAAA,MAAA;EAyBO;AAA+D;AAmB5E;AAA8E;AA6B9E;EAEM,KAAA,CAAA,EAAA,MAAA;AAWN;;;;aAj4DY,+CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAsCK,eAAA;;;;SAIT;;;;;;;;;;;6BAYqB;;;;;;;;;;;iBAYZ;;;;;;;;;;;aAYJ;;;;;;;;6BASgB;;;;;;;;8BASC;;;;;;;;;gBAUd;;;;;;;;2BASW;;;;;;;;aASf,oBAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAuFK,uBAAA;;;;;;UAMR;;;;;;;YAOE;;;;;;;UAOM,OAAA;;;;;;;;;;;cAYH;;;;;;;;;;;qBAYO;;;;;;;;;gBAUL;;;;;;;;;gBAUA;;;;;;;;;aAUH;;;;;;;;;;oBAWO;;;;;;;;;;;;;;aAeP;;;;;;;;;;;;;UAcI,QAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA8BL;;;;;;;UAOK,eAAA;;;;;;WAMP;;;;;;YAMC;;;;;;;UAOM,UAAA;;;;;;SAMT;;;;;;WAME;;;;;;;UAOO,UAAA;;;;;;SAMT;;;;;;;;gBAQO;;;;;;;UAOE,OAAA;;;;;;WAMP;;;;;;;;;;;;;UAaO,cAAA;;;;;;;;;;;;;;;YAeN;;;;;;;UAOM,OAAA;;;;;;WAMP;;;;;;;;;;;;;;;;;;WAkBA;;;;;;;UAOO,qBAAA;;;;;;;;;;;;;;;;;;gBAkBF;;;;;;;;;;;;;UAaE,WAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wBA0CM;;;;;;;;;;kBAUN;;;;;;;UAOA,aAAA;;;;;;;;;;;;WAYP;;;;;;;;;;;;;UAaO,kBAAA;;;;;;WAMP;;;;;;;;;UASO,uBAAA;;;;;;;;;;;;;;;;;;;;;;;;oBAwBE;;;;;;;;;;;;;;;;;;;;;;;;;0CAyBsB;;;;;;;;;;;;;;;;UAgBxB,iBAAA;;;;;;;;;;;;;;;;;;;;;;;;;UAyBA,mBAAA;;;;;;;;;;;;sBAYI;;;;;;;UAOJ,qCAAA;;;;;;;;;;;;wBAYM;;;;;;;UAON,wBAAA;;;;;;;;;;;;;;;;;;iBAkBD;;;;;;;;;;;;;UAaC,SAAA;;;;;;OAMX;;;;;;QAMC;;;;;;;;;;;;;;UAcU,qBAAA;;;;gBAIF;;;;;;;UAOE,yBAAA;;;;SAIT;;;;;;;;;;;iBAYS;;;;;;;;8BASa;;;;;;;;+BASC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAoCnB,8BAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAyFK,wBAAA;;;;;;;;;;;;;;;;;UAiBA,yBAAA;;;;;;;;;;gBAUF;;;;;UAKE,wBAAA;;;;SAIT;;;;mBAIU;;;;yBAIM;;;;;aAKZ,qDAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;UAqCK,iCAAA;;;;;;cAMJ;;;;;;aAMD;;cAGN,gBAAA,SAAyB,YAAY;;;;;;cAgB9B,aAAW;cAElB,eAAA,SAAwB,YAAY;;;;;;cAiC7B,YAAU;cAEjB,0BAAA,SAAmC,YAAY;;;;;;cAuCxC,uBAAqB;cAE5B,oBAAA,SAA6B,YAAY;;;;;;cAqDlC,iBAAe;cAEtB,4BAAA,SAAqC,YAAY;;;;;;cAiB1C,yBAAuB;cAE9B,YAAA,SAAqB,YAAY;;;;;;cA4B1B,SAAO;cAEd,aAAA,SAAsB,YAAY;;;;;;cA0B3B,UAAQ;cAEf,oBAAA,SAA6B,YAAY;;;;;;cAiBlC,iBAAe;cAEtB,eAAA,SAAwB,YAAY;;;;;;cAiB7B,YAAU;cAEjB,eAAA,SAAwB,YAAY;;;;;;cAiB7B,YAAU;cAEjB,YAAA,SAAqB,YAAY;;;;;;cAuB1B,SAAO;cAEd,mBAAA,SAA4B,YAAY;;;;;;cAiBjC,gBAAc;cAErB,YAAA,SAAqB,YAAY;;;;;;cAyB1B,SAAO;cAEd,0BAAA,SAAmC,YAAY;;;;;;cAkCxC,uBAAqB;cAE5B,gBAAA,SAAyB,YAAY;;;;;;cAiE9B,aAAW;cAElB,kBAAA,SAA2B,YAAY;;;;;;cA+BhC,eAAa;cAEpB,uBAAA,SAAgC,YAAY;;;;;;cAUrC,oBAAkB;cAEzB,4BAAA,SAAqC,YAAY;;;;;;cAsD1C,yBAAuB;cAE9B,sBAAA,SAA+B,YAAY;;;;;;cA0BpC,mBAAiB;cAExB,wBAAA,SAAiC,YAAY;;;;;;cAiBtC,qBAAmB;cAE1B,0CAAA,SAAmD,YAAY;;;;;;cAiBxD,uCAAqC;cAG5C,6BAAA,SAAsC,YAAY;;;;;;cAwC3C,0BAAwB;cAE/B,cAAA,SAAuB,YAAY;;;;;;cAmB5B,WAAS;cAEhB,0BAAA,SAAmC,YAAY;;;;;;cAgBxC,uBAAqB;cAE5B,8BAAA,SAAuC,YAAY;;;;;;cAgD5C,2BAAyB;cAEhC,6BAAA,SAAsC,YAAY;;;;;;cAyB3C,0BAAwB;cAE/B,8BAAA,SAAuC,YAAY;;;;;;cAiB5C,2BAAyB;cAEhC,6BAAA,SAAsC,YAAY;;;;;;cA2B3C,0BAAwB;cAE/B,sCAAA,SAA+C,YAAY;;;;;;cAWpD,mCAAiC"}
@@ -95,7 +95,7 @@ var MultiSigPublicKey = class MultiSigPublicKey extends PublicKey {
95
95
  tmp.set(suiBcs.u16().serialize(this.multisigPublicKey.threshold).toBytes(), 1);
96
96
  let i = 3;
97
97
  for (const { publicKey, weight } of this.publicKeys) {
98
- const bytes = publicKey.toSuiBytes();
98
+ const bytes = publicKey.toHaneulBytes();
99
99
  tmp.set(bytes, i);
100
100
  i += bytes.length;
101
101
  tmp.set([weight], i++);
@@ -1 +1 @@
1
- {"version":3,"file":"publickey.mjs","names":["bcs"],"sources":["../../src/multisig/publickey.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@haneullabs/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\nimport { bytesToHex } from '@noble/hashes/utils.js';\n\nimport { bcs } from '../bcs/index.js';\nimport type { Signer } from '../cryptography/keypair.js';\nimport { bytesEqual, PublicKey } from '../cryptography/publickey.js';\nimport {\n\tSIGNATURE_FLAG_TO_SCHEME,\n\tSIGNATURE_SCHEME_TO_FLAG,\n} from '../cryptography/signature-scheme.js';\nimport type { SignatureFlag, SignatureScheme } from '../cryptography/signature-scheme.js';\nimport { parseSerializedSignature } from '../cryptography/signature.js';\nimport { normalizeHaneulAddress } from '../utils/haneul-types.js';\nimport { publicKeyFromRawBytes } from '../verify/index.js';\nimport { toZkLoginPublicIdentifier } from '../zklogin/publickey.js';\nimport { MultiSigSigner } from './signer.js';\nimport type { ClientWithCoreApi } from '../client/core.js';\n\ntype CompressedSignature =\n\t| { ED25519: Uint8Array }\n\t| { Secp256k1: Uint8Array }\n\t| { Secp256r1: Uint8Array }\n\t| { ZkLogin: Uint8Array }\n\t| { Passkey: Uint8Array };\n\ntype PublicKeyEnum =\n\t| { ED25519: Uint8Array }\n\t| { Secp256k1: Uint8Array }\n\t| { Secp256r1: Uint8Array }\n\t| { ZkLogin: Uint8Array }\n\t| { Passkey: Uint8Array };\n\ntype PubkeyEnumWeightPair = {\n\tpubKey: PublicKeyEnum;\n\tweight: number;\n};\n\ntype MultiSigPublicKeyStruct = {\n\tpk_map: PubkeyEnumWeightPair[];\n\tthreshold: number;\n};\n\nexport type MultiSigStruct = {\n\tsigs: CompressedSignature[];\n\tbitmap: number;\n\tmultisig_pk: MultiSigPublicKeyStruct;\n};\n\ntype ParsedPartialMultiSigSignature = {\n\tsignatureScheme: SignatureScheme;\n\tsignature: Uint8Array;\n\tpublicKey: PublicKey;\n\tweight: number;\n};\n\nexport const MAX_SIGNER_IN_MULTISIG = 10;\nexport const MIN_SIGNER_IN_MULTISIG = 1;\n/**\n * A MultiSig public key\n */\nexport class MultiSigPublicKey extends PublicKey {\n\tprivate rawBytes: Uint8Array<ArrayBuffer>;\n\tprivate multisigPublicKey: MultiSigPublicKeyStruct;\n\tprivate publicKeys: {\n\t\tweight: number;\n\t\tpublicKey: PublicKey;\n\t}[];\n\t/**\n\t * Create a new MultiSigPublicKey object\n\t */\n\tconstructor(\n\t\t/**\n\t\t * MultiSig public key as buffer or base-64 encoded string\n\t\t */\n\t\tvalue: string | Uint8Array | MultiSigPublicKeyStruct,\n\t\toptions: { client?: ClientWithCoreApi } = {},\n\t) {\n\t\tsuper();\n\n\t\tif (typeof value === 'string') {\n\t\t\tthis.rawBytes = fromBase64(value);\n\n\t\t\tthis.multisigPublicKey = bcs.MultiSigPublicKey.parse(this.rawBytes);\n\t\t} else if (value instanceof Uint8Array) {\n\t\t\tthis.rawBytes = value as Uint8Array<ArrayBuffer>;\n\t\t\tthis.multisigPublicKey = bcs.MultiSigPublicKey.parse(this.rawBytes);\n\t\t} else {\n\t\t\tthis.multisigPublicKey = value;\n\t\t\tthis.rawBytes = bcs.MultiSigPublicKey.serialize(value).toBytes();\n\t\t}\n\t\tif (this.multisigPublicKey.threshold < 1) {\n\t\t\tthrow new Error('Invalid threshold');\n\t\t}\n\n\t\tconst seenPublicKeys = new Set<string>();\n\n\t\tthis.publicKeys = this.multisigPublicKey.pk_map.map(({ pubKey, weight }) => {\n\t\t\tconst [scheme, bytes] = Object.entries(pubKey).filter(([name]) => name !== '$kind')[0] as [\n\t\t\t\tSignatureScheme,\n\t\t\t\tUint8Array,\n\t\t\t];\n\t\t\tconst publicKeyStr = Uint8Array.from(bytes).toString();\n\n\t\t\tif (seenPublicKeys.has(publicKeyStr)) {\n\t\t\t\tthrow new Error(`Multisig does not support duplicate public keys`);\n\t\t\t}\n\t\t\tseenPublicKeys.add(publicKeyStr);\n\n\t\t\tif (weight < 1) {\n\t\t\t\tthrow new Error(`Invalid weight`);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tpublicKey: publicKeyFromRawBytes(scheme, Uint8Array.from(bytes), options),\n\t\t\t\tweight,\n\t\t\t};\n\t\t});\n\n\t\tconst totalWeight = this.publicKeys.reduce((sum, { weight }) => sum + weight, 0);\n\n\t\tif (this.multisigPublicKey.threshold > totalWeight) {\n\t\t\tthrow new Error(`Unreachable threshold`);\n\t\t}\n\n\t\tif (this.publicKeys.length > MAX_SIGNER_IN_MULTISIG) {\n\t\t\tthrow new Error(`Max number of signers in a multisig is ${MAX_SIGNER_IN_MULTISIG}`);\n\t\t}\n\n\t\tif (this.publicKeys.length < MIN_SIGNER_IN_MULTISIG) {\n\t\t\tthrow new Error(`Min number of signers in a multisig is ${MIN_SIGNER_IN_MULTISIG}`);\n\t\t}\n\t}\n\t/**\n\t * \tA static method to create a new MultiSig publickey instance from a set of public keys and their associated weights pairs and threshold.\n\t */\n\n\tstatic fromPublicKeys({\n\t\tthreshold,\n\t\tpublicKeys,\n\t}: {\n\t\tthreshold: number;\n\t\tpublicKeys: { publicKey: PublicKey; weight: number }[];\n\t}) {\n\t\treturn new MultiSigPublicKey({\n\t\t\tpk_map: publicKeys.map(({ publicKey, weight }) => {\n\t\t\t\tconst scheme = SIGNATURE_FLAG_TO_SCHEME[publicKey.flag() as SignatureFlag];\n\n\t\t\t\treturn {\n\t\t\t\t\tpubKey: { [scheme]: publicKey.toRawBytes() } as PublicKeyEnum,\n\t\t\t\t\tweight,\n\t\t\t\t};\n\t\t\t}),\n\t\t\tthreshold,\n\t\t});\n\t}\n\n\t/**\n\t * Checks if two MultiSig public keys are equal\n\t */\n\toverride equals(publicKey: MultiSigPublicKey): boolean {\n\t\treturn super.equals(publicKey);\n\t}\n\n\t/**\n\t * Return the byte array representation of the MultiSig public key\n\t */\n\ttoRawBytes(): Uint8Array<ArrayBuffer> {\n\t\treturn this.rawBytes;\n\t}\n\n\tgetPublicKeys() {\n\t\treturn this.publicKeys;\n\t}\n\n\tgetThreshold() {\n\t\treturn this.multisigPublicKey.threshold;\n\t}\n\n\tgetSigner(...signers: [signer: Signer]) {\n\t\treturn new MultiSigSigner(this, signers);\n\t}\n\n\t/**\n\t * Return the Haneul address associated with this MultiSig public key\n\t */\n\toverride toHaneulAddress(): string {\n\t\t// max length = 1 flag byte + (max pk size + max weight size (u8)) * max signer size + 2 threshold bytes (u16)\n\t\tconst maxLength = 1 + (64 + 1) * MAX_SIGNER_IN_MULTISIG + 2;\n\t\tconst tmp = new Uint8Array(maxLength);\n\t\ttmp.set([SIGNATURE_SCHEME_TO_FLAG['MultiSig']]);\n\n\t\ttmp.set(bcs.u16().serialize(this.multisigPublicKey.threshold).toBytes(), 1);\n\t\t// The initial value 3 ensures that following data will be after the flag byte and threshold bytes\n\t\tlet i = 3;\n\t\tfor (const { publicKey, weight } of this.publicKeys) {\n\t\t\tconst bytes = publicKey.toSuiBytes();\n\t\t\ttmp.set(bytes, i);\n\t\t\ti += bytes.length;\n\t\t\ttmp.set([weight], i++);\n\t\t}\n\t\treturn normalizeHaneulAddress(bytesToHex(blake2b(tmp.slice(0, i), { dkLen: 32 })));\n\t}\n\n\t/**\n\t * Return the Haneul address associated with this MultiSig public key\n\t */\n\tflag(): number {\n\t\treturn SIGNATURE_SCHEME_TO_FLAG['MultiSig'];\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided message\n\t */\n\tasync verify(message: Uint8Array, multisigSignature: string): Promise<boolean> {\n\t\t// Multisig verification only supports serialized signature\n\t\tconst parsed = parseSerializedSignature(multisigSignature);\n\n\t\tif (parsed.signatureScheme !== 'MultiSig') {\n\t\t\tthrow new Error('Invalid signature scheme');\n\t\t}\n\n\t\tconst { multisig } = parsed;\n\n\t\tlet signatureWeight = 0;\n\n\t\tif (\n\t\t\t!bytesEqual(\n\t\t\t\tbcs.MultiSigPublicKey.serialize(this.multisigPublicKey).toBytes(),\n\t\t\t\tbcs.MultiSigPublicKey.serialize(multisig.multisig_pk).toBytes(),\n\t\t\t)\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (const { publicKey, weight, signature } of parsePartialSignatures(multisig)) {\n\t\t\tif (!(await publicKey.verify(message, signature))) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tsignatureWeight += weight;\n\t\t}\n\n\t\treturn signatureWeight >= this.multisigPublicKey.threshold;\n\t}\n\n\t/**\n\t * Combines multiple partial signatures into a single multisig, ensuring that each public key signs only once\n\t * and that all the public keys involved are known and valid, and then serializes multisig into the standard format\n\t */\n\tcombinePartialSignatures(signatures: string[]): string {\n\t\tif (signatures.length > MAX_SIGNER_IN_MULTISIG) {\n\t\t\tthrow new Error(`Max number of signatures in a multisig is ${MAX_SIGNER_IN_MULTISIG}`);\n\t\t}\n\n\t\tlet bitmap = 0;\n\t\tconst compressedSignatures: CompressedSignature[] = new Array(signatures.length);\n\n\t\tfor (let i = 0; i < signatures.length; i++) {\n\t\t\tconst parsed = parseSerializedSignature(signatures[i]);\n\t\t\tif (parsed.signatureScheme === 'MultiSig') {\n\t\t\t\tthrow new Error('MultiSig is not supported inside MultiSig');\n\t\t\t}\n\n\t\t\tlet publicKey;\n\t\t\tif (parsed.signatureScheme === 'ZkLogin') {\n\t\t\t\tpublicKey = toZkLoginPublicIdentifier(parsed.zkLogin?.addressSeed, parsed.zkLogin?.iss, {\n\t\t\t\t\tlegacyAddress: false,\n\t\t\t\t}).toRawBytes();\n\t\t\t} else {\n\t\t\t\tpublicKey = parsed.publicKey;\n\t\t\t}\n\n\t\t\tcompressedSignatures[i] = {\n\t\t\t\t[parsed.signatureScheme]: parsed.signature,\n\t\t\t} as CompressedSignature;\n\n\t\t\tlet publicKeyIndex;\n\t\t\tfor (let j = 0; j < this.publicKeys.length; j++) {\n\t\t\t\tif (bytesEqual(publicKey, this.publicKeys[j].publicKey.toRawBytes())) {\n\t\t\t\t\tif (bitmap & (1 << j)) {\n\t\t\t\t\t\tthrow new Error('Received multiple signatures from the same public key');\n\t\t\t\t\t}\n\n\t\t\t\t\tpublicKeyIndex = j;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (publicKeyIndex === undefined) {\n\t\t\t\tthrow new Error('Received signature from unknown public key');\n\t\t\t}\n\n\t\t\tbitmap |= 1 << publicKeyIndex;\n\t\t}\n\n\t\tconst multisig: MultiSigStruct = {\n\t\t\tsigs: compressedSignatures,\n\t\t\tbitmap,\n\t\t\tmultisig_pk: this.multisigPublicKey,\n\t\t};\n\t\tconst bytes = bcs.MultiSig.serialize(multisig, { maxSize: 8192 }).toBytes();\n\t\tconst tmp = new Uint8Array(bytes.length + 1);\n\t\ttmp.set([SIGNATURE_SCHEME_TO_FLAG['MultiSig']]);\n\t\ttmp.set(bytes, 1);\n\t\treturn toBase64(tmp);\n\t}\n}\n\n/**\n * Parse multisig structure into an array of individual signatures: signature scheme, the actual individual signature, public key and its weight.\n */\nexport function parsePartialSignatures(\n\tmultisig: MultiSigStruct,\n\toptions: { client?: ClientWithCoreApi } = {},\n): ParsedPartialMultiSigSignature[] {\n\tconst res: ParsedPartialMultiSigSignature[] = new Array(multisig.sigs.length);\n\tfor (let i = 0; i < multisig.sigs.length; i++) {\n\t\tconst [signatureScheme, signature] = Object.entries(multisig.sigs[i]).filter(\n\t\t\t([name]) => name !== '$kind',\n\t\t)[0] as [SignatureScheme, Uint8Array];\n\t\tconst pkIndex = asIndices(multisig.bitmap).at(i)!;\n\t\tconst pair = multisig.multisig_pk.pk_map[pkIndex];\n\t\tconst pkBytes = Uint8Array.from(Object.values(pair.pubKey)[0]);\n\n\t\tif (signatureScheme === 'MultiSig') {\n\t\t\tthrow new Error('MultiSig is not supported inside MultiSig');\n\t\t}\n\n\t\tconst publicKey = publicKeyFromRawBytes(signatureScheme, pkBytes, options);\n\n\t\tres[i] = {\n\t\t\tsignatureScheme,\n\t\t\tsignature: Uint8Array.from(signature),\n\t\t\tpublicKey: publicKey,\n\t\t\tweight: pair.weight,\n\t\t};\n\t}\n\treturn res;\n}\n\nfunction asIndices(bitmap: number): Uint8Array {\n\tif (bitmap < 0 || bitmap > 1024) {\n\t\tthrow new Error('Invalid bitmap');\n\t}\n\tconst res: number[] = [];\n\tfor (let i = 0; i < 10; i++) {\n\t\tif ((bitmap & (1 << i)) !== 0) {\n\t\t\tres.push(i);\n\t\t}\n\t}\n\treturn Uint8Array.from(res);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"publickey.mjs","names":["bcs"],"sources":["../../src/multisig/publickey.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromBase64, toBase64 } from '@haneullabs/bcs';\nimport { blake2b } from '@noble/hashes/blake2.js';\nimport { bytesToHex } from '@noble/hashes/utils.js';\n\nimport { bcs } from '../bcs/index.js';\nimport type { Signer } from '../cryptography/keypair.js';\nimport { bytesEqual, PublicKey } from '../cryptography/publickey.js';\nimport {\n\tSIGNATURE_FLAG_TO_SCHEME,\n\tSIGNATURE_SCHEME_TO_FLAG,\n} from '../cryptography/signature-scheme.js';\nimport type { SignatureFlag, SignatureScheme } from '../cryptography/signature-scheme.js';\nimport { parseSerializedSignature } from '../cryptography/signature.js';\nimport { normalizeHaneulAddress } from '../utils/haneul-types.js';\nimport { publicKeyFromRawBytes } from '../verify/index.js';\nimport { toZkLoginPublicIdentifier } from '../zklogin/publickey.js';\nimport { MultiSigSigner } from './signer.js';\nimport type { ClientWithCoreApi } from '../client/core.js';\n\ntype CompressedSignature =\n\t| { ED25519: Uint8Array }\n\t| { Secp256k1: Uint8Array }\n\t| { Secp256r1: Uint8Array }\n\t| { ZkLogin: Uint8Array }\n\t| { Passkey: Uint8Array };\n\ntype PublicKeyEnum =\n\t| { ED25519: Uint8Array }\n\t| { Secp256k1: Uint8Array }\n\t| { Secp256r1: Uint8Array }\n\t| { ZkLogin: Uint8Array }\n\t| { Passkey: Uint8Array };\n\ntype PubkeyEnumWeightPair = {\n\tpubKey: PublicKeyEnum;\n\tweight: number;\n};\n\ntype MultiSigPublicKeyStruct = {\n\tpk_map: PubkeyEnumWeightPair[];\n\tthreshold: number;\n};\n\nexport type MultiSigStruct = {\n\tsigs: CompressedSignature[];\n\tbitmap: number;\n\tmultisig_pk: MultiSigPublicKeyStruct;\n};\n\ntype ParsedPartialMultiSigSignature = {\n\tsignatureScheme: SignatureScheme;\n\tsignature: Uint8Array;\n\tpublicKey: PublicKey;\n\tweight: number;\n};\n\nexport const MAX_SIGNER_IN_MULTISIG = 10;\nexport const MIN_SIGNER_IN_MULTISIG = 1;\n/**\n * A MultiSig public key\n */\nexport class MultiSigPublicKey extends PublicKey {\n\tprivate rawBytes: Uint8Array<ArrayBuffer>;\n\tprivate multisigPublicKey: MultiSigPublicKeyStruct;\n\tprivate publicKeys: {\n\t\tweight: number;\n\t\tpublicKey: PublicKey;\n\t}[];\n\t/**\n\t * Create a new MultiSigPublicKey object\n\t */\n\tconstructor(\n\t\t/**\n\t\t * MultiSig public key as buffer or base-64 encoded string\n\t\t */\n\t\tvalue: string | Uint8Array | MultiSigPublicKeyStruct,\n\t\toptions: { client?: ClientWithCoreApi } = {},\n\t) {\n\t\tsuper();\n\n\t\tif (typeof value === 'string') {\n\t\t\tthis.rawBytes = fromBase64(value);\n\n\t\t\tthis.multisigPublicKey = bcs.MultiSigPublicKey.parse(this.rawBytes);\n\t\t} else if (value instanceof Uint8Array) {\n\t\t\tthis.rawBytes = value as Uint8Array<ArrayBuffer>;\n\t\t\tthis.multisigPublicKey = bcs.MultiSigPublicKey.parse(this.rawBytes);\n\t\t} else {\n\t\t\tthis.multisigPublicKey = value;\n\t\t\tthis.rawBytes = bcs.MultiSigPublicKey.serialize(value).toBytes();\n\t\t}\n\t\tif (this.multisigPublicKey.threshold < 1) {\n\t\t\tthrow new Error('Invalid threshold');\n\t\t}\n\n\t\tconst seenPublicKeys = new Set<string>();\n\n\t\tthis.publicKeys = this.multisigPublicKey.pk_map.map(({ pubKey, weight }) => {\n\t\t\tconst [scheme, bytes] = Object.entries(pubKey).filter(([name]) => name !== '$kind')[0] as [\n\t\t\t\tSignatureScheme,\n\t\t\t\tUint8Array,\n\t\t\t];\n\t\t\tconst publicKeyStr = Uint8Array.from(bytes).toString();\n\n\t\t\tif (seenPublicKeys.has(publicKeyStr)) {\n\t\t\t\tthrow new Error(`Multisig does not support duplicate public keys`);\n\t\t\t}\n\t\t\tseenPublicKeys.add(publicKeyStr);\n\n\t\t\tif (weight < 1) {\n\t\t\t\tthrow new Error(`Invalid weight`);\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tpublicKey: publicKeyFromRawBytes(scheme, Uint8Array.from(bytes), options),\n\t\t\t\tweight,\n\t\t\t};\n\t\t});\n\n\t\tconst totalWeight = this.publicKeys.reduce((sum, { weight }) => sum + weight, 0);\n\n\t\tif (this.multisigPublicKey.threshold > totalWeight) {\n\t\t\tthrow new Error(`Unreachable threshold`);\n\t\t}\n\n\t\tif (this.publicKeys.length > MAX_SIGNER_IN_MULTISIG) {\n\t\t\tthrow new Error(`Max number of signers in a multisig is ${MAX_SIGNER_IN_MULTISIG}`);\n\t\t}\n\n\t\tif (this.publicKeys.length < MIN_SIGNER_IN_MULTISIG) {\n\t\t\tthrow new Error(`Min number of signers in a multisig is ${MIN_SIGNER_IN_MULTISIG}`);\n\t\t}\n\t}\n\t/**\n\t * \tA static method to create a new MultiSig publickey instance from a set of public keys and their associated weights pairs and threshold.\n\t */\n\n\tstatic fromPublicKeys({\n\t\tthreshold,\n\t\tpublicKeys,\n\t}: {\n\t\tthreshold: number;\n\t\tpublicKeys: { publicKey: PublicKey; weight: number }[];\n\t}) {\n\t\treturn new MultiSigPublicKey({\n\t\t\tpk_map: publicKeys.map(({ publicKey, weight }) => {\n\t\t\t\tconst scheme = SIGNATURE_FLAG_TO_SCHEME[publicKey.flag() as SignatureFlag];\n\n\t\t\t\treturn {\n\t\t\t\t\tpubKey: { [scheme]: publicKey.toRawBytes() } as PublicKeyEnum,\n\t\t\t\t\tweight,\n\t\t\t\t};\n\t\t\t}),\n\t\t\tthreshold,\n\t\t});\n\t}\n\n\t/**\n\t * Checks if two MultiSig public keys are equal\n\t */\n\toverride equals(publicKey: MultiSigPublicKey): boolean {\n\t\treturn super.equals(publicKey);\n\t}\n\n\t/**\n\t * Return the byte array representation of the MultiSig public key\n\t */\n\ttoRawBytes(): Uint8Array<ArrayBuffer> {\n\t\treturn this.rawBytes;\n\t}\n\n\tgetPublicKeys() {\n\t\treturn this.publicKeys;\n\t}\n\n\tgetThreshold() {\n\t\treturn this.multisigPublicKey.threshold;\n\t}\n\n\tgetSigner(...signers: [signer: Signer]) {\n\t\treturn new MultiSigSigner(this, signers);\n\t}\n\n\t/**\n\t * Return the Haneul address associated with this MultiSig public key\n\t */\n\toverride toHaneulAddress(): string {\n\t\t// max length = 1 flag byte + (max pk size + max weight size (u8)) * max signer size + 2 threshold bytes (u16)\n\t\tconst maxLength = 1 + (64 + 1) * MAX_SIGNER_IN_MULTISIG + 2;\n\t\tconst tmp = new Uint8Array(maxLength);\n\t\ttmp.set([SIGNATURE_SCHEME_TO_FLAG['MultiSig']]);\n\n\t\ttmp.set(bcs.u16().serialize(this.multisigPublicKey.threshold).toBytes(), 1);\n\t\t// The initial value 3 ensures that following data will be after the flag byte and threshold bytes\n\t\tlet i = 3;\n\t\tfor (const { publicKey, weight } of this.publicKeys) {\n\t\t\tconst bytes = publicKey.toHaneulBytes();\n\t\t\ttmp.set(bytes, i);\n\t\t\ti += bytes.length;\n\t\t\ttmp.set([weight], i++);\n\t\t}\n\t\treturn normalizeHaneulAddress(bytesToHex(blake2b(tmp.slice(0, i), { dkLen: 32 })));\n\t}\n\n\t/**\n\t * Return the Haneul address associated with this MultiSig public key\n\t */\n\tflag(): number {\n\t\treturn SIGNATURE_SCHEME_TO_FLAG['MultiSig'];\n\t}\n\n\t/**\n\t * Verifies that the signature is valid for for the provided message\n\t */\n\tasync verify(message: Uint8Array, multisigSignature: string): Promise<boolean> {\n\t\t// Multisig verification only supports serialized signature\n\t\tconst parsed = parseSerializedSignature(multisigSignature);\n\n\t\tif (parsed.signatureScheme !== 'MultiSig') {\n\t\t\tthrow new Error('Invalid signature scheme');\n\t\t}\n\n\t\tconst { multisig } = parsed;\n\n\t\tlet signatureWeight = 0;\n\n\t\tif (\n\t\t\t!bytesEqual(\n\t\t\t\tbcs.MultiSigPublicKey.serialize(this.multisigPublicKey).toBytes(),\n\t\t\t\tbcs.MultiSigPublicKey.serialize(multisig.multisig_pk).toBytes(),\n\t\t\t)\n\t\t) {\n\t\t\treturn false;\n\t\t}\n\n\t\tfor (const { publicKey, weight, signature } of parsePartialSignatures(multisig)) {\n\t\t\tif (!(await publicKey.verify(message, signature))) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tsignatureWeight += weight;\n\t\t}\n\n\t\treturn signatureWeight >= this.multisigPublicKey.threshold;\n\t}\n\n\t/**\n\t * Combines multiple partial signatures into a single multisig, ensuring that each public key signs only once\n\t * and that all the public keys involved are known and valid, and then serializes multisig into the standard format\n\t */\n\tcombinePartialSignatures(signatures: string[]): string {\n\t\tif (signatures.length > MAX_SIGNER_IN_MULTISIG) {\n\t\t\tthrow new Error(`Max number of signatures in a multisig is ${MAX_SIGNER_IN_MULTISIG}`);\n\t\t}\n\n\t\tlet bitmap = 0;\n\t\tconst compressedSignatures: CompressedSignature[] = new Array(signatures.length);\n\n\t\tfor (let i = 0; i < signatures.length; i++) {\n\t\t\tconst parsed = parseSerializedSignature(signatures[i]);\n\t\t\tif (parsed.signatureScheme === 'MultiSig') {\n\t\t\t\tthrow new Error('MultiSig is not supported inside MultiSig');\n\t\t\t}\n\n\t\t\tlet publicKey;\n\t\t\tif (parsed.signatureScheme === 'ZkLogin') {\n\t\t\t\tpublicKey = toZkLoginPublicIdentifier(parsed.zkLogin?.addressSeed, parsed.zkLogin?.iss, {\n\t\t\t\t\tlegacyAddress: false,\n\t\t\t\t}).toRawBytes();\n\t\t\t} else {\n\t\t\t\tpublicKey = parsed.publicKey;\n\t\t\t}\n\n\t\t\tcompressedSignatures[i] = {\n\t\t\t\t[parsed.signatureScheme]: parsed.signature,\n\t\t\t} as CompressedSignature;\n\n\t\t\tlet publicKeyIndex;\n\t\t\tfor (let j = 0; j < this.publicKeys.length; j++) {\n\t\t\t\tif (bytesEqual(publicKey, this.publicKeys[j].publicKey.toRawBytes())) {\n\t\t\t\t\tif (bitmap & (1 << j)) {\n\t\t\t\t\t\tthrow new Error('Received multiple signatures from the same public key');\n\t\t\t\t\t}\n\n\t\t\t\t\tpublicKeyIndex = j;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (publicKeyIndex === undefined) {\n\t\t\t\tthrow new Error('Received signature from unknown public key');\n\t\t\t}\n\n\t\t\tbitmap |= 1 << publicKeyIndex;\n\t\t}\n\n\t\tconst multisig: MultiSigStruct = {\n\t\t\tsigs: compressedSignatures,\n\t\t\tbitmap,\n\t\t\tmultisig_pk: this.multisigPublicKey,\n\t\t};\n\t\tconst bytes = bcs.MultiSig.serialize(multisig, { maxSize: 8192 }).toBytes();\n\t\tconst tmp = new Uint8Array(bytes.length + 1);\n\t\ttmp.set([SIGNATURE_SCHEME_TO_FLAG['MultiSig']]);\n\t\ttmp.set(bytes, 1);\n\t\treturn toBase64(tmp);\n\t}\n}\n\n/**\n * Parse multisig structure into an array of individual signatures: signature scheme, the actual individual signature, public key and its weight.\n */\nexport function parsePartialSignatures(\n\tmultisig: MultiSigStruct,\n\toptions: { client?: ClientWithCoreApi } = {},\n): ParsedPartialMultiSigSignature[] {\n\tconst res: ParsedPartialMultiSigSignature[] = new Array(multisig.sigs.length);\n\tfor (let i = 0; i < multisig.sigs.length; i++) {\n\t\tconst [signatureScheme, signature] = Object.entries(multisig.sigs[i]).filter(\n\t\t\t([name]) => name !== '$kind',\n\t\t)[0] as [SignatureScheme, Uint8Array];\n\t\tconst pkIndex = asIndices(multisig.bitmap).at(i)!;\n\t\tconst pair = multisig.multisig_pk.pk_map[pkIndex];\n\t\tconst pkBytes = Uint8Array.from(Object.values(pair.pubKey)[0]);\n\n\t\tif (signatureScheme === 'MultiSig') {\n\t\t\tthrow new Error('MultiSig is not supported inside MultiSig');\n\t\t}\n\n\t\tconst publicKey = publicKeyFromRawBytes(signatureScheme, pkBytes, options);\n\n\t\tres[i] = {\n\t\t\tsignatureScheme,\n\t\t\tsignature: Uint8Array.from(signature),\n\t\t\tpublicKey: publicKey,\n\t\t\tweight: pair.weight,\n\t\t};\n\t}\n\treturn res;\n}\n\nfunction asIndices(bitmap: number): Uint8Array {\n\tif (bitmap < 0 || bitmap > 1024) {\n\t\tthrow new Error('Invalid bitmap');\n\t}\n\tconst res: number[] = [];\n\tfor (let i = 0; i < 10; i++) {\n\t\tif ((bitmap & (1 << i)) !== 0) {\n\t\t\tres.push(i);\n\t\t}\n\t}\n\treturn Uint8Array.from(res);\n}\n"],"mappings":"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"}
@@ -8,7 +8,7 @@ import { createPure } from "./pure.mjs";
8
8
  import { SignatureWithBytes, Signer } from "../cryptography/keypair.mjs";
9
9
  import "../cryptography/index.mjs";
10
10
  import { ClientWithCoreApi } from "../client/core.mjs";
11
- import * as _haneullabs_bcs1126 from "@haneullabs/bcs";
11
+ import * as _haneullabs_bcs1124 from "@haneullabs/bcs";
12
12
  import { SerializedBcs } from "@haneullabs/bcs";
13
13
  import { InferInput } from "valibot";
14
14
 
@@ -77,7 +77,7 @@ declare class Transaction {
77
77
  getData(): {
78
78
  version: 2;
79
79
  sender?: string | null | undefined;
80
- expiration?: _haneullabs_bcs1126.EnumOutputShapeWithKeys<{
80
+ expiration?: _haneullabs_bcs1124.EnumOutputShapeWithKeys<{
81
81
  None: true;
82
82
  Epoch: string | number;
83
83
  ValidDuring: {
@@ -99,8 +99,8 @@ declare class Transaction {
99
99
  digest: string;
100
100
  }[] | null;
101
101
  };
102
- inputs: _haneullabs_bcs1126.EnumOutputShapeWithKeys<{
103
- Object: _haneullabs_bcs1126.EnumOutputShapeWithKeys<{
102
+ inputs: _haneullabs_bcs1124.EnumOutputShapeWithKeys<{
103
+ Object: _haneullabs_bcs1124.EnumOutputShapeWithKeys<{
104
104
  ImmOrOwnedObject: {
105
105
  objectId: string;
106
106
  version: string | number;
@@ -139,13 +139,13 @@ declare class Transaction {
139
139
  Balance: string;
140
140
  $kind: "Balance";
141
141
  };
142
- withdrawFrom: _haneullabs_bcs1126.EnumOutputShapeWithKeys<{
142
+ withdrawFrom: _haneullabs_bcs1124.EnumOutputShapeWithKeys<{
143
143
  Sender: true;
144
144
  Sponsor: true;
145
145
  }, "Sender" | "Sponsor">;
146
146
  };
147
147
  }, "Pure" | "Object" | "FundsWithdrawal" | "UnresolvedPure" | "UnresolvedObject">[];
148
- commands: _haneullabs_bcs1126.EnumOutputShapeWithKeys<{
148
+ commands: _haneullabs_bcs1124.EnumOutputShapeWithKeys<{
149
149
  MoveCall: {
150
150
  package: string;
151
151
  module: string;