Skip to content

Commit 7298a2a

Browse files
Merge pull request #1280 from permaweb/feat/decode-anchor
feat: if byteLength !== 32 then base64 decode anchor
2 parents ad023fc + 46e3c38 commit 7298a2a

File tree

1 file changed

+9
-1
lines changed

1 file changed

+9
-1
lines changed

servers/cu/src/domain/lib/hydrateMessages.js

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,15 @@ export function maybeMessageIdWith ({ logger }) {
106106
*
107107
* See: https://github.com/permaweb/ao/issues/730
108108
*/
109-
.then(() => createData(isNil(data) ? '' : data, signer, { tags, target, anchor }))
109+
.then(() => {
110+
// Check if anchor needs to be decoded
111+
let processedAnchor = anchor
112+
if (anchor && typeof anchor === 'string' && Buffer.byteLength(anchor, 'utf8') !== 32) {
113+
// Decode base64url to get 32 bytes
114+
processedAnchor = Buffer.from(anchor, 'base64url')
115+
}
116+
return createData(isNil(data) ? '' : data, signer, { tags, target, anchor: processedAnchor })
117+
})
110118
.then((dataItem) => dataItem.getSignatureData())
111119
.then(bytesToBase64)
112120
}

0 commit comments

Comments
 (0)