@aeternity/aepp-calldata
Version:
Aeternity data serialization library
27 lines (22 loc) • 682 B
JavaScript
import RLP from 'rlp'
import FateTag from '../FateTag.js'
import BaseSerializer from './BaseSerializer.js'
import FateContractAddress from '../types/FateContractAddress.js'
class ContractSerializer extends BaseSerializer {
serialize(data) {
return [
FateTag.OBJECT,
FateTag.OTYPE_CONTRACT,
...RLP.encode(data.value)
]
}
deserializeStream(data) {
const buffer = new Uint8Array(data)
const decoded = RLP.decode(buffer.slice(2), true)
return [
new FateContractAddress(decoded.data),
new Uint8Array(decoded.remainder)
]
}
}
export default ContractSerializer