43 lines
1.1 KiB
JavaScript
43 lines
1.1 KiB
JavaScript
"use strict";
|
|
|
|
var Object = require("./object");
|
|
var types = {
|
|
"String" : require("./string"),
|
|
"Vocabulary": require("./vocabulary"),
|
|
"Uint64" : require("./uint64"),
|
|
"Address" : require("./address"),
|
|
"Boolean" : require("./boolean"),
|
|
"Event" : require("./event"),
|
|
"Vector" : require("./vector"),
|
|
"Blob" : require("./blob")
|
|
}
|
|
|
|
var storage = global.Object.create(null);
|
|
|
|
for (var name in types) {
|
|
if (types.hasOwnProperty(name)) {
|
|
var typeId = Object.objectType[name];
|
|
if (typeId === undefined) {
|
|
throw new Error("wType initialization error - can't find type id for type " + name);
|
|
}
|
|
storage[typeId] = types[name];
|
|
}
|
|
}
|
|
|
|
function create(/*ByteArray*/ba) {
|
|
var type = ba.pop8();
|
|
var Type = storage[type];
|
|
|
|
if (Type === undefined) {
|
|
throw new Error("Unsupported data type found during deserialization: " + type);
|
|
}
|
|
|
|
var obj = new Type();
|
|
obj.deserialize(ba);
|
|
|
|
return obj;
|
|
}
|
|
|
|
Object.fromByteArray = create;
|
|
module.exports = create;
|