From d1da4f1329b651e8417621ce7ac9629cbd1d9227 Mon Sep 17 00:00:00 2001 From: DZariusz Date: Mon, 4 Nov 2024 15:44:05 +0100 Subject: [PATCH] fix bytes32 to string conversion --- CHANGELOG.md | 4 ++++ package.json | 2 +- src/services/ContractSynchronizer.ts | 11 ++++++++++- 3 files changed, 15 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ea75481..1842bb11 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. ## Unreleased +## [5.12.5] - 2024-11-04 +### Fixed +- Fix bytes32 to string conversion + ## [5.12.4] - 2024-11-04 ### Added - added more logs to tx fetcher diff --git a/package.json b/package.json index 214fee4b..dd502b72 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "sanctuary", - "version": "5.12.4", + "version": "5.12.5", "repository": { "type": "git", "url": "git+https://github.com/umbrella-network/sanctuary.git" diff --git a/src/services/ContractSynchronizer.ts b/src/services/ContractSynchronizer.ts index 9c11ec3c..f87cab96 100644 --- a/src/services/ContractSynchronizer.ts +++ b/src/services/ContractSynchronizer.ts @@ -167,13 +167,22 @@ export class ContractSynchronizer { return Promise.all( events.map((logRegistered) => { const { destination, anchor, bytes32 } = logRegistered; - const [name] = Buffer.from(bytes32.replace('0x', ''), 'hex').toString().split(']x00'); + const name = this.clearName(bytes32); this.logger.info(`${this.logPrefix}[${chainId}] Detected new ${name}: ${destination} at ${anchor}`); return this.contractRepository.save(chainId, anchor, name, destination); }) ); }; + private clearName = (bytes32: string): string => { + const b = Buffer.from(bytes32.replace('0x', ''), 'hex'); + let i = 0; + + while (b[i] != 0) i++; + + return b.slice(0, i).toString('utf-8'); + }; + private calculateBlockNumberRange = async ( chainId: ChainsIds, startBlockNumber: number,