node.js - Beräkna en keccak-hash från en fil som lagras på Arweave
Jag försöker beräkna en hash från en bildfil som är lagrad som .png på Arweave.
Metoden jag använder visas nedan, men jag är inte säker på om jag faktiskt använder metoderna i Node fetch-funktionen och ethers.js solidityKeccak256-funktionen på rätt sätt. Funktionen returnerar ett resultat som ser rätt ut, men jag är inte säker på om jag hanterar 'blob, stream och readers-funktionerna' korrekt, och angående användningen av typen "bytes" i solidityKeccak256, (så att någon som inte har sett min kod skulle komma fram till ett liknande resultat när de försöker härleda en Keccak-hash av filen).
Jag är inte säker på att jag har använt "blob" och "stream" korrekt och om "bytes" är rätt typ att ange till solidityKeccak256
[Typescript Node.js]
let file = await fetch(imageUrl); //an arweave url which return a .png
let blob = await file.blob()
let ar = (await blob.stream().getReader().read()).value;
let hash = ethers.utils.solidityKeccak256(["bytes"], [ar ]);
return hash;
Jag är också osäker på hur man gör samma process på filer som lagras på min lokala dator (även om de ligger utanför projektkatalogen) eftersom fetch inte fungerar lokalt. (Kan dock använda fs) Jag behöver försäkra mig om att oavsett om det lagras lokalt i arweave eller ipfs eller någon annanstans, är hashvärdet som returneras detsamma och inte svårt att replikera.