const e = require("compact-encoding"),
d = {
preencode(d, i) {
;(d.end++,
e.fixed32.preencode(d, i.publicKey),
e.uint.preencode(d, i.capabilities),
i.expiration && e.uint.preencode(d, i.expiration),
i.uses && e.uint.preencode(d, i.uses))
},
encode(d, i) {
const n = d.start++
;(e.fixed32.encode(d, i.publicKey), e.uint.encode(d, i.capabilities))
let t = 0
;(i.expiration && ((t |= 1), e.uint.encode(d, i.expiration)),
i.uses && ((t |= 2), e.uint.encode(d, i.uses)),
i.reusable && (t |= 4),
(d.buffer[n] = t))
},
decode(d) {
const i = e.uint.decode(d)
return {
publicKey: e.fixed32.decode(d),
capabilities: e.uint.decode(d),
expiration: 1 & i ? e.uint.decode(d) : 0,
uses: 2 & i ? e.uint.decode(d) : 0,
reusable: !!(4 & i),
}
},
},
i = {
preencode(d, i) {
;(e.buffer.preencode(d, i.data), e.buffer.preencode(d, i.signature))
},
encode(d, i) {
;(e.buffer.encode(d, i.data), e.buffer.encode(d, i.signature))
},
decode: (d) => ({ data: e.buffer.decode(d), signature: e.buffer.decode(d) }),
},
n = {
preencode(d, n) {
let t = 0
;(n.expiration && (t |= 1),
n.uses && (t |= 2),
n.reusable && (t |= 4),
n.attestsTo && (t |= 8),
n.additional && (t |= 16),
e.uint.preencode(d, t),
e.fixed32.preencode(d, n.publicKey),
e.uint.preencode(d, n.capabilities),
n.expiration && e.uint.preencode(d, n.expiration),
n.uses && e.uint.preencode(d, n.uses),
n.attestsTo && e.fixed32.preencode(d, n.attestsTo),
n.additional && i.preencode(d, n.additional))
},
encode(d, n) {
let t = 0
;(n.expiration && (t |= 1),
n.uses && (t |= 2),
n.reusable && (t |= 4),
n.attestsTo && (t |= 8),
n.additional && (t |= 16),
e.uint.encode(d, t),
e.fixed32.encode(d, n.publicKey),
e.uint.encode(d, n.capabilities),
n.expiration && e.uint.encode(d, n.expiration),
n.uses && e.uint.encode(d, n.uses),
n.attestsTo && e.fixed32.encode(d, n.attestsTo),
n.additional && i.encode(d, n.additional))
},
decode(d) {
const n = e.uint.decode(d)
return {
publicKey: e.fixed32.decode(d),
capabilities: e.uint.decode(d),
expiration: 1 & n ? e.uint.decode(d) : 0,
uses: 2 & n ? e.uint.decode(d) : 0,
reusable: !!(4 & n),
attestsTo: 8 & n ? e.fixed32.decode(d) : null,
additional: 16 & n ? i.decode(d) : null,
}
},
},
t = {
preencode(d, i) {
;(e.fixed32.preencode(d, i.deviceKey),
e.fixed32.preencode(d, i.noisePublicKey),
i.attestation
? e.buffer.preencode(d, i.attestation)
: i.deviceName && e.buffer.preencode(d, null))
let n = 0
;(i.deviceName && (n |= 1),
e.uint.preencode(d, n),
i.deviceName && e.string.preencode(d, i.deviceName))
},
encode(d, i) {
;(e.fixed32.encode(d, i.deviceKey),
e.fixed32.encode(d, i.noisePublicKey),
i.attestation
? e.buffer.encode(d, i.attestation)
: i.deviceName && e.buffer.encode(d, null))
let n = 0
;(i.deviceName && (n |= 1),
e.uint.encode(d, n),
i.deviceName && e.string.encode(d, i.deviceName))
},
decode(d) {
const i = {
deviceKey: e.fixed32.decode(d),
noisePublicKey: e.fixed32.decode(d),
attestation: d.start < d.end ? e.buffer.decode(d) : null,
deviceName: null,
}
if (d.start < d.end) {
const n = e.uint.decode(d)
i.deviceName = 1 & n ? e.string.decode(d) : null
}
return i
},
}
module.exports = { InvitationRecordV1: d, InvitationRecord: n, InvitationUserData: t }