UNPKG

test-triam-base-contract

Version:

Low level triam smart cotnract support library

109 lines (99 loc) 3.22 kB
'use strict'; 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; };