diff --git a/packages/contracts/source/contracts/crypto/identities.ts b/packages/contracts/source/contracts/crypto/identities.ts index 96312d8b3..e624b49be 100644 --- a/packages/contracts/source/contracts/crypto/identities.ts +++ b/packages/contracts/source/contracts/crypto/identities.ts @@ -1,7 +1,5 @@ import type { ByteBuffer } from "@mainsail/utils"; -import type { MultiSignatureAsset } from "./legacy.js"; - export interface KeyPair { publicKey: string; privateKey: string; @@ -12,7 +10,6 @@ export interface AddressFactory { fromMnemonic(mnemonic: string): Promise; fromPublicKey(publicKey: string): Promise; fromWIF(wif: string): Promise; - fromMultiSignatureAsset(asset: MultiSignatureAsset): Promise; fromBuffer(buffer: Buffer): Promise; toBuffer(address: string): Promise; validate(address: string): Promise; @@ -21,7 +18,6 @@ export interface AddressFactory { export interface PublicKeyFactory { fromMnemonic(mnemonic: string): Promise; fromWIF(wif: string): Promise; - fromMultiSignatureAsset(asset: MultiSignatureAsset): Promise; verify(publicKey: string): Promise; aggregate(publicKeys: Buffer[]): Promise; } diff --git a/packages/contracts/source/contracts/crypto/index.ts b/packages/contracts/source/contracts/crypto/index.ts index 33f33bd17..87d8bc9ff 100644 --- a/packages/contracts/source/contracts/crypto/index.ts +++ b/packages/contracts/source/contracts/crypto/index.ts @@ -5,7 +5,6 @@ export * from "./config.js"; export * from "./crypto.js"; export * from "./hash.js"; export * from "./identities.js"; -export * from "./legacy.js"; export * from "./messages.js"; export * from "./networks.js"; export * from "./proposal.js"; diff --git a/packages/contracts/source/contracts/crypto/legacy.ts b/packages/contracts/source/contracts/crypto/legacy.ts deleted file mode 100644 index 6ef52e91e..000000000 --- a/packages/contracts/source/contracts/crypto/legacy.ts +++ /dev/null @@ -1,10 +0,0 @@ -export interface MultiSignatureLegacyAsset { - min: number; - lifetime: number; - keysgroup: string[]; -} - -export interface MultiSignatureAsset { - min: number; - publicKeys: string[]; -} diff --git a/packages/crypto-address-base58/source/address.factory.test.ts b/packages/crypto-address-base58/source/address.factory.test.ts index d5263d940..43c260c39 100644 --- a/packages/crypto-address-base58/source/address.factory.test.ts +++ b/packages/crypto-address-base58/source/address.factory.test.ts @@ -29,20 +29,6 @@ describe<{ app: Application; factory: AddressFactory }>("AddressFactory", ({ ass assert.is(await factory.fromMnemonic(mnemonic), "DLsMhiUzAVEXBXDTY1NGNZteWz8SDvphfa"); }); - it("#fromMultiSignatureAsset - should derive an address from multi signature address", async ({ factory }) => { - assert.is( - await factory.fromMultiSignatureAsset({ - min: 3, - publicKeys: [ - "0235d486fea0193cbe77e955ab175b8f6eb9eaf784de689beffbd649989f5d6be3", - "03a46f2547d20b47003c1c376788db5a54d67264df2ae914f70bf453b6a1fa1b3a", - "03d7dfe44e771039334f4712fb95ad355254f674c8f5d286503199157b7bf7c357", - ], - }), - "D8UtPGvjKzjn1fN5GfESoTrTrkQv6XjALS", - ); - }); - it("#fromPublicKey - should derive an address from a public key", async ({ factory }) => { assert.is( await factory.fromPublicKey("034151a3ec46b5670a682b0a63394f863587d1bc97483b1b6c70eb58e7f0aed192"), diff --git a/packages/crypto-address-base58/source/address.factory.ts b/packages/crypto-address-base58/source/address.factory.ts index 23e5ba06e..b88e5fcea 100644 --- a/packages/crypto-address-base58/source/address.factory.ts +++ b/packages/crypto-address-base58/source/address.factory.ts @@ -39,10 +39,6 @@ export class AddressFactory implements Contracts.Crypto.AddressFactory { return this.fromPublicKey(await this.publicKeyFactory.fromWIF(wif)); } - public async fromMultiSignatureAsset(asset: Contracts.Crypto.MultiSignatureAsset): Promise { - return this.fromPublicKey(await this.publicKeyFactory.fromMultiSignatureAsset(asset)); - } - public async fromBuffer(buffer: Buffer): Promise { return this.#encodeCheck(buffer); } diff --git a/packages/crypto-address-keccak256/source/address.factory.test.ts b/packages/crypto-address-keccak256/source/address.factory.test.ts index f9c8c7d0a..db47a0309 100644 --- a/packages/crypto-address-keccak256/source/address.factory.test.ts +++ b/packages/crypto-address-keccak256/source/address.factory.test.ts @@ -55,20 +55,6 @@ describe<{ app: Application; factory: AddressFactory }>("AddressFactory", ({ ass wallets, ); - it("#fromMultiSignatureAsset - should derive an address from multi signature address", async ({ factory }) => { - assert.is( - await factory.fromMultiSignatureAsset({ - min: 3, - publicKeys: [ - "0235d486fea0193cbe77e955ab175b8f6eb9eaf784de689beffbd649989f5d6be3", - "03a46f2547d20b47003c1c376788db5a54d67264df2ae914f70bf453b6a1fa1b3a", - "03d7dfe44e771039334f4712fb95ad355254f674c8f5d286503199157b7bf7c357", - ], - }), - "0x970996B998f3C854D9a4D2C327Cc049ae6241C40", - ); - }); - each( "#validate - should be valid", async ({ context: { factory }, dataset: address }) => { diff --git a/packages/crypto-address-keccak256/source/address.factory.ts b/packages/crypto-address-keccak256/source/address.factory.ts index ab720a3da..49c8272e5 100644 --- a/packages/crypto-address-keccak256/source/address.factory.ts +++ b/packages/crypto-address-keccak256/source/address.factory.ts @@ -27,10 +27,6 @@ export class AddressFactory implements Contracts.Crypto.AddressFactory { return this.fromPublicKey(await this.publicKeyFactory.fromWIF(wif)); } - public async fromMultiSignatureAsset(asset: Contracts.Crypto.MultiSignatureAsset): Promise { - return this.fromPublicKey(await this.publicKeyFactory.fromMultiSignatureAsset(asset)); - } - public async fromBuffer(buffer: Buffer): Promise { return getAddress(toHex(buffer)); } diff --git a/packages/crypto-key-pair-bls12-381/source/public.test.ts b/packages/crypto-key-pair-bls12-381/source/public.test.ts index 338ce4778..d7be0c3f5 100644 --- a/packages/crypto-key-pair-bls12-381/source/public.test.ts +++ b/packages/crypto-key-pair-bls12-381/source/public.test.ts @@ -37,10 +37,6 @@ describe<{ app: Application; factory: PublicKeyFactory }>("PublicKeyFactory", ({ await assert.rejects(() => factory.fromWIF(""), NotImplemented); }); - it("#fromMultiSignatureAsset - should throw NotImplemented", async ({ factory }) => { - await assert.rejects(async () => factory.fromMultiSignatureAsset({} as any), NotImplemented); - }); - each( "#verify - should pass with valid public keys", async ({ context, dataset }) => { diff --git a/packages/crypto-key-pair-bls12-381/source/public.ts b/packages/crypto-key-pair-bls12-381/source/public.ts index edef37eec..7c9a6d18b 100644 --- a/packages/crypto-key-pair-bls12-381/source/public.ts +++ b/packages/crypto-key-pair-bls12-381/source/public.ts @@ -20,10 +20,6 @@ export class PublicKeyFactory implements Contracts.Crypto.PublicKeyFactory { throw new NotImplemented(this.constructor.name, "fromWIF"); } - public async fromMultiSignatureAsset(asset: Contracts.Crypto.MultiSignatureAsset): Promise { - throw new NotImplemented(this.constructor.name, "fromMultiSignatureAsset"); - } - public async verify(publicKey: string): Promise { const bls = await getBls(); diff --git a/packages/crypto-key-pair-ecdsa/source/public.test.ts b/packages/crypto-key-pair-ecdsa/source/public.test.ts index 067507887..d109e9920 100644 --- a/packages/crypto-key-pair-ecdsa/source/public.test.ts +++ b/packages/crypto-key-pair-ecdsa/source/public.test.ts @@ -42,65 +42,6 @@ describe<{ app: Application; factory: PublicKeyFactory }>("PrivateKeyFactory", ( wallets, ); - it("should derive from a musig", async ({ factory }) => { - assert.is( - await factory.fromMultiSignatureAsset({ - min: 3, - publicKeys: [ - "0235d486fea0193cbe77e955ab175b8f6eb9eaf784de689beffbd649989f5d6be3", - "03a46f2547d20b47003c1c376788db5a54d67264df2ae914f70bf453b6a1fa1b3a", - "03d7dfe44e771039334f4712fb95ad355254f674c8f5d286503199157b7bf7c357", - ], - }), - "0321d8b4df000280dd7f3ac8dae0558e214bd6fe736d97cf68ea8a083c024c249c", - ); - }); - - it("should throw if min < 1", async ({ factory }) => { - await assert.rejects( - () => - factory.fromMultiSignatureAsset({ - min: 0, - publicKeys: [ - "0235d486fea0193cbe77e955ab175b8f6eb9eaf784de689beffbd649989f5d6be3", - "03a46f2547d20b47003c1c376788db5a54d67264df2ae914f70bf453b6a1fa1b3a", - "03d7dfe44e771039334f4712fb95ad355254f674c8f5d286503199157b7bf7c357", - ], - }), - "The multi signature asset is invalid.", - ); - }); - - it("should throw if min > publicKeys.length", async ({ factory }) => { - await assert.rejects( - () => - factory.fromMultiSignatureAsset({ - min: 4, - publicKeys: [ - "0235d486fea0193cbe77e955ab175b8f6eb9eaf784de689beffbd649989f5d6be3", - "03a46f2547d20b47003c1c376788db5a54d67264df2ae914f70bf453b6a1fa1b3a", - "03d7dfe44e771039334f4712fb95ad355254f674c8f5d286503199157b7bf7c357", - ], - }), - "The multi signature asset is invalid.", - ); - }); - - it("should throw if publicKey is invalid", async ({ factory }) => { - await assert.rejects( - () => - factory.fromMultiSignatureAsset({ - min: 1, - publicKeys: [ - "0", - "03a46f2547d20b47003c1c376788db5a54d67264df2ae914f70bf453b6a1fa1b3a", - "03d7dfe44e771039334f4712fb95ad355254f674c8f5d286503199157b7bf7c357", - ], - }), - "Expected 0 to be a valid public key", - ); - }); - each( "should pass with valid public keys", async ({ context, dataset }) => { diff --git a/packages/crypto-key-pair-ecdsa/source/public.ts b/packages/crypto-key-pair-ecdsa/source/public.ts index 473f30b83..daa7ec1bc 100644 --- a/packages/crypto-key-pair-ecdsa/source/public.ts +++ b/packages/crypto-key-pair-ecdsa/source/public.ts @@ -2,8 +2,7 @@ import type { Contracts } from "@mainsail/contracts"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable } from "@mainsail/container"; -import { InvalidMultiSignatureAssetError, NotImplemented, PublicKeyError } from "@mainsail/exceptions"; -import { numberToHex } from "@mainsail/utils"; +import { NotImplemented } from "@mainsail/exceptions"; import { secp256k1 } from "bcrypto"; @injectable() @@ -21,27 +20,6 @@ export class PublicKeyFactory implements Contracts.Crypto.PublicKeyFactory { return publicKey; } - public async fromMultiSignatureAsset(asset: Contracts.Crypto.MultiSignatureAsset): Promise { - const { min, publicKeys }: Contracts.Crypto.MultiSignatureAsset = asset; - - for (const publicKey of publicKeys) { - if (!(await this.verify(publicKey))) { - throw new PublicKeyError(publicKey); - } - } - - if (min < 1 || min > publicKeys.length) { - throw new InvalidMultiSignatureAssetError(); - } - - const minKey: string = await this.fromMnemonic(numberToHex(min)); - const keys: string[] = [minKey, ...publicKeys]; - - return secp256k1 - .publicKeyCombine(keys.map((publicKey: string) => Buffer.from(publicKey, "hex"))) - .toString("hex"); - } - public async verify(publicKey: string): Promise { return secp256k1.publicKeyVerify(Buffer.from(publicKey, "hex")); } diff --git a/packages/crypto-transaction/source/factory.ts b/packages/crypto-transaction/source/factory.ts index ee577259c..43b805313 100644 --- a/packages/crypto-transaction/source/factory.ts +++ b/packages/crypto-transaction/source/factory.ts @@ -2,11 +2,7 @@ import type { Contracts } from "@mainsail/contracts"; import { Identifiers } from "@mainsail/constants"; import { inject, injectable, tagged, optional } from "@mainsail/container"; -import { - DuplicateParticipantInMultiSignatureError, - InvalidTransactionBytesError, - TransactionSchemaError, -} from "@mainsail/exceptions"; +import { InvalidTransactionBytesError, TransactionSchemaError } from "@mainsail/exceptions"; import { assert } from "@mainsail/utils"; import { BlockTransaction } from "./block-transaction.js"; @@ -140,7 +136,7 @@ export class TransactionFactory implements Contracts.Crypto.TransactionFactory { return new Transaction(tx, serialized); } catch (error) { - if (error instanceof TransactionSchemaError || error instanceof DuplicateParticipantInMultiSignatureError) { + if (error instanceof TransactionSchemaError) { throw error; } diff --git a/packages/exceptions/source/crypto.ts b/packages/exceptions/source/crypto.ts index 17a284547..ec4c99517 100644 --- a/packages/exceptions/source/crypto.ts +++ b/packages/exceptions/source/crypto.ts @@ -180,18 +180,6 @@ export class InvalidNumberOfRoundValidatorsError extends Exception { } } -export class InvalidMultiSignatureAssetError extends Exception { - public constructor() { - super(`The multi signature asset is invalid.`); - } -} - -export class DuplicateParticipantInMultiSignatureError extends Exception { - public constructor() { - super(`Invalid multi signature, because duplicate participant found.`); - } -} - export class DeactivatedTransactionHandlerError extends Exception { public constructor(type: number) { super(`Transaction type ${type.toString()} is deactivated.`); @@ -255,30 +243,6 @@ export class MissingLegacySecondSignatureError extends Exception { } } -export class MissingMultiSignatureOnSenderError extends Exception { - public constructor() { - super(`Failed to apply transaction, because sender does not have a multi signature.`); - } -} - -export class InvalidMultiSignaturesError extends Exception { - public constructor() { - super(`Failed to apply transaction, because the multi signatures are invalid.`); - } -} - -export class UnsupportedMultiSignatureRegistrationTransactionError extends Exception { - public constructor() { - super(`Failed to apply transaction, because the transaction does not support multi signatures.`); - } -} - -export class UnsupportedMultiSignatureRegistrationException extends Exception { - public constructor() { - super(`Failed to apply transaction, because the transaction does not support multi signatures.`); - } -} - export class WalletAlreadyResignedError extends Exception { public constructor() { super(`Failed to apply transaction, because the wallet already resigned as validator.`); @@ -376,44 +340,6 @@ export class InvalidSignatureError extends Exception { } } -export class MultiSignatureAlreadyRegisteredError extends Exception { - public constructor() { - super(`Failed to apply transaction, because multi signature is already enabled.`); - } -} - -export class InvalidMultiSignatureError extends Exception { - public constructor() { - super(`Failed to apply transaction, because the multi signature could not be verified.`); - } -} - -export class LegacyMultiSignatureError extends Exception { - public constructor() { - super(`Failed to apply transaction, because legacy multi signature is no longer supported.`); - } -} - -export class LegacyMultiSignatureRegistrationError extends Exception { - public constructor() { - super(`Failed to apply transaction, because legacy multi signature registrations are no longer supported.`); - } -} - -export class MultiSignatureMinimumKeysError extends Exception { - public constructor() { - super(`Failed to apply transaction, because too few keys were provided.`); - } -} - -export class MultiSignatureKeyCountMismatchError extends Exception { - public constructor() { - super( - `Failed to apply transaction, because the number of provided keys does not match the number of signatures.`, - ); - } -} - export class MultiPaymentAmountMismatchError extends Exception { public constructor() { super(`Payment amounts mismatch.`); diff --git a/packages/test-factories/source/factories/factories/transaction.test.ts b/packages/test-factories/source/factories/factories/transaction.test.ts index 75c3e7ea2..db36847df 100644 --- a/packages/test-factories/source/factories/factories/transaction.test.ts +++ b/packages/test-factories/source/factories/factories/transaction.test.ts @@ -97,16 +97,6 @@ describe<{ // assert.undefined(transaction.data.signatures); // }); - // it("Vote - should sign it with multiple passphrases", async ({ factoryBuilder }) => { - // const transaction: Contracts.Crypto.Transaction = await factoryBuilder - // .get("Vote") - // .withStates("multiSign") - // .make(); - - // assert.undefined(transaction.data.signature); - // assert.defined(transaction.data.signatures); - // }); - // it("Unvote - should create a builder", async ({ factoryBuilder }) => { // const transaction: Contracts.Crypto.Transaction = await factoryBuilder.get("Unvote").make(); @@ -121,43 +111,6 @@ describe<{ // assert.undefined(transaction.data.signatures); // }); - // it("Unvote - should sign it with multiple passphrases", async ({ factoryBuilder }) => { - // const transaction: Contracts.Crypto.Transaction = await factoryBuilder - // .get("Unvote") - // .withStates("multiSign") - // .make(); - - // assert.undefined(transaction.data.signature); - // assert.defined(transaction.data.signatures); - // }); - - // it("MultiSignature - should create a builder", async ({ factoryBuilder }) => { - // const transaction: Contracts.Crypto.Transaction = await factoryBuilder.get("MultiSignature").make(); - - // assert.undefined(transaction.data.signature); - // assert.undefined(transaction.data.signatures); - // }); - - // it("MultiSignature - should sign it with single passphrase", async ({ factoryBuilder }) => { - // const transaction: Contracts.Crypto.Transaction = await factoryBuilder - // .get("MultiSignature") - // .withStates("sign") - // .make(); - - // assert.defined(transaction.data.signature); - // assert.undefined(transaction.data.signatures); - // }); - - // it("MultiSignature - should sign it with multiple passphrases", async ({ factoryBuilder }) => { - // const transaction: Contracts.Crypto.Transaction = await factoryBuilder - // .get("MultiSignature") - // .withStates("multiSign") - // .make(); - - // assert.undefined(transaction.data.signature); - // assert.defined(transaction.data.signatures); - // }); - // it("MultiPayment - should create a builder", async ({ factoryBuilder }) => { // const transaction: Contracts.Crypto.Transaction = await factoryBuilder.get("MultiPayment").make(); @@ -174,14 +127,4 @@ describe<{ // assert.defined(transaction.data.signature); // assert.undefined(transaction.data.signatures); // }); - - // it("MultiPayment - should sign it with multiple passphrases", async ({ factoryBuilder }) => { - // const transaction: Contracts.Crypto.Transaction = await factoryBuilder - // .get("MultiPayment") - // .withStates("multiSign") - // .make(); - - // assert.undefined(transaction.data.signature); - // assert.defined(transaction.data.signatures); - // }); }); diff --git a/packages/test-factories/source/factories/factories/transaction.ts b/packages/test-factories/source/factories/factories/transaction.ts index 6ad0426f7..f5795a633 100644 --- a/packages/test-factories/source/factories/factories/transaction.ts +++ b/packages/test-factories/source/factories/factories/transaction.ts @@ -19,14 +19,6 @@ interface EntityOptions { const sign = async ({ entity, options }: EntityOptions): Promise => entity.sign(options.passphrase || secrets[0]); -const multiSign = async ({ entity, options }: EntityOptions): Promise => - // const passphrases: string[] = options.passphrases || [secrets[0], secrets[1], secrets[2]]; - - // for (const [index, passphrase] of passphrases.entries()) { - // await entity.multiSign(passphrase, index); - // } - - entity; const applyModifiers = (entity: TransactionBuilder, options: TransactionOptions): TransactionBuilder => { entity.gasPrice(options.gasPrice || GAS_PRICE); @@ -64,8 +56,6 @@ export const registerTransferFactory = (factory: FactoryBuilder, app: Contracts. // @ts-ignore factory.get("Transfer").state("sign", sign); - // @ts-ignore - factory.get("Transfer").state("multiSign", multiSign); }; // export const registerValidatorRegistrationFactory = ( @@ -115,8 +105,6 @@ export const registerTransferFactory = (factory: FactoryBuilder, app: Contracts. // // @ts-ignore // factory.get("Vote").state("sign", sign); -// // @ts-ignore -// factory.get("Vote").state("multiSign", multiSign); // }; // export const registerUnvoteFactory = (factory: FactoryBuilder, app: Contracts.Kernel.Application): void => { @@ -140,40 +128,7 @@ export const registerTransferFactory = (factory: FactoryBuilder, app: Contracts. // // @ts-ignore // factory.get("Unvote").state("sign", sign); -// // @ts-ignore -// factory.get("Unvote").state("multiSign", multiSign); // }; - -// export const registerMultiSignature = (factory: FactoryBuilder, app: Contracts.Kernel.Application): void => { -// factory.set("MultiSignature", async ({ options }: { options: MultiSignatureOptions }) => { -// const publicKeyFactory = app.getTagged( -// Identifiers.Cryptography.Identity.PublicKey.Factory, -// "type", -// "wallet", -// ); - -// const publicKeys: string[] = options.publicKeys || [ -// await publicKeyFactory.fromMnemonic(secrets[0]), -// await publicKeyFactory.fromMnemonic(secrets[1]), -// await publicKeyFactory.fromMnemonic(secrets[2]), -// ]; - -// return applyModifiers( -// app -// .resolve(MultiSignatureBuilder) -// .multiSignatureAsset({ -// min: options.min || 2, -// publicKeys, -// }) -// .senderPublicKey(publicKeys[0]), -// options, -// ); -// }); - -// // @ts-ignore -// factory.get("MultiSignature").state("sign", sign); -// // @ts-ignore -// factory.get("MultiSignature").state("multiSign", multiSign); // }; // export const registerMultiPaymentFactory = (factory: FactoryBuilder, app: Contracts.Kernel.Application) => { @@ -206,8 +161,6 @@ export const registerTransferFactory = (factory: FactoryBuilder, app: Contracts. // // @ts-ignore // factory.get("MultiPayment").state("sign", sign); -// // @ts-ignore -// factory.get("MultiPayment").state("multiSign", multiSign); // }; export const registerEvmCallFactory = (factory: FactoryBuilder, app: Contracts.Kernel.Application): void => { @@ -237,7 +190,6 @@ export const registerTransactionFactory = async ( // registerValidatorResignationFactory(factory, app); // registerVoteFactory(factory, app); // registerUnvoteFactory(factory, app); - // registerMultiSignature(factory, app); // registerMultiPaymentFactory(factory, app); registerEvmCallFactory(factory, app); }; diff --git a/packages/test-factories/source/factories/helpers.test.ts b/packages/test-factories/source/factories/helpers.test.ts index caae9b286..60fcaec62 100644 --- a/packages/test-factories/source/factories/helpers.test.ts +++ b/packages/test-factories/source/factories/helpers.test.ts @@ -11,7 +11,6 @@ describe("Helpers", ({ it, assert }) => { // assert.defined(await factory("ValidatorResignation", cryptoConfig)); // assert.defined(await factory("Vote", cryptoConfig)); // assert.defined(await factory("Unvote", cryptoConfig)); - // assert.defined(await factory("MultiSignature", cryptoConfig)); // assert.defined(await factory("MultiPayment", cryptoConfig)); assert.defined(await factory("EvmCall", cryptoConfig)); }); diff --git a/packages/test-factories/source/factories/types.ts b/packages/test-factories/source/factories/types.ts index 564f65075..cc8dbff93 100644 --- a/packages/test-factories/source/factories/types.ts +++ b/packages/test-factories/source/factories/types.ts @@ -39,11 +39,6 @@ export type VoteOptions = TransactionOptions & { publicKey?: string; }; -export type MultiSignatureOptions = TransactionOptions & { - publicKeys?: string[]; - min?: number; -}; - export type MultiPaymentOptions = TransactionOptions & { payments?: { amount: string; diff --git a/packages/test-transaction-builders/source/index.ts b/packages/test-transaction-builders/source/index.ts index 1e1659cc9..24c2870fb 100644 --- a/packages/test-transaction-builders/source/index.ts +++ b/packages/test-transaction-builders/source/index.ts @@ -7,7 +7,6 @@ export { default as DARK20Abi } from "./abis/DARK20.json" with { type: "json" }; export * as EvmCalls from "./evm-calls.js"; // export * as MultiPayments from "./multi-payments.js"; -// export * as MultiSignatureRegistrations from "./multi-signature-registrations.js"; // export * as Transfers from "./transfers.js"; export * as Types from "./types.js"; export * as Utils from "./utilities.js"; diff --git a/packages/test-transaction-builders/source/types.ts b/packages/test-transaction-builders/source/types.ts index b12320b3b..3042c9630 100644 --- a/packages/test-transaction-builders/source/types.ts +++ b/packages/test-transaction-builders/source/types.ts @@ -13,10 +13,7 @@ export interface TransactionOptions { sender?: Contracts.Crypto.KeyPair; gasPrice?: number; signature?: string; - omitParticipantSignatures?: number[]; nonceOffset?: number; - multiSigKeys?: Contracts.Crypto.KeyPair[]; - participantSignatures?: string[]; callback?: (transaction: Contracts.Crypto.Transaction) => Promise; } diff --git a/packages/test-transaction-builders/source/utilities.ts b/packages/test-transaction-builders/source/utilities.ts index 84c6e6820..c3cfecfa4 100644 --- a/packages/test-transaction-builders/source/utilities.ts +++ b/packages/test-transaction-builders/source/utilities.ts @@ -30,32 +30,6 @@ const applyCustomSignature = async ( //transaction.data.signature = signature; }; -const applyCustomSignatures = async ( - app: Contracts.Kernel.Application, - transaction: Contracts.Crypto.Transaction, - { omitParticipantSignatures, participantSignatures }: TransactionOptions, -) => { - throw new Error("unsupported"); - // if (!omitParticipantSignatures || !participantSignatures) { - // return; - // } - - // let transactionHex = transaction.serialized.toString("hex"); - - // omitParticipantSignatures.sort((a, b) => b - a); - - // for (const index of omitParticipantSignatures) { - // const signatureToOmit = participantSignatures[index]; - - // const signatureIndex = transactionHex.indexOf(signatureToOmit); - // transactionHex = transactionHex.slice(0, signatureIndex); - - // transaction.data.signatures!.splice(transaction.data.signatures!.indexOf(signatureToOmit), 1); - // } - - // transaction.serialized = Buffer.from(transactionHex, "hex"); -}; - export const getNonceByPublicKey = async (app: Contracts.Kernel.Application, publicKey: string): Promise => { const address = await app .get(Identifiers.Cryptography.Identity.Address.Factory) @@ -79,33 +53,9 @@ export const buildSignedTransaction = async ( - // Identifiers.Cryptography.Identity.PublicKey.Factory, - // "type", - // "wallet", - // ) - // .fromMultiSignatureAsset({ - // min: participants.length, - // publicKeys: participants.map((p) => p.publicKey), - // }); - - // const nonce = await getNonceByPublicKey(app, multiSigPublicKey); - - // const { multiSigKeys, nonceOffset = 0 } = options; - // builder = builder.nonce(nonce.plus(nonceOffset).toString()).senderPublicKey(multiSigPublicKey); - - // for (const [index, participant] of multiSigKeys.entries()) { - // builder = await builder.multiSignWithKeyPair(participant, index); - // } - } else { - const nonce = await getNonceByPublicKey(app, keyPair.publicKey); - const { nonceOffset = 0 } = options; - builder = await builder.nonce((nonce + BigInt(nonceOffset)).toString()).signWithKeyPair(keyPair); - } + const nonce = await getNonceByPublicKey(app, keyPair.publicKey); + const { nonceOffset = 0 } = options; + builder = await builder.nonce((nonce + BigInt(nonceOffset)).toString()).signWithKeyPair(keyPair); const transaction = await builder.build(); @@ -113,10 +63,6 @@ export const buildSignedTransaction = async