test-triam-base-contract
Version:
Low level triam smart cotnract support library
109 lines (99 loc) • 3.22 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
var Storage = exports.Storage = function () {
function Storage(_storage) {
_classCallCheck(this, Storage);
if (_storage) {
this.storage = Object.assign({}, _storage);
} else {
this.storage = {};
}
}
_createClass(Storage, [{
key: 'set',
value: function set(_name, _data) {
if (this.storage.hasOwnProperty(_name)) {
throw new Error('storage has property' + _name);
}
this.storage[_name] = _data;
}
}, {
key: 'get',
value: function get(_name) {
return this.storage[_name];
}
}, {
key: 'remove',
value: function remove(_name) {
delete this.storage[_name];
}
}, {
key: 'update',
value: function update(_name, _data) {
if (!this.storage.hasOwnProperty(_name)) {
throw new Error('storage can not find property' + _name);
}
this.storage[_name] = _data;
}
}, {
key: 'save',
value: function save() {
var stringData = JSON.stringify(this.storage);
var ab = str2ab(stringData);
var buf = toBuffer(ab);
return buf.toString('hex');
}
}, {
key: 'recover',
value: function recover(_data) {
var _buf = Buffer.from(_data, 'hex');
var _ab = toArrayBuffer(_buf);
var _state = ab2str(_ab);
var loadState = JSON.parse(_state);
this.storage = Object.assign({}, this.storage, loadState);
return this.storage;
}
}, {
key: 'has',
value: function has(_name) {
return this.storage.hasOwnProperty(_name);
}
}, {
key: 'show',
value: function show() {
return this.storage;
}
}]);
return Storage;
}();
var ab2str = function ab2str(buf) {
return String.fromCharCode.apply(null, new Uint16Array(buf));
};
var str2ab = function str2ab(str) {
var buf = new ArrayBuffer(str.length * 2); // 2 bytes for each char
var bufView = new Uint16Array(buf);
for (var i = 0, strLen = str.length; i < strLen; i++) {
bufView[i] = str.charCodeAt(i);
}
return buf;
};
var toArrayBuffer = function toArrayBuffer(buf) {
var ab = new ArrayBuffer(buf.length);
var view = new Uint8Array(ab);
for (var i = 0; i < buf.length; ++i) {
view[i] = buf[i];
}
return ab;
};
var toBuffer = function toBuffer(ab) {
var buf = new Buffer(ab.byteLength);
var view = new Uint8Array(ab);
for (var i = 0; i < buf.length; ++i) {
buf[i] = view[i];
}
return buf;
};