Skip to content

Instantly share code, notes, and snippets.

@vilenarios
Created December 19, 2023 16:19
Show Gist options
  • Save vilenarios/9a7ae0ee7d616fe4c4147c14fa9014ee to your computer and use it in GitHub Desktop.
Save vilenarios/9a7ae0ee7d616fe4c4147c14fa9014ee to your computer and use it in GitHub Desktop.
Verify a Turbo Receipt
static async verifyReceipt(
dependencies: Pick<Arbundles, "stringToBuffer" | "getCryptoDriver" | "deepHash">,
receipt: UploadReceiptData,
): Promise<boolean> {
const { id, deadlineHeight, timestamp, public: pubKey, signature, version } = receipt;
const dh = await dependencies.deepHash([
dependencies.stringToBuffer("Bundlr"),
dependencies.stringToBuffer(version),
dependencies.stringToBuffer(id),
dependencies.stringToBuffer(deadlineHeight.toString()),
dependencies.stringToBuffer(timestamp.toString()),
]);
return await dependencies.getCryptoDriver().verify(pubKey, dh, base64url.toBuffer(signature));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment