@aeternity/aepp-sdk
Version:
SDK for the æternity blockchain
148 lines (134 loc) • 6.28 kB
JavaScript
import _Object$keys from "@babel/runtime-corejs3/core-js-stable/object/keys";
import _Object$getOwnPropertySymbols from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols";
import _Object$getOwnPropertyDescriptor from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor";
import _forEachInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/for-each";
import _Object$getOwnPropertyDescriptors from "@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors";
import _Object$defineProperties from "@babel/runtime-corejs3/core-js-stable/object/define-properties";
import _Object$defineProperty from "@babel/runtime-corejs3/core-js-stable/object/define-property";
import _typeof from "@babel/runtime-corejs3/helpers/typeof";
import _asyncToGenerator from "@babel/runtime-corejs3/helpers/asyncToGenerator";
import _defineProperty from "@babel/runtime-corejs3/helpers/defineProperty";
import _filterInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/filter";
import _findInstanceProperty from "@babel/runtime-corejs3/core-js-stable/instance/find";
import _regeneratorRuntime from "@babel/runtime-corejs3/regenerator";
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); if (enumerableOnly) symbols = _filterInstanceProperty(symbols).call(symbols, function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { var _context3; _forEachInstanceProperty(_context3 = ownKeys(Object(source), true)).call(_context3, function (key) { _defineProperty(target, key, source[key]); }); } else if (_Object$getOwnPropertyDescriptors) { _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)); } else { var _context4; _forEachInstanceProperty(_context4 = ownKeys(Object(source))).call(_context4, function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } } return target; }
/**
* Browser helper functions
*/
import { isAccountBase } from '../../account/base';
export var getBrowserAPI = function getBrowserAPI() {
var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
var _window = window,
chrome = _window.chrome,
browser = _window.browser; // Chrome, Opera support
if (typeof chrome !== 'undefined' && chrome === Object(chrome)) return chrome; // Firefox support
if (typeof browser !== 'undefined' && browser === Object(browser)) return browser;
if (!force) throw new Error('Browser is not detected');
return {};
};
export var isInIframe = function isInIframe() {
return window !== window.parent;
};
/**
* RPC helper functions
*/
export var sendMessage = function sendMessage(connection) {
var messageId = 0;
return function (_ref) {
var id = _ref.id,
method = _ref.method,
params = _ref.params,
result = _ref.result,
error = _ref.error;
var isNotificationOrResponse = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
// Increment id for each request
isNotificationOrResponse || (messageId += 1);
id = isNotificationOrResponse ? id || null : messageId;
var msgData = params ? {
params: params
} : result ? {
result: result
} : {
error: error
};
connection.sendMessage(_objectSpread(_objectSpread({
jsonrpc: '2.0'
}, id ? {
id: id
} : {}), {}, {
method: method
}, msgData));
return id;
};
};
export var getHandler = function getHandler(schema, msg) {
var _ref2 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
_ref2$debug = _ref2.debug,
debug = _ref2$debug === void 0 ? false : _ref2$debug;
var handler = schema[msg.method];
if (!handler || typeof handler !== 'function') {
debug && console.log("Unknown message method ".concat(msg.method));
return function () {
return /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
return _regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
return _context.abrupt("return", true);
case 1:
case "end":
return _context.stop();
}
}
}, _callee);
}));
};
}
return handler;
};
export var message = function message(method) {
var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
return {
method: method,
params: params
};
};
export var responseMessage = function responseMessage(id, method) {
var _ref4 = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},
error = _ref4.error,
result = _ref4.result;
return _objectSpread({
id: id,
method: method
}, error ? {
error: error
} : {
result: result
});
};
export var sendResponseMessage = function sendResponseMessage(client) {
return function (id, method, data) {
return client.sendMessage(responseMessage(id, method, data), true);
};
};
export var voidFn = function voidFn() {
return undefined;
};
export var isValidAccounts = function isValidAccounts(accounts) {
var _context2;
return _filterInstanceProperty(_context2 = ['', 'connected', 'current']).call(_context2, function (k) {
return _typeof(k ? accounts[k] : accounts) === 'object';
}).length === 3;
};
export var resolveOnAccount = function resolveOnAccount(addresses, onAccount) {
var opt = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
if (!_findInstanceProperty(addresses).call(addresses, function (a) {
return a === onAccount;
})) {
if (_typeof(opt.onAccount) !== 'object' || !isAccountBase(opt.onAccount)) throw new Error('Provided onAccount should be an AccountBase');
onAccount = opt.onAccount;
}
return onAccount;
};
//# sourceMappingURL=helpers.js.map