From dbf259a51acf26c2a7359479c9632f6261cd46ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrei=20B=C4=83ncioiu?= Date: Tue, 14 May 2024 14:53:19 +0300 Subject: [PATCH] Tiny behavioral breaking change: remove some constraints when validating an address. --- src/constants.ts | 1 - src/transaction.spec.ts | 6 +----- src/transactionComputer.ts | 19 +++++-------------- 3 files changed, 6 insertions(+), 20 deletions(-) diff --git a/src/constants.ts b/src/constants.ts index 2a249392..c4795813 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -18,7 +18,6 @@ export const ESDT_CONTRACT_ADDRESS = "erd1qqqqqqqqqqqqqqqpqqqqqqqqqqqqqqqqqqqqqq export const DEFAULT_MESSAGE_VERSION = 1; export const MESSAGE_PREFIX = "\x17Elrond Signed Message:\n"; export const HEX_TRANSACTION_HASH_LENGTH = 64; -export const BECH32_ADDRESS_LENGTH = 62; export const CURRENT_NUMBER_OF_SHARDS_WITHOUT_META = 3; export const WasmVirtualMachine = "0500"; export const METACHAIN_ID = 4294967295; diff --git a/src/transaction.spec.ts b/src/transaction.spec.ts index c514a3ab..6775fbb9 100644 --- a/src/transaction.spec.ts +++ b/src/transaction.spec.ts @@ -1,3 +1,4 @@ +import { UserPublicKey, UserVerifier } from "@multiversx/sdk-wallet"; import BigNumber from "bignumber.js"; import { assert } from "chai"; import { Address } from "./address"; @@ -9,7 +10,6 @@ import { TokenTransfer } from "./tokens"; import { Transaction } from "./transaction"; import { TransactionComputer } from "./transactionComputer"; import { TransactionPayload } from "./transactionPayload"; -import { UserPublicKey, UserVerifier } from "@multiversx/sdk-wallet/out"; describe("test transaction", async () => { let wallets: Record; @@ -674,10 +674,6 @@ describe("test transaction", async () => { chainID: "", }); - assert.throws(() => { - transactionComputer.computeBytesForSigning(transaction); - }, "Invalid `sender` field. Should be the bech32 address of the sender."); - transaction.sender = wallets.alice.address.toBech32(); assert.throws(() => { diff --git a/src/transactionComputer.ts b/src/transactionComputer.ts index d4117a39..8ff65ff4 100644 --- a/src/transactionComputer.ts +++ b/src/transactionComputer.ts @@ -1,15 +1,14 @@ -import { INetworkConfig } from "./interfaceOfNetwork"; -import * as errors from "./errors"; import BigNumber from "bignumber.js"; -import { ITransaction } from "./interface"; -import { ProtoSerializer } from "./proto"; -import { Transaction } from "./transaction"; import { - BECH32_ADDRESS_LENGTH, MIN_TRANSACTION_VERSION_THAT_SUPPORTS_OPTIONS, TRANSACTION_OPTIONS_TX_GUARDED, TRANSACTION_OPTIONS_TX_HASH_SIGN, } from "./constants"; +import * as errors from "./errors"; +import { ITransaction } from "./interface"; +import { INetworkConfig } from "./interfaceOfNetwork"; +import { ProtoSerializer } from "./proto"; +import { Transaction } from "./transaction"; const createTransactionHasher = require("blake2b"); const createKeccakHash = require("keccak"); @@ -125,14 +124,6 @@ export class TransactionComputer { } private ensureValidTransactionFields(transaction: ITransaction) { - if (transaction.sender.length !== BECH32_ADDRESS_LENGTH) { - throw new errors.ErrBadUsage("Invalid `sender` field. Should be the bech32 address of the sender."); - } - - if (transaction.receiver.length !== BECH32_ADDRESS_LENGTH) { - throw new errors.ErrBadUsage("Invalid `receiver` field. Should be the bech32 address of the receiver."); - } - if (!transaction.chainID.length) { throw new errors.ErrBadUsage("The `chainID` field is not set"); }