Skip to content

Commit

Permalink
Providing Browser compatible version of library
Browse files Browse the repository at this point in the history
  • Loading branch information
ggarri committed May 15, 2019
1 parent 6f847fe commit 7a07585
Show file tree
Hide file tree
Showing 22 changed files with 4,317 additions and 67 deletions.
3 changes: 3 additions & 0 deletions .babelrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
{
"presets": ["@babel/preset-env"]
}
17 changes: 0 additions & 17 deletions index.js

This file was deleted.

Empty file added lib/.gitkeep
Empty file.
91 changes: 91 additions & 0 deletions lib/gateway/acl.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
"use strict";

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }

function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }

/**
* User: ggarrido
* Date: 4/02/19 11:04
* Copyright 2019 (c) Lightstreams, Palma
*/
var got = require('got');

var _require = require('../lib/response'),
parseResponse = _require.parseResponse,
errorResponse = _require.errorResponse;

var _require2 = require('../lib/request'),
defaultOptions = _require2.defaultOptions;

var GRANT_PERMISSIONS_PATH = '/acl/grant';
var PERMISSIONS = {
READ: 'read',
WRITE: 'write',
ADMIN: 'admin'
};

module.exports = function (gwDomain) {
return {
/**
* Grant certain file permissions to an account
* @param acl ACL address obtained after storing a file
* @param owner Account address of file's owner
* @param password The password that unlocks the account
* @param to Account address that will receive the permissions
* @param permission Permission type to grant (Enum:"read" "write" "admin")
* @returns {Promise<{ is_granted }>}
*/
grant: function () {
var _grant = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee(acl, owner, password, to, permission) {
var options, gwResponse;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
if (!(Object.values(PERMISSIONS).indexOf(permission) === -1)) {
_context.next = 2;
break;
}

throw errorResponse("\"".concat(permission, "\" is not a valid permission"));

case 2:
options = _objectSpread({}, defaultOptions, {
body: {
acl: acl,
owner: owner,
password: password,
to: to,
permission: permission
}
});
_context.next = 5;
return got.post("".concat(gwDomain).concat(GRANT_PERMISSIONS_PATH), options);

case 5:
gwResponse = _context.sent;
return _context.abrupt("return", parseResponse(gwResponse));

case 7:
case "end":
return _context.stop();
}
}
}, _callee);
}));

function grant(_x, _x2, _x3, _x4, _x5) {
return _grant.apply(this, arguments);
}

return grant;
}()
};
};
169 changes: 169 additions & 0 deletions lib/gateway/erc20.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,169 @@
"use strict";

function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; }

function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }

function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }

function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }

/**
* User: ggarrido
* Date: 4/02/19 11:22
* Copyright 2019 (c) Lightstreams, Palma
*/
var got = require('got');

var _require = require('../lib/response'),
parseResponse = _require.parseResponse;

var _require2 = require('../lib/request'),
defaultOptions = _require2.defaultOptions;

var ERC20_BALANCE_PATH = "/erc20/balance";
var ERC20_TRANSFER_PATH = "/erc20/transfer";
var ERC20_PURCHASE_PATH = "/erc20/purchase";

module.exports = function (gwDomain) {
return {
/**
* Get balance of any erc20 token
* @param erc20_address Address of the erc20 token contract
* @param account Account address for which to check the balance
* @returns {Promise<{ balance }>}
*/
balance: function () {
var _balance = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee(erc20_address, account) {
var options, gwResponse;
return regeneratorRuntime.wrap(function _callee$(_context) {
while (1) {
switch (_context.prev = _context.next) {
case 0:
options = _objectSpread({}, defaultOptions, {
query: {
erc20_address: erc20_address,
account: account
}
});
_context.next = 3;
return got.get("".concat(gwDomain).concat(ERC20_BALANCE_PATH), options);

case 3:
gwResponse = _context.sent;
return _context.abrupt("return", parseResponse(gwResponse));

case 5:
case "end":
return _context.stop();
}
}
}, _callee);
}));

function balance(_x, _x2) {
return _balance.apply(this, arguments);
}

return balance;
}(),

/**
* Transfer erc20 token to an account
* @param erc20_address ERC20 token address
* @param from Account address to transfer funds from
* @param password The password that unlocks the account
* @param to Account address to transfer funds to
* @param amount Amount in erc20 token
* @returns {Promise<*>}
*/
transfer: function () {
var _transfer = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee2(erc20_address, from, password, to, amount) {
var options, gwResponse;
return regeneratorRuntime.wrap(function _callee2$(_context2) {
while (1) {
switch (_context2.prev = _context2.next) {
case 0:
options = _objectSpread({}, defaultOptions, {
body: {
erc20_address: erc20_address,
from: from,
password: password,
to: to,
amount: amount.toString()
}
});
_context2.next = 3;
return got.post("".concat(gwDomain).concat(ERC20_TRANSFER_PATH), options);

case 3:
gwResponse = _context2.sent;
return _context2.abrupt("return", parseResponse(gwResponse));

case 5:
case "end":
return _context2.stop();
}
}
}, _callee2);
}));

function transfer(_x3, _x4, _x5, _x6, _x7) {
return _transfer.apply(this, arguments);
}

return transfer;
}(),

/**
* Sending tokens to ICO contract and purchase tokens
* @param erc20_address ERC20 token address
* @param account Account address to transfer funds from
* @param password The password that unlocks the account
* @param amount_wei Amount in wei to purchase
* @returns {Promise<{ tokens }>}
*/
purchase: function () {
var _purchase = _asyncToGenerator(
/*#__PURE__*/
regeneratorRuntime.mark(function _callee3(erc20_address, account, password, amount_wei) {
var options, gwResponse;
return regeneratorRuntime.wrap(function _callee3$(_context3) {
while (1) {
switch (_context3.prev = _context3.next) {
case 0:
options = _objectSpread({}, defaultOptions, {
body: {
erc20_address: erc20_address,
password: password,
account: account,
amount_wei: amount_wei.toString()
}
});
_context3.next = 3;
return got.post("".concat(gwDomain).concat(ERC20_PURCHASE_PATH), options);

case 3:
gwResponse = _context3.sent;
return _context3.abrupt("return", parseResponse(gwResponse));

case 5:
case "end":
return _context3.stop();
}
}
}, _callee3);
}));

function purchase(_x8, _x9, _x10, _x11) {
return _purchase.apply(this, arguments);
}

return purchase;
}()
};
};
Loading

0 comments on commit 7a07585

Please sign in to comment.