diff --git a/yarn-project/pxe/src/database/kv_pxe_database.ts b/yarn-project/pxe/src/database/kv_pxe_database.ts index cfd620944fd..2b1956efa98 100644 --- a/yarn-project/pxe/src/database/kv_pxe_database.ts +++ b/yarn-project/pxe/src/database/kv_pxe_database.ts @@ -76,7 +76,8 @@ export class KVPxeDatabase implements PxeDatabase { getContractArtifact(id: Fr): Promise { const contract = this.#contractArtifacts.get(id.toString()); - return Promise.resolve(contract && contractArtifactFromBuffer(contract)); + // TODO(@spalladino): AztecMap lies and returns Uint8Arrays instead of Buffers, hence the extra Buffer.from. + return Promise.resolve(contract && contractArtifactFromBuffer(Buffer.from(contract))); } async addContractInstance(contract: ContractInstanceWithAddress): Promise { diff --git a/yarn-project/types/src/abi/contract_artifact.ts b/yarn-project/types/src/abi/contract_artifact.ts index cdbf3f90107..221fb7c80c4 100644 --- a/yarn-project/types/src/abi/contract_artifact.ts +++ b/yarn-project/types/src/abi/contract_artifact.ts @@ -17,7 +17,7 @@ import { mockVerificationKey } from './mocked_keys.js'; */ export function contractArtifactToBuffer(artifact: ContractArtifact): Buffer { // TODO(@spalladino): More efficient serialization - return Buffer.from(JSON.stringify(artifact)); + return Buffer.from(JSON.stringify(artifact), 'utf8'); } /** @@ -27,7 +27,7 @@ export function contractArtifactToBuffer(artifact: ContractArtifact): Buffer { */ export function contractArtifactFromBuffer(buffer: Buffer): ContractArtifact { // TODO(@spalladino): More efficient serialization - return JSON.parse(buffer.toString()) as ContractArtifact; + return JSON.parse(buffer.toString('utf8')) as ContractArtifact; } /**