├── README.md ├── audit-reports ├── ChainSecurity-Zilliqa-Audit.pdf └── ZKLabs-Zilliqa-Audit.pdf ├── contracts ├── .DS_Store ├── Migrations.sol ├── ZilliqaToken.sol └── zeppelin │ ├── .DS_Store │ ├── lifecycle │ └── Pausable.sol │ ├── math │ ├── .DS_Store │ └── SafeMath.sol │ ├── ownership │ └── Ownable.sol │ └── token │ ├── BasicToken.sol │ ├── ERC20.sol │ ├── ERC20Basic.sol │ ├── PausableToken.sol │ └── StandardToken.sol ├── migrations ├── 1_initial_migration.js └── 2_deploy_contracts.js ├── package-lock.json ├── package.json ├── test ├── .DS_Store ├── helpers.js └── token.js └── truffle.js /README.md: -------------------------------------------------------------------------------- 1 | # Zilliqa Token Generation 2 | Preminted tokens are allocated to early \& community contributors, company, team and agencies. Detailed can be found in our blog post at https://blog.zilliqa.com/more-details-on-zilliqas-token-generation-event-4e1b78e0cf5a. 3 | 4 | Our token generation smart contracts have already been audited by [ChainSecurity](http://chainsecurity.com/) and 5 | [Zero Knowledge Labs](http://zklabs.io/). The audit reports can be found at 6 | https://docs.zilliqa.com/ChainSecurity-Zilliqa-Audit.pdf and https://docs.zilliqa.com/ZKLabs-Zilliqa-Audit.pdf or in the folder named `audit-reports`. 7 | 8 | ## Deployment Flow 9 | 10 | - Deploy `ZilliqaToken.sol`. The listing can be done by a standard private key or a multi-sig key, which is the owner of the contract. The Zilliqa token, inheriting from custom PausableToken, gets deployed by this contract. An admin account address and the total amount of tokens are passed and used to initialize the Zilliqa token. Token transfers are initially only allowed for the owner of the contract and admin account. 11 | 12 | - The pre-minted tokens are initially assigned to the owner's account. They may be then sent to the admin address ([Bitcoin Suisse](https://www.bitcoinsuisse.ch/)). The admin account may also transfer tokens initially. No other public account can send/receive during this period. 13 | 14 | - The admin address should distribute the tokens to individual contributor accounts during this period. 15 | 16 | - At some time `T1`, `token.pause(false, false)` may be called which will enable transfers of the zilliqa token for everyone. 17 | 18 | - At some time in the future, `token.pause(true, true)` may be called by the owner. This would stop all transfers for everyone (public, admin and owner). Only token burning would be allowed at this stage. 19 | 20 | 21 | ## Deployment Config 22 | 23 | In `/migrations/2_deploy_contracts.js`, we may specify the admin account address and total number of tokens. E.g. 24 | 25 | ``` 26 | var admin = "0x123"; 27 | var totalTokenAmount = 200; 28 | ``` 29 | 30 | ## Deployment Steps 31 | 32 | ### Deploy using truffle: 33 | 34 | To test on the Ropsten network, execute `truffle migrate --network ropsten` which uses the existing API keys in `/truffle.js`. 35 | 36 | To deploy on mainnet, execute `truffle migrate`. 37 | 38 | 39 | ## Per module description 40 | The system has 1 main module - the token module. 41 | 42 | ### Token 43 | Implemented in `ZilliqaToken.sol`. The token is fully compatible with ERC20 standard, with some additions: 44 | 45 | 1. It has a burning functionality that allows user to burn their tokens. 46 | To optimize gas cost, an auxiliary `burnFrom` function was also implemented. 47 | This function allows sender to burn tokens that were approved by a spender. 48 | 49 | 2. Only the owner and admin accounts are allowed to transfer tokens before the transfer period starts. No token transfer would be allowed after calling `pause(true, true)` in the future. 50 | 51 | ### Pause States 52 | 53 | There are 2 flags, `pausedPublic` and `pausedOwnerAdmin`. 54 | 1. In the initial stage, `pausedPublic` is `true` and `pausedOwnerAdmin` is `false`. This means only the owner and admin can transfer tokens. 55 | 2. In the second stage, `pausedPublic` and `pausedOwnerAdmin` both are `false`. Everybody can transfer tokens in this stage. 56 | 3. In the final stage (lock up), `pausedPublic` and `pausedOwnerAdmin` both are `true`. Nobody can now transfer tokens. 57 | 4. Tokens can be burnt at any time by anyone. 58 | 59 | 2. Only the owner and admin accounts are allowed to transfer tokens before the transfer period starts. No token transfer would be allowed after calling `pause(true, true)` in the future. 60 | 61 | 62 | ## Use of zeppelin code 63 | We use open-zepplin code for `SafeMath`, `Ownable`, `StandardToken` and `Pausable` logic. 64 | 65 | -------------------------------------------------------------------------------- /audit-reports/ChainSecurity-Zilliqa-Audit.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zilliqa/Zilliqa-ERC20-Token/7c47f528cd8f952eb99e1b06c3f3b93371dff841/audit-reports/ChainSecurity-Zilliqa-Audit.pdf -------------------------------------------------------------------------------- /audit-reports/ZKLabs-Zilliqa-Audit.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zilliqa/Zilliqa-ERC20-Token/7c47f528cd8f952eb99e1b06c3f3b93371dff841/audit-reports/ZKLabs-Zilliqa-Audit.pdf -------------------------------------------------------------------------------- /contracts/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zilliqa/Zilliqa-ERC20-Token/7c47f528cd8f952eb99e1b06c3f3b93371dff841/contracts/.DS_Store -------------------------------------------------------------------------------- /contracts/Migrations.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.8; 2 | 3 | contract Migrations { 4 | address public owner; 5 | 6 | // A function with the signature `last_completed_migration()`, returning a uint, is required. 7 | uint public last_completed_migration; 8 | 9 | modifier restricted() { 10 | if (msg.sender == owner) _; 11 | } 12 | 13 | function Migrations() { 14 | owner = msg.sender; 15 | } 16 | 17 | // A function with the signature `setCompleted(uint)` is required. 18 | function setCompleted(uint completed) restricted { 19 | last_completed_migration = completed; 20 | } 21 | 22 | function upgrade(address new_address) restricted { 23 | Migrations upgraded = Migrations(new_address); 24 | upgraded.setCompleted(last_completed_migration); 25 | } 26 | } -------------------------------------------------------------------------------- /contracts/ZilliqaToken.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.18; 2 | 3 | import './zeppelin/token/PausableToken.sol'; 4 | 5 | contract ZilliqaToken is PausableToken { 6 | string public constant name = "Zilliqa"; 7 | string public constant symbol = "ZIL"; 8 | uint8 public constant decimals = 12; 9 | 10 | modifier validDestination( address to ) 11 | { 12 | require(to != address(0x0)); 13 | require(to != address(this)); 14 | _; 15 | } 16 | 17 | function ZilliqaToken( address _admin, uint _totalTokenAmount ) 18 | { 19 | // assign the admin account 20 | admin = _admin; 21 | 22 | // assign the total tokens to zilliqa 23 | totalSupply = _totalTokenAmount; 24 | balances[msg.sender] = _totalTokenAmount; 25 | Transfer(address(0x0), msg.sender, _totalTokenAmount); 26 | } 27 | 28 | function transfer(address _to, uint _value) validDestination(_to) returns (bool) 29 | { 30 | return super.transfer(_to, _value); 31 | } 32 | 33 | function transferFrom(address _from, address _to, uint _value) validDestination(_to) returns (bool) 34 | { 35 | return super.transferFrom(_from, _to, _value); 36 | } 37 | 38 | event Burn(address indexed _burner, uint _value); 39 | 40 | function burn(uint _value) returns (bool) 41 | { 42 | balances[msg.sender] = balances[msg.sender].sub(_value); 43 | totalSupply = totalSupply.sub(_value); 44 | Burn(msg.sender, _value); 45 | Transfer(msg.sender, address(0x0), _value); 46 | return true; 47 | } 48 | 49 | // save some gas by making only one contract call 50 | function burnFrom(address _from, uint256 _value) returns (bool) 51 | { 52 | assert( transferFrom( _from, msg.sender, _value ) ); 53 | return burn(_value); 54 | } 55 | 56 | function emergencyERC20Drain( ERC20 token, uint amount ) onlyOwner { 57 | // owner can drain tokens that are sent here by mistake 58 | token.transfer( owner, amount ); 59 | } 60 | 61 | event AdminTransferred(address indexed previousAdmin, address indexed newAdmin); 62 | 63 | function changeAdmin(address newAdmin) onlyOwner { 64 | // owner can re-assign the admin 65 | AdminTransferred(admin, newAdmin); 66 | admin = newAdmin; 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /contracts/zeppelin/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zilliqa/Zilliqa-ERC20-Token/7c47f528cd8f952eb99e1b06c3f3b93371dff841/contracts/zeppelin/.DS_Store -------------------------------------------------------------------------------- /contracts/zeppelin/lifecycle/Pausable.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.18; 2 | 3 | // custom Pausable implementation for Zilliqa 4 | 5 | import "../ownership/Ownable.sol"; 6 | 7 | 8 | /** 9 | * @title Pausable 10 | * @dev Base contract which allows children to implement an emergency stop mechanism. 11 | */ 12 | contract Pausable is Ownable { 13 | event PausePublic(bool newState); 14 | event PauseOwnerAdmin(bool newState); 15 | 16 | bool public pausedPublic = true; 17 | bool public pausedOwnerAdmin = false; 18 | 19 | address public admin; 20 | 21 | /** 22 | * @dev Modifier to make a function callable based on pause states. 23 | */ 24 | modifier whenNotPaused() { 25 | if(pausedPublic) { 26 | if(!pausedOwnerAdmin) { 27 | require(msg.sender == admin || msg.sender == owner); 28 | } else { 29 | revert(); 30 | } 31 | } 32 | _; 33 | } 34 | 35 | /** 36 | * @dev called by the owner to set new pause flags 37 | * pausedPublic can't be false while pausedOwnerAdmin is true 38 | */ 39 | function pause(bool newPausedPublic, bool newPausedOwnerAdmin) onlyOwner public { 40 | require(!(newPausedPublic == false && newPausedOwnerAdmin == true)); 41 | 42 | pausedPublic = newPausedPublic; 43 | pausedOwnerAdmin = newPausedOwnerAdmin; 44 | 45 | PausePublic(newPausedPublic); 46 | PauseOwnerAdmin(newPausedOwnerAdmin); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /contracts/zeppelin/math/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zilliqa/Zilliqa-ERC20-Token/7c47f528cd8f952eb99e1b06c3f3b93371dff841/contracts/zeppelin/math/.DS_Store -------------------------------------------------------------------------------- /contracts/zeppelin/math/SafeMath.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.18; 2 | 3 | 4 | /** 5 | * @title SafeMath 6 | * @dev Math operations with safety checks that throw on error 7 | */ 8 | library SafeMath { 9 | function mul(uint256 a, uint256 b) internal pure returns (uint256) { 10 | if (a == 0) { 11 | return 0; 12 | } 13 | uint256 c = a * b; 14 | assert(c / a == b); 15 | return c; 16 | } 17 | 18 | function div(uint256 a, uint256 b) internal pure returns (uint256) { 19 | // assert(b > 0); // Solidity automatically throws when dividing by 0 20 | uint256 c = a / b; 21 | // assert(a == b * c + a % b); // There is no case in which this doesn't hold 22 | return c; 23 | } 24 | 25 | function sub(uint256 a, uint256 b) internal pure returns (uint256) { 26 | assert(b <= a); 27 | return a - b; 28 | } 29 | 30 | function add(uint256 a, uint256 b) internal pure returns (uint256) { 31 | uint256 c = a + b; 32 | assert(c >= a); 33 | return c; 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /contracts/zeppelin/ownership/Ownable.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.18; 2 | 3 | 4 | /** 5 | * @title Ownable 6 | * @dev The Ownable contract has an owner address, and provides basic authorization control 7 | * functions, this simplifies the implementation of "user permissions". 8 | */ 9 | contract Ownable { 10 | address public owner; 11 | 12 | 13 | event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); 14 | 15 | 16 | /** 17 | * @dev The Ownable constructor sets the original `owner` of the contract to the sender 18 | * account. 19 | */ 20 | function Ownable() public { 21 | owner = msg.sender; 22 | } 23 | 24 | 25 | /** 26 | * @dev Throws if called by any account other than the owner. 27 | */ 28 | modifier onlyOwner() { 29 | require(msg.sender == owner); 30 | _; 31 | } 32 | 33 | 34 | /** 35 | * @dev Allows the current owner to transfer control of the contract to a newOwner. 36 | * @param newOwner The address to transfer ownership to. 37 | */ 38 | function transferOwnership(address newOwner) public onlyOwner { 39 | require(newOwner != address(0)); 40 | OwnershipTransferred(owner, newOwner); 41 | owner = newOwner; 42 | } 43 | 44 | } 45 | -------------------------------------------------------------------------------- /contracts/zeppelin/token/BasicToken.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.18; 2 | 3 | 4 | import './ERC20Basic.sol'; 5 | import '../math/SafeMath.sol'; 6 | 7 | 8 | /** 9 | * @title Basic token 10 | * @dev Basic version of StandardToken, with no allowances. 11 | */ 12 | contract BasicToken is ERC20Basic { 13 | using SafeMath for uint256; 14 | 15 | mapping(address => uint256) balances; 16 | 17 | /** 18 | * @dev transfer token for a specified address 19 | * @param _to The address to transfer to. 20 | * @param _value The amount to be transferred. 21 | */ 22 | function transfer(address _to, uint256 _value) public returns (bool) { 23 | require(_to != address(0)); 24 | require(_value <= balances[msg.sender]); 25 | 26 | // SafeMath.sub will throw if there is not enough balance. 27 | balances[msg.sender] = balances[msg.sender].sub(_value); 28 | balances[_to] = balances[_to].add(_value); 29 | Transfer(msg.sender, _to, _value); 30 | return true; 31 | } 32 | 33 | /** 34 | * @dev Gets the balance of the specified address. 35 | * @param _owner The address to query the the balance of. 36 | * @return An uint256 representing the amount owned by the passed address. 37 | */ 38 | function balanceOf(address _owner) public view returns (uint256 balance) { 39 | return balances[_owner]; 40 | } 41 | 42 | } 43 | -------------------------------------------------------------------------------- /contracts/zeppelin/token/ERC20.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.18; 2 | 3 | 4 | import './ERC20Basic.sol'; 5 | 6 | 7 | /** 8 | * @title ERC20 interface 9 | * @dev see https://github.com/ethereum/EIPs/issues/20 10 | */ 11 | contract ERC20 is ERC20Basic { 12 | function allowance(address owner, address spender) public view returns (uint256); 13 | function transferFrom(address from, address to, uint256 value) public returns (bool); 14 | function approve(address spender, uint256 value) public returns (bool); 15 | event Approval(address indexed owner, address indexed spender, uint256 value); 16 | } 17 | -------------------------------------------------------------------------------- /contracts/zeppelin/token/ERC20Basic.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.18; 2 | 3 | 4 | /** 5 | * @title ERC20Basic 6 | * @dev Simpler version of ERC20 interface 7 | * @dev see https://github.com/ethereum/EIPs/issues/179 8 | */ 9 | contract ERC20Basic { 10 | uint256 public totalSupply; 11 | function balanceOf(address who) public view returns (uint256); 12 | function transfer(address to, uint256 value) public returns (bool); 13 | event Transfer(address indexed from, address indexed to, uint256 value); 14 | } 15 | -------------------------------------------------------------------------------- /contracts/zeppelin/token/PausableToken.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.18; 2 | 3 | import './StandardToken.sol'; 4 | import '../lifecycle/Pausable.sol'; 5 | 6 | /** 7 | * @title Pausable token 8 | * 9 | * @dev StandardToken modified with pausable transfers. 10 | **/ 11 | 12 | contract PausableToken is StandardToken, Pausable { 13 | 14 | function transfer(address _to, uint256 _value) public whenNotPaused returns (bool) { 15 | return super.transfer(_to, _value); 16 | } 17 | 18 | function transferFrom(address _from, address _to, uint256 _value) public whenNotPaused returns (bool) { 19 | return super.transferFrom(_from, _to, _value); 20 | } 21 | 22 | function approve(address _spender, uint256 _value) public whenNotPaused returns (bool) { 23 | return super.approve(_spender, _value); 24 | } 25 | 26 | function increaseApproval(address _spender, uint _addedValue) public whenNotPaused returns (bool success) { 27 | return super.increaseApproval(_spender, _addedValue); 28 | } 29 | 30 | function decreaseApproval(address _spender, uint _subtractedValue) public whenNotPaused returns (bool success) { 31 | return super.decreaseApproval(_spender, _subtractedValue); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /contracts/zeppelin/token/StandardToken.sol: -------------------------------------------------------------------------------- 1 | pragma solidity ^0.4.18; 2 | 3 | 4 | import './BasicToken.sol'; 5 | import './ERC20.sol'; 6 | 7 | 8 | /** 9 | * @title Standard ERC20 token 10 | * 11 | * @dev Implementation of the basic standard token. 12 | * @dev https://github.com/ethereum/EIPs/issues/20 13 | * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol 14 | */ 15 | contract StandardToken is ERC20, BasicToken { 16 | 17 | mapping (address => mapping (address => uint256)) internal allowed; 18 | 19 | 20 | /** 21 | * @dev Transfer tokens from one address to another 22 | * @param _from address The address which you want to send tokens from 23 | * @param _to address The address which you want to transfer to 24 | * @param _value uint256 the amount of tokens to be transferred 25 | */ 26 | function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { 27 | require(_to != address(0)); 28 | require(_value <= balances[_from]); 29 | require(_value <= allowed[_from][msg.sender]); 30 | 31 | balances[_from] = balances[_from].sub(_value); 32 | balances[_to] = balances[_to].add(_value); 33 | allowed[_from][msg.sender] = allowed[_from][msg.sender].sub(_value); 34 | Transfer(_from, _to, _value); 35 | return true; 36 | } 37 | 38 | /** 39 | * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. 40 | * 41 | * Beware that changing an allowance with this method brings the risk that someone may use both the old 42 | * and the new allowance by unfortunate transaction ordering. One possible solution to mitigate this 43 | * race condition is to first reduce the spender's allowance to 0 and set the desired value afterwards: 44 | * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 45 | * @param _spender The address which will spend the funds. 46 | * @param _value The amount of tokens to be spent. 47 | */ 48 | function approve(address _spender, uint256 _value) public returns (bool) { 49 | allowed[msg.sender][_spender] = _value; 50 | Approval(msg.sender, _spender, _value); 51 | return true; 52 | } 53 | 54 | /** 55 | * @dev Function to check the amount of tokens that an owner allowed to a spender. 56 | * @param _owner address The address which owns the funds. 57 | * @param _spender address The address which will spend the funds. 58 | * @return A uint256 specifying the amount of tokens still available for the spender. 59 | */ 60 | function allowance(address _owner, address _spender) public view returns (uint256) { 61 | return allowed[_owner][_spender]; 62 | } 63 | 64 | /** 65 | * approve should be called when allowed[_spender] == 0. To increment 66 | * allowed value is better to use this function to avoid 2 calls (and wait until 67 | * the first transaction is mined) 68 | * From MonolithDAO Token.sol 69 | */ 70 | function increaseApproval(address _spender, uint _addedValue) public returns (bool) { 71 | allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); 72 | Approval(msg.sender, _spender, allowed[msg.sender][_spender]); 73 | return true; 74 | } 75 | 76 | function decreaseApproval(address _spender, uint _subtractedValue) public returns (bool) { 77 | uint oldValue = allowed[msg.sender][_spender]; 78 | if (_subtractedValue > oldValue) { 79 | allowed[msg.sender][_spender] = 0; 80 | } else { 81 | allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); 82 | } 83 | Approval(msg.sender, _spender, allowed[msg.sender][_spender]); 84 | return true; 85 | } 86 | 87 | } 88 | -------------------------------------------------------------------------------- /migrations/1_initial_migration.js: -------------------------------------------------------------------------------- 1 | var Migrations = artifacts.require("./Migrations.sol"); 2 | 3 | module.exports = function(deployer) { 4 | //deployer.deploy(Migrations); 5 | }; 6 | -------------------------------------------------------------------------------- /migrations/2_deploy_contracts.js: -------------------------------------------------------------------------------- 1 | var Token = artifacts.require("./ZilliqaToken.sol"); 2 | 3 | var tokenContract; 4 | 5 | module.exports = function(deployer) { 6 | var admin = "0x9e389b3b8322C2fAA5F8539E34845455D848d407"; // BTC suisse account address 7 | var totalTokenAmount = 12.6 * 1000000000 * 1000000000000; 8 | 9 | return Token.new(admin, totalTokenAmount).then(function(result) { 10 | tokenContract = result; 11 | }); 12 | }; 13 | -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zilliqa-token-contract", 3 | "version": "1.0.0", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "abstract-leveldown": { 8 | "version": "2.6.3", 9 | "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.3.tgz", 10 | "integrity": "sha512-2++wDf/DYqkPR3o5tbfdhF96EfMApo1GpPfzOsR/ZYXdkSmELlvOOEAl9iKkRsktMPHdGjO4rtkBpf2I7TiTeA==", 11 | "requires": { 12 | "xtend": "4.0.1" 13 | } 14 | }, 15 | "aes-js": { 16 | "version": "0.2.4", 17 | "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-0.2.4.tgz", 18 | "integrity": "sha1-lLiBq3FyhtAV+iGeCPtmcJ3aWj0=" 19 | }, 20 | "ajv": { 21 | "version": "5.3.0", 22 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.3.0.tgz", 23 | "integrity": "sha1-RBT/dKUIecII7l/cgm4ywwNUnto=", 24 | "requires": { 25 | "co": "4.6.0", 26 | "fast-deep-equal": "1.0.0", 27 | "fast-json-stable-stringify": "2.0.0", 28 | "json-schema-traverse": "0.3.1" 29 | } 30 | }, 31 | "ansi-regex": { 32 | "version": "2.1.1", 33 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", 34 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" 35 | }, 36 | "ansi-styles": { 37 | "version": "2.2.1", 38 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", 39 | "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" 40 | }, 41 | "aproba": { 42 | "version": "1.2.0", 43 | "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", 44 | "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==" 45 | }, 46 | "are-we-there-yet": { 47 | "version": "1.1.4", 48 | "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", 49 | "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", 50 | "requires": { 51 | "delegates": "1.0.0", 52 | "readable-stream": "2.3.3" 53 | } 54 | }, 55 | "asn1": { 56 | "version": "0.2.3", 57 | "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", 58 | "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" 59 | }, 60 | "assert-plus": { 61 | "version": "1.0.0", 62 | "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", 63 | "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" 64 | }, 65 | "async": { 66 | "version": "2.5.0", 67 | "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", 68 | "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", 69 | "requires": { 70 | "lodash": "4.17.4" 71 | } 72 | }, 73 | "async-eventemitter": { 74 | "version": "0.2.4", 75 | "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.4.tgz", 76 | "integrity": "sha512-pd20BwL7Yt1zwDFy+8MX8F1+WCT8aQeKj0kQnTrH9WaeRETlRamVhD0JtRPmrV4GfOJ2F9CvdQkZeZhnh2TuHw==", 77 | "requires": { 78 | "async": "2.5.0" 79 | } 80 | }, 81 | "asynckit": { 82 | "version": "0.4.0", 83 | "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", 84 | "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" 85 | }, 86 | "aws-sign2": { 87 | "version": "0.7.0", 88 | "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", 89 | "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=" 90 | }, 91 | "aws4": { 92 | "version": "1.6.0", 93 | "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", 94 | "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" 95 | }, 96 | "babel-code-frame": { 97 | "version": "6.26.0", 98 | "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz", 99 | "integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=", 100 | "requires": { 101 | "chalk": "1.1.3", 102 | "esutils": "2.0.2", 103 | "js-tokens": "3.0.2" 104 | } 105 | }, 106 | "babel-core": { 107 | "version": "6.26.0", 108 | "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.26.0.tgz", 109 | "integrity": "sha1-rzL3izGm/O8RnIew/Y2XU/A6C7g=", 110 | "requires": { 111 | "babel-code-frame": "6.26.0", 112 | "babel-generator": "6.26.0", 113 | "babel-helpers": "6.24.1", 114 | "babel-messages": "6.23.0", 115 | "babel-register": "6.26.0", 116 | "babel-runtime": "6.26.0", 117 | "babel-template": "6.26.0", 118 | "babel-traverse": "6.26.0", 119 | "babel-types": "6.26.0", 120 | "babylon": "6.18.0", 121 | "convert-source-map": "1.5.0", 122 | "debug": "2.6.8", 123 | "json5": "0.5.1", 124 | "lodash": "4.17.4", 125 | "minimatch": "3.0.4", 126 | "path-is-absolute": "1.0.1", 127 | "private": "0.1.8", 128 | "slash": "1.0.0", 129 | "source-map": "0.5.7" 130 | } 131 | }, 132 | "babel-generator": { 133 | "version": "6.26.0", 134 | "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.26.0.tgz", 135 | "integrity": "sha1-rBriAHC3n248odMmlhMFN3TyDcU=", 136 | "requires": { 137 | "babel-messages": "6.23.0", 138 | "babel-runtime": "6.26.0", 139 | "babel-types": "6.26.0", 140 | "detect-indent": "4.0.0", 141 | "jsesc": "1.3.0", 142 | "lodash": "4.17.4", 143 | "source-map": "0.5.7", 144 | "trim-right": "1.0.1" 145 | }, 146 | "dependencies": { 147 | "jsesc": { 148 | "version": "1.3.0", 149 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", 150 | "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" 151 | } 152 | } 153 | }, 154 | "babel-helper-call-delegate": { 155 | "version": "6.24.1", 156 | "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", 157 | "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", 158 | "requires": { 159 | "babel-helper-hoist-variables": "6.24.1", 160 | "babel-runtime": "6.26.0", 161 | "babel-traverse": "6.26.0", 162 | "babel-types": "6.26.0" 163 | } 164 | }, 165 | "babel-helper-define-map": { 166 | "version": "6.26.0", 167 | "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz", 168 | "integrity": "sha1-pfVtq0GiX5fstJjH66ypgZ+Vvl8=", 169 | "requires": { 170 | "babel-helper-function-name": "6.24.1", 171 | "babel-runtime": "6.26.0", 172 | "babel-types": "6.26.0", 173 | "lodash": "4.17.4" 174 | } 175 | }, 176 | "babel-helper-function-name": { 177 | "version": "6.24.1", 178 | "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", 179 | "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", 180 | "requires": { 181 | "babel-helper-get-function-arity": "6.24.1", 182 | "babel-runtime": "6.26.0", 183 | "babel-template": "6.26.0", 184 | "babel-traverse": "6.26.0", 185 | "babel-types": "6.26.0" 186 | } 187 | }, 188 | "babel-helper-get-function-arity": { 189 | "version": "6.24.1", 190 | "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", 191 | "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", 192 | "requires": { 193 | "babel-runtime": "6.26.0", 194 | "babel-types": "6.26.0" 195 | } 196 | }, 197 | "babel-helper-hoist-variables": { 198 | "version": "6.24.1", 199 | "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", 200 | "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", 201 | "requires": { 202 | "babel-runtime": "6.26.0", 203 | "babel-types": "6.26.0" 204 | } 205 | }, 206 | "babel-helper-optimise-call-expression": { 207 | "version": "6.24.1", 208 | "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", 209 | "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", 210 | "requires": { 211 | "babel-runtime": "6.26.0", 212 | "babel-types": "6.26.0" 213 | } 214 | }, 215 | "babel-helper-regex": { 216 | "version": "6.26.0", 217 | "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz", 218 | "integrity": "sha1-MlxZ+QL4LyS3T6zu0DY5VPZJXnI=", 219 | "requires": { 220 | "babel-runtime": "6.26.0", 221 | "babel-types": "6.26.0", 222 | "lodash": "4.17.4" 223 | } 224 | }, 225 | "babel-helper-replace-supers": { 226 | "version": "6.24.1", 227 | "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", 228 | "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", 229 | "requires": { 230 | "babel-helper-optimise-call-expression": "6.24.1", 231 | "babel-messages": "6.23.0", 232 | "babel-runtime": "6.26.0", 233 | "babel-template": "6.26.0", 234 | "babel-traverse": "6.26.0", 235 | "babel-types": "6.26.0" 236 | } 237 | }, 238 | "babel-helpers": { 239 | "version": "6.24.1", 240 | "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", 241 | "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", 242 | "requires": { 243 | "babel-runtime": "6.26.0", 244 | "babel-template": "6.26.0" 245 | } 246 | }, 247 | "babel-messages": { 248 | "version": "6.23.0", 249 | "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", 250 | "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", 251 | "requires": { 252 | "babel-runtime": "6.26.0" 253 | } 254 | }, 255 | "babel-plugin-check-es2015-constants": { 256 | "version": "6.22.0", 257 | "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", 258 | "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", 259 | "requires": { 260 | "babel-runtime": "6.26.0" 261 | } 262 | }, 263 | "babel-plugin-transform-es2015-arrow-functions": { 264 | "version": "6.22.0", 265 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", 266 | "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", 267 | "requires": { 268 | "babel-runtime": "6.26.0" 269 | } 270 | }, 271 | "babel-plugin-transform-es2015-block-scoped-functions": { 272 | "version": "6.22.0", 273 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", 274 | "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", 275 | "requires": { 276 | "babel-runtime": "6.26.0" 277 | } 278 | }, 279 | "babel-plugin-transform-es2015-block-scoping": { 280 | "version": "6.26.0", 281 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz", 282 | "integrity": "sha1-1w9SmcEwjQXBL0Y4E7CgnnOxiV8=", 283 | "requires": { 284 | "babel-runtime": "6.26.0", 285 | "babel-template": "6.26.0", 286 | "babel-traverse": "6.26.0", 287 | "babel-types": "6.26.0", 288 | "lodash": "4.17.4" 289 | } 290 | }, 291 | "babel-plugin-transform-es2015-classes": { 292 | "version": "6.24.1", 293 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", 294 | "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", 295 | "requires": { 296 | "babel-helper-define-map": "6.26.0", 297 | "babel-helper-function-name": "6.24.1", 298 | "babel-helper-optimise-call-expression": "6.24.1", 299 | "babel-helper-replace-supers": "6.24.1", 300 | "babel-messages": "6.23.0", 301 | "babel-runtime": "6.26.0", 302 | "babel-template": "6.26.0", 303 | "babel-traverse": "6.26.0", 304 | "babel-types": "6.26.0" 305 | } 306 | }, 307 | "babel-plugin-transform-es2015-computed-properties": { 308 | "version": "6.24.1", 309 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", 310 | "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", 311 | "requires": { 312 | "babel-runtime": "6.26.0", 313 | "babel-template": "6.26.0" 314 | } 315 | }, 316 | "babel-plugin-transform-es2015-destructuring": { 317 | "version": "6.23.0", 318 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", 319 | "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", 320 | "requires": { 321 | "babel-runtime": "6.26.0" 322 | } 323 | }, 324 | "babel-plugin-transform-es2015-duplicate-keys": { 325 | "version": "6.24.1", 326 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", 327 | "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", 328 | "requires": { 329 | "babel-runtime": "6.26.0", 330 | "babel-types": "6.26.0" 331 | } 332 | }, 333 | "babel-plugin-transform-es2015-for-of": { 334 | "version": "6.23.0", 335 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", 336 | "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", 337 | "requires": { 338 | "babel-runtime": "6.26.0" 339 | } 340 | }, 341 | "babel-plugin-transform-es2015-function-name": { 342 | "version": "6.24.1", 343 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", 344 | "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", 345 | "requires": { 346 | "babel-helper-function-name": "6.24.1", 347 | "babel-runtime": "6.26.0", 348 | "babel-types": "6.26.0" 349 | } 350 | }, 351 | "babel-plugin-transform-es2015-literals": { 352 | "version": "6.22.0", 353 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", 354 | "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", 355 | "requires": { 356 | "babel-runtime": "6.26.0" 357 | } 358 | }, 359 | "babel-plugin-transform-es2015-modules-amd": { 360 | "version": "6.24.1", 361 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", 362 | "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", 363 | "requires": { 364 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 365 | "babel-runtime": "6.26.0", 366 | "babel-template": "6.26.0" 367 | } 368 | }, 369 | "babel-plugin-transform-es2015-modules-commonjs": { 370 | "version": "6.26.0", 371 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz", 372 | "integrity": "sha1-DYOUApt9xqvhqX7xgeAHWN0uXYo=", 373 | "requires": { 374 | "babel-plugin-transform-strict-mode": "6.24.1", 375 | "babel-runtime": "6.26.0", 376 | "babel-template": "6.26.0", 377 | "babel-types": "6.26.0" 378 | } 379 | }, 380 | "babel-plugin-transform-es2015-modules-systemjs": { 381 | "version": "6.24.1", 382 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", 383 | "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", 384 | "requires": { 385 | "babel-helper-hoist-variables": "6.24.1", 386 | "babel-runtime": "6.26.0", 387 | "babel-template": "6.26.0" 388 | } 389 | }, 390 | "babel-plugin-transform-es2015-modules-umd": { 391 | "version": "6.24.1", 392 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", 393 | "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", 394 | "requires": { 395 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 396 | "babel-runtime": "6.26.0", 397 | "babel-template": "6.26.0" 398 | } 399 | }, 400 | "babel-plugin-transform-es2015-object-super": { 401 | "version": "6.24.1", 402 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", 403 | "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", 404 | "requires": { 405 | "babel-helper-replace-supers": "6.24.1", 406 | "babel-runtime": "6.26.0" 407 | } 408 | }, 409 | "babel-plugin-transform-es2015-parameters": { 410 | "version": "6.24.1", 411 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", 412 | "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", 413 | "requires": { 414 | "babel-helper-call-delegate": "6.24.1", 415 | "babel-helper-get-function-arity": "6.24.1", 416 | "babel-runtime": "6.26.0", 417 | "babel-template": "6.26.0", 418 | "babel-traverse": "6.26.0", 419 | "babel-types": "6.26.0" 420 | } 421 | }, 422 | "babel-plugin-transform-es2015-shorthand-properties": { 423 | "version": "6.24.1", 424 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", 425 | "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", 426 | "requires": { 427 | "babel-runtime": "6.26.0", 428 | "babel-types": "6.26.0" 429 | } 430 | }, 431 | "babel-plugin-transform-es2015-spread": { 432 | "version": "6.22.0", 433 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", 434 | "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", 435 | "requires": { 436 | "babel-runtime": "6.26.0" 437 | } 438 | }, 439 | "babel-plugin-transform-es2015-sticky-regex": { 440 | "version": "6.24.1", 441 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", 442 | "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", 443 | "requires": { 444 | "babel-helper-regex": "6.26.0", 445 | "babel-runtime": "6.26.0", 446 | "babel-types": "6.26.0" 447 | } 448 | }, 449 | "babel-plugin-transform-es2015-template-literals": { 450 | "version": "6.22.0", 451 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", 452 | "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", 453 | "requires": { 454 | "babel-runtime": "6.26.0" 455 | } 456 | }, 457 | "babel-plugin-transform-es2015-typeof-symbol": { 458 | "version": "6.23.0", 459 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", 460 | "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", 461 | "requires": { 462 | "babel-runtime": "6.26.0" 463 | } 464 | }, 465 | "babel-plugin-transform-es2015-unicode-regex": { 466 | "version": "6.24.1", 467 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", 468 | "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", 469 | "requires": { 470 | "babel-helper-regex": "6.26.0", 471 | "babel-runtime": "6.26.0", 472 | "regexpu-core": "2.0.0" 473 | } 474 | }, 475 | "babel-plugin-transform-regenerator": { 476 | "version": "6.26.0", 477 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz", 478 | "integrity": "sha1-4HA2lvveJ/Cj78rPi03KL3s6jy8=", 479 | "requires": { 480 | "regenerator-transform": "0.10.1" 481 | } 482 | }, 483 | "babel-plugin-transform-strict-mode": { 484 | "version": "6.24.1", 485 | "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", 486 | "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", 487 | "requires": { 488 | "babel-runtime": "6.26.0", 489 | "babel-types": "6.26.0" 490 | } 491 | }, 492 | "babel-preset-es2015": { 493 | "version": "6.24.1", 494 | "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", 495 | "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", 496 | "requires": { 497 | "babel-plugin-check-es2015-constants": "6.22.0", 498 | "babel-plugin-transform-es2015-arrow-functions": "6.22.0", 499 | "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", 500 | "babel-plugin-transform-es2015-block-scoping": "6.26.0", 501 | "babel-plugin-transform-es2015-classes": "6.24.1", 502 | "babel-plugin-transform-es2015-computed-properties": "6.24.1", 503 | "babel-plugin-transform-es2015-destructuring": "6.23.0", 504 | "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", 505 | "babel-plugin-transform-es2015-for-of": "6.23.0", 506 | "babel-plugin-transform-es2015-function-name": "6.24.1", 507 | "babel-plugin-transform-es2015-literals": "6.22.0", 508 | "babel-plugin-transform-es2015-modules-amd": "6.24.1", 509 | "babel-plugin-transform-es2015-modules-commonjs": "6.26.0", 510 | "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", 511 | "babel-plugin-transform-es2015-modules-umd": "6.24.1", 512 | "babel-plugin-transform-es2015-object-super": "6.24.1", 513 | "babel-plugin-transform-es2015-parameters": "6.24.1", 514 | "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", 515 | "babel-plugin-transform-es2015-spread": "6.22.0", 516 | "babel-plugin-transform-es2015-sticky-regex": "6.24.1", 517 | "babel-plugin-transform-es2015-template-literals": "6.22.0", 518 | "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", 519 | "babel-plugin-transform-es2015-unicode-regex": "6.24.1", 520 | "babel-plugin-transform-regenerator": "6.26.0" 521 | } 522 | }, 523 | "babel-register": { 524 | "version": "6.26.0", 525 | "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.26.0.tgz", 526 | "integrity": "sha1-btAhFz4vy0htestFxgCahW9kcHE=", 527 | "requires": { 528 | "babel-core": "6.26.0", 529 | "babel-runtime": "6.26.0", 530 | "core-js": "2.5.1", 531 | "home-or-tmp": "2.0.0", 532 | "lodash": "4.17.4", 533 | "mkdirp": "0.5.1", 534 | "source-map-support": "0.4.18" 535 | } 536 | }, 537 | "babel-runtime": { 538 | "version": "6.26.0", 539 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 540 | "integrity": "sha1-llxwWGaOgrVde/4E/yM3vItWR/4=", 541 | "requires": { 542 | "core-js": "2.5.1", 543 | "regenerator-runtime": "0.11.0" 544 | } 545 | }, 546 | "babel-template": { 547 | "version": "6.26.0", 548 | "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.26.0.tgz", 549 | "integrity": "sha1-3gPi0WOWsGn0bdn/+FIfsaDjXgI=", 550 | "requires": { 551 | "babel-runtime": "6.26.0", 552 | "babel-traverse": "6.26.0", 553 | "babel-types": "6.26.0", 554 | "babylon": "6.18.0", 555 | "lodash": "4.17.4" 556 | } 557 | }, 558 | "babel-traverse": { 559 | "version": "6.26.0", 560 | "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.26.0.tgz", 561 | "integrity": "sha1-RqnL1+3MYsjlwGTi0tjQ9ANXZu4=", 562 | "requires": { 563 | "babel-code-frame": "6.26.0", 564 | "babel-messages": "6.23.0", 565 | "babel-runtime": "6.26.0", 566 | "babel-types": "6.26.0", 567 | "babylon": "6.18.0", 568 | "debug": "2.6.8", 569 | "globals": "9.18.0", 570 | "invariant": "2.2.2", 571 | "lodash": "4.17.4" 572 | } 573 | }, 574 | "babel-types": { 575 | "version": "6.26.0", 576 | "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.26.0.tgz", 577 | "integrity": "sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc=", 578 | "requires": { 579 | "babel-runtime": "6.26.0", 580 | "esutils": "2.0.2", 581 | "lodash": "4.17.4", 582 | "to-fast-properties": "1.0.3" 583 | } 584 | }, 585 | "babelify": { 586 | "version": "7.3.0", 587 | "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", 588 | "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", 589 | "requires": { 590 | "babel-core": "6.26.0", 591 | "object-assign": "4.1.1" 592 | } 593 | }, 594 | "babylon": { 595 | "version": "6.18.0", 596 | "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.18.0.tgz", 597 | "integrity": "sha512-q/UEjfGJ2Cm3oKV71DJz9d25TPnq5rhBVL2Q4fA5wcC3jcrdn7+SssEybFIxwAvvP+YCsCYNKughoF33GxgycQ==" 598 | }, 599 | "balanced-match": { 600 | "version": "1.0.0", 601 | "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", 602 | "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" 603 | }, 604 | "base-x": { 605 | "version": "1.1.0", 606 | "resolved": "https://registry.npmjs.org/base-x/-/base-x-1.1.0.tgz", 607 | "integrity": "sha1-QtPXF0dPnqAiB/bRqh9CaRPut6w=" 608 | }, 609 | "bcrypt-pbkdf": { 610 | "version": "1.0.1", 611 | "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", 612 | "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", 613 | "optional": true, 614 | "requires": { 615 | "tweetnacl": "0.14.5" 616 | } 617 | }, 618 | "bignumber": { 619 | "version": "1.1.0", 620 | "resolved": "https://registry.npmjs.org/bignumber/-/bignumber-1.1.0.tgz", 621 | "integrity": "sha1-5qsKdD2l8+oBjlwXWX0SH3howVk=" 622 | }, 623 | "bignumber.js": { 624 | "version": "4.1.0", 625 | "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-4.1.0.tgz", 626 | "integrity": "sha512-eJzYkFYy9L4JzXsbymsFn3p54D+llV27oTQ+ziJG7WFRheJcNZilgVXMG0LoZtlQSKBsJdWtLFqOD0u+U0jZKA==" 627 | }, 628 | "bindings": { 629 | "version": "1.3.0", 630 | "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", 631 | "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" 632 | }, 633 | "bip39": { 634 | "version": "2.4.0", 635 | "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.4.0.tgz", 636 | "integrity": "sha512-1++HywqIyPtWDo7gm4v0ylYbwkLvHkuwVSKbBlZBbTCP/mnkyrlARBny906VLAwxJbC5xw9EvuJasHFIZaIFMQ==", 637 | "requires": { 638 | "create-hash": "1.1.3", 639 | "pbkdf2": "3.0.14", 640 | "randombytes": "2.0.5", 641 | "safe-buffer": "5.1.1", 642 | "unorm": "1.4.1" 643 | } 644 | }, 645 | "bip66": { 646 | "version": "1.1.5", 647 | "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", 648 | "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", 649 | "requires": { 650 | "safe-buffer": "5.1.1" 651 | } 652 | }, 653 | "bl": { 654 | "version": "1.2.1", 655 | "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", 656 | "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", 657 | "requires": { 658 | "readable-stream": "2.3.3" 659 | } 660 | }, 661 | "bn.js": { 662 | "version": "4.11.8", 663 | "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", 664 | "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" 665 | }, 666 | "boom": { 667 | "version": "4.3.1", 668 | "resolved": "https://registry.npmjs.org/boom/-/boom-4.3.1.tgz", 669 | "integrity": "sha1-T4owBctKfjiJ90kDD9JbluAdLjE=", 670 | "requires": { 671 | "hoek": "4.2.0" 672 | } 673 | }, 674 | "brace-expansion": { 675 | "version": "1.1.8", 676 | "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", 677 | "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", 678 | "requires": { 679 | "balanced-match": "1.0.0", 680 | "concat-map": "0.0.1" 681 | } 682 | }, 683 | "brorand": { 684 | "version": "1.1.0", 685 | "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", 686 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" 687 | }, 688 | "browser-stdout": { 689 | "version": "1.3.0", 690 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", 691 | "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=" 692 | }, 693 | "browserify-aes": { 694 | "version": "1.1.1", 695 | "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.1.1.tgz", 696 | "integrity": "sha512-UGnTYAnB2a3YuYKIRy1/4FB2HdM866E0qC46JXvVTYKlBlZlnvfpSfY6OKfXZAkv70eJ2a1SqzpAo5CRhZGDFg==", 697 | "requires": { 698 | "buffer-xor": "1.0.3", 699 | "cipher-base": "1.0.4", 700 | "create-hash": "1.1.3", 701 | "evp_bytestokey": "1.0.3", 702 | "inherits": "2.0.3", 703 | "safe-buffer": "5.1.1" 704 | } 705 | }, 706 | "browserify-sha3": { 707 | "version": "0.0.1", 708 | "resolved": "https://registry.npmjs.org/browserify-sha3/-/browserify-sha3-0.0.1.tgz", 709 | "integrity": "sha1-P/NKMAbvFcD7NWflQbkaI0ASPRE=", 710 | "requires": { 711 | "js-sha3": "0.3.1" 712 | } 713 | }, 714 | "bs58": { 715 | "version": "3.1.0", 716 | "resolved": "https://registry.npmjs.org/bs58/-/bs58-3.1.0.tgz", 717 | "integrity": "sha1-1MJjiL9IBMrHFBQbGUWqR+XrJI4=", 718 | "requires": { 719 | "base-x": "1.1.0" 720 | } 721 | }, 722 | "bs58check": { 723 | "version": "1.3.4", 724 | "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-1.3.4.tgz", 725 | "integrity": "sha1-xSVABzdJEXcU+gQsMEfrj5FRy/g=", 726 | "requires": { 727 | "bs58": "3.1.0", 728 | "create-hash": "1.1.3" 729 | } 730 | }, 731 | "buffer-xor": { 732 | "version": "1.0.3", 733 | "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", 734 | "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" 735 | }, 736 | "builtin-modules": { 737 | "version": "1.1.1", 738 | "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", 739 | "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" 740 | }, 741 | "camelcase": { 742 | "version": "3.0.0", 743 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", 744 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" 745 | }, 746 | "caseless": { 747 | "version": "0.12.0", 748 | "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", 749 | "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" 750 | }, 751 | "chalk": { 752 | "version": "1.1.3", 753 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", 754 | "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", 755 | "requires": { 756 | "ansi-styles": "2.2.1", 757 | "escape-string-regexp": "1.0.5", 758 | "has-ansi": "2.0.0", 759 | "strip-ansi": "3.0.1", 760 | "supports-color": "2.0.0" 761 | }, 762 | "dependencies": { 763 | "supports-color": { 764 | "version": "2.0.0", 765 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", 766 | "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" 767 | } 768 | } 769 | }, 770 | "checkpoint-store": { 771 | "version": "1.1.0", 772 | "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", 773 | "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", 774 | "requires": { 775 | "functional-red-black-tree": "1.0.1" 776 | } 777 | }, 778 | "chownr": { 779 | "version": "1.0.1", 780 | "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", 781 | "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" 782 | }, 783 | "cipher-base": { 784 | "version": "1.0.4", 785 | "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", 786 | "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", 787 | "requires": { 788 | "inherits": "2.0.3", 789 | "safe-buffer": "5.1.1" 790 | } 791 | }, 792 | "cliui": { 793 | "version": "3.2.0", 794 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", 795 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", 796 | "requires": { 797 | "string-width": "1.0.2", 798 | "strip-ansi": "3.0.1", 799 | "wrap-ansi": "2.1.0" 800 | } 801 | }, 802 | "clone": { 803 | "version": "2.1.1", 804 | "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", 805 | "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" 806 | }, 807 | "co": { 808 | "version": "4.6.0", 809 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", 810 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" 811 | }, 812 | "code-point-at": { 813 | "version": "1.1.0", 814 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", 815 | "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" 816 | }, 817 | "coinstring": { 818 | "version": "2.3.0", 819 | "resolved": "https://registry.npmjs.org/coinstring/-/coinstring-2.3.0.tgz", 820 | "integrity": "sha1-zbYzY6lhUCQEolr7gsLibV/2J6Q=", 821 | "requires": { 822 | "bs58": "2.0.1", 823 | "create-hash": "1.1.3" 824 | }, 825 | "dependencies": { 826 | "bs58": { 827 | "version": "2.0.1", 828 | "resolved": "https://registry.npmjs.org/bs58/-/bs58-2.0.1.tgz", 829 | "integrity": "sha1-VZCNWPGYKrogCPob7Y+RmYopv40=" 830 | } 831 | } 832 | }, 833 | "combined-stream": { 834 | "version": "1.0.5", 835 | "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", 836 | "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", 837 | "requires": { 838 | "delayed-stream": "1.0.0" 839 | } 840 | }, 841 | "commander": { 842 | "version": "2.9.0", 843 | "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", 844 | "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", 845 | "requires": { 846 | "graceful-readlink": "1.0.1" 847 | } 848 | }, 849 | "concat-map": { 850 | "version": "0.0.1", 851 | "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", 852 | "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" 853 | }, 854 | "console-control-strings": { 855 | "version": "1.1.0", 856 | "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", 857 | "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" 858 | }, 859 | "convert-source-map": { 860 | "version": "1.5.0", 861 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", 862 | "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" 863 | }, 864 | "core-js": { 865 | "version": "2.5.1", 866 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.1.tgz", 867 | "integrity": "sha1-rmh03GaTd4m4B1T/VCjfZoGcpQs=" 868 | }, 869 | "core-util-is": { 870 | "version": "1.0.2", 871 | "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", 872 | "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" 873 | }, 874 | "create-hash": { 875 | "version": "1.1.3", 876 | "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", 877 | "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", 878 | "requires": { 879 | "cipher-base": "1.0.4", 880 | "inherits": "2.0.3", 881 | "ripemd160": "2.0.1", 882 | "sha.js": "2.4.9" 883 | } 884 | }, 885 | "create-hmac": { 886 | "version": "1.1.6", 887 | "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", 888 | "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", 889 | "requires": { 890 | "cipher-base": "1.0.4", 891 | "create-hash": "1.1.3", 892 | "inherits": "2.0.3", 893 | "ripemd160": "2.0.1", 894 | "safe-buffer": "5.1.1", 895 | "sha.js": "2.4.9" 896 | } 897 | }, 898 | "cryptiles": { 899 | "version": "3.1.2", 900 | "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-3.1.2.tgz", 901 | "integrity": "sha1-qJ+7Ig9c4l7FboxKqKT9e1sNKf4=", 902 | "requires": { 903 | "boom": "5.2.0" 904 | }, 905 | "dependencies": { 906 | "boom": { 907 | "version": "5.2.0", 908 | "resolved": "https://registry.npmjs.org/boom/-/boom-5.2.0.tgz", 909 | "integrity": "sha512-Z5BTk6ZRe4tXXQlkqftmsAUANpXmuwlsF5Oov8ThoMbQRzdGTA1ngYRW160GexgOgjsFOKJz0LYhoNi+2AMBUw==", 910 | "requires": { 911 | "hoek": "4.2.0" 912 | } 913 | } 914 | } 915 | }, 916 | "crypto-js": { 917 | "version": "3.1.8", 918 | "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.8.tgz", 919 | "integrity": "sha1-cV8HC/YBTyrpkqmLOSkli3E/CNU=" 920 | }, 921 | "dashdash": { 922 | "version": "1.14.1", 923 | "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", 924 | "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", 925 | "requires": { 926 | "assert-plus": "1.0.0" 927 | } 928 | }, 929 | "debug": { 930 | "version": "2.6.8", 931 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", 932 | "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", 933 | "requires": { 934 | "ms": "2.0.0" 935 | } 936 | }, 937 | "decamelize": { 938 | "version": "1.2.0", 939 | "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", 940 | "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" 941 | }, 942 | "deep-equal": { 943 | "version": "1.0.1", 944 | "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", 945 | "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" 946 | }, 947 | "deep-extend": { 948 | "version": "0.4.2", 949 | "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", 950 | "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" 951 | }, 952 | "deferred-leveldown": { 953 | "version": "1.2.2", 954 | "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", 955 | "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", 956 | "requires": { 957 | "abstract-leveldown": "2.6.3" 958 | } 959 | }, 960 | "define-properties": { 961 | "version": "1.1.2", 962 | "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", 963 | "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", 964 | "requires": { 965 | "foreach": "2.0.5", 966 | "object-keys": "1.0.11" 967 | }, 968 | "dependencies": { 969 | "object-keys": { 970 | "version": "1.0.11", 971 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", 972 | "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" 973 | } 974 | } 975 | }, 976 | "defined": { 977 | "version": "1.0.0", 978 | "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", 979 | "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" 980 | }, 981 | "delayed-stream": { 982 | "version": "1.0.0", 983 | "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", 984 | "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" 985 | }, 986 | "delegates": { 987 | "version": "1.0.0", 988 | "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", 989 | "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" 990 | }, 991 | "detect-indent": { 992 | "version": "4.0.0", 993 | "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", 994 | "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", 995 | "requires": { 996 | "repeating": "2.0.1" 997 | } 998 | }, 999 | "diff": { 1000 | "version": "3.2.0", 1001 | "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", 1002 | "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=" 1003 | }, 1004 | "dom-walk": { 1005 | "version": "0.1.1", 1006 | "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", 1007 | "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" 1008 | }, 1009 | "drbg.js": { 1010 | "version": "1.0.1", 1011 | "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", 1012 | "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", 1013 | "requires": { 1014 | "browserify-aes": "1.1.1", 1015 | "create-hash": "1.1.3", 1016 | "create-hmac": "1.1.6" 1017 | } 1018 | }, 1019 | "ecc-jsbn": { 1020 | "version": "0.1.1", 1021 | "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", 1022 | "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", 1023 | "optional": true, 1024 | "requires": { 1025 | "jsbn": "0.1.1" 1026 | } 1027 | }, 1028 | "elliptic": { 1029 | "version": "6.4.0", 1030 | "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", 1031 | "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", 1032 | "requires": { 1033 | "bn.js": "4.11.8", 1034 | "brorand": "1.1.0", 1035 | "hash.js": "1.1.3", 1036 | "hmac-drbg": "1.0.1", 1037 | "inherits": "2.0.3", 1038 | "minimalistic-assert": "1.0.0", 1039 | "minimalistic-crypto-utils": "1.0.1" 1040 | } 1041 | }, 1042 | "encoding": { 1043 | "version": "0.1.12", 1044 | "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", 1045 | "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", 1046 | "requires": { 1047 | "iconv-lite": "0.4.19" 1048 | } 1049 | }, 1050 | "end-of-stream": { 1051 | "version": "1.4.0", 1052 | "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", 1053 | "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", 1054 | "requires": { 1055 | "once": "1.4.0" 1056 | } 1057 | }, 1058 | "errno": { 1059 | "version": "0.1.4", 1060 | "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", 1061 | "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", 1062 | "requires": { 1063 | "prr": "0.0.0" 1064 | }, 1065 | "dependencies": { 1066 | "prr": { 1067 | "version": "0.0.0", 1068 | "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", 1069 | "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" 1070 | } 1071 | } 1072 | }, 1073 | "error-ex": { 1074 | "version": "1.3.1", 1075 | "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", 1076 | "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", 1077 | "requires": { 1078 | "is-arrayish": "0.2.1" 1079 | } 1080 | }, 1081 | "es-abstract": { 1082 | "version": "1.9.0", 1083 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.9.0.tgz", 1084 | "integrity": "sha512-kk3IJoKo7A3pWJc0OV8yZ/VEX2oSUytfekrJiqoxBlKJMFAJVJVpGdHClCCTdv+Fn2zHfpDHHIelMFhZVfef3Q==", 1085 | "requires": { 1086 | "es-to-primitive": "1.1.1", 1087 | "function-bind": "1.1.1", 1088 | "has": "1.0.1", 1089 | "is-callable": "1.1.3", 1090 | "is-regex": "1.0.4" 1091 | } 1092 | }, 1093 | "es-to-primitive": { 1094 | "version": "1.1.1", 1095 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", 1096 | "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", 1097 | "requires": { 1098 | "is-callable": "1.1.3", 1099 | "is-date-object": "1.0.1", 1100 | "is-symbol": "1.0.1" 1101 | } 1102 | }, 1103 | "escape-string-regexp": { 1104 | "version": "1.0.5", 1105 | "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", 1106 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" 1107 | }, 1108 | "esutils": { 1109 | "version": "2.0.2", 1110 | "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", 1111 | "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" 1112 | }, 1113 | "ethereum-common": { 1114 | "version": "0.2.0", 1115 | "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.2.0.tgz", 1116 | "integrity": "sha512-XOnAR/3rntJgbCdGhqdaLIxDLWKLmsZOGhHdBKadEr6gEnJLH52k93Ou+TUdFaPN3hJc3isBZBal3U/XZ15abA==" 1117 | }, 1118 | "ethereumjs-account": { 1119 | "version": "2.0.4", 1120 | "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.4.tgz", 1121 | "integrity": "sha1-+MMCMby3B/RRTYoFLB+doQNiTUc=", 1122 | "requires": { 1123 | "ethereumjs-util": "4.5.0", 1124 | "rlp": "2.0.0" 1125 | } 1126 | }, 1127 | "ethereumjs-block": { 1128 | "version": "1.7.0", 1129 | "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.7.0.tgz", 1130 | "integrity": "sha512-4s4Hh7mWa1xr+Bggh3T3jsq9lmje5aYpJRFky00bo/xNgNe+RC8V2ulWYSR4YTEKqLbnLEsLNytjDe5hpblkZQ==", 1131 | "requires": { 1132 | "async": "2.5.0", 1133 | "ethereum-common": "0.2.0", 1134 | "ethereumjs-tx": "1.3.3", 1135 | "ethereumjs-util": "5.1.2", 1136 | "merkle-patricia-tree": "2.2.0" 1137 | }, 1138 | "dependencies": { 1139 | "ethereumjs-util": { 1140 | "version": "5.1.2", 1141 | "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", 1142 | "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=", 1143 | "requires": { 1144 | "babel-preset-es2015": "6.24.1", 1145 | "babelify": "7.3.0", 1146 | "bn.js": "4.11.8", 1147 | "create-hash": "1.1.3", 1148 | "ethjs-util": "0.1.4", 1149 | "keccak": "1.3.0", 1150 | "rlp": "2.0.0", 1151 | "secp256k1": "3.3.0" 1152 | } 1153 | } 1154 | } 1155 | }, 1156 | "ethereumjs-tx": { 1157 | "version": "1.3.3", 1158 | "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.3.tgz", 1159 | "integrity": "sha1-7OBR0+/b53GtKlGNYWMsoqt17Ls=", 1160 | "requires": { 1161 | "ethereum-common": "0.0.18", 1162 | "ethereumjs-util": "5.1.2" 1163 | }, 1164 | "dependencies": { 1165 | "ethereum-common": { 1166 | "version": "0.0.18", 1167 | "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", 1168 | "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" 1169 | }, 1170 | "ethereumjs-util": { 1171 | "version": "5.1.2", 1172 | "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", 1173 | "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=", 1174 | "requires": { 1175 | "babel-preset-es2015": "6.24.1", 1176 | "babelify": "7.3.0", 1177 | "bn.js": "4.11.8", 1178 | "create-hash": "1.1.3", 1179 | "ethjs-util": "0.1.4", 1180 | "keccak": "1.3.0", 1181 | "rlp": "2.0.0", 1182 | "secp256k1": "3.3.0" 1183 | } 1184 | } 1185 | } 1186 | }, 1187 | "ethereumjs-util": { 1188 | "version": "4.5.0", 1189 | "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", 1190 | "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", 1191 | "requires": { 1192 | "bn.js": "4.11.8", 1193 | "create-hash": "1.1.3", 1194 | "keccakjs": "0.2.1", 1195 | "rlp": "2.0.0", 1196 | "secp256k1": "3.3.0" 1197 | } 1198 | }, 1199 | "ethereumjs-vm": { 1200 | "version": "2.3.1", 1201 | "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.3.1.tgz", 1202 | "integrity": "sha512-LeOtE5tXYhnQk03WSEoqxeMs67EnPXPQ7EbaQotnM2uPf1dJWEM/WSIIww/DwPPO1rRpBqfZcGSJ6IFISeQf9Q==", 1203 | "requires": { 1204 | "async": "2.5.0", 1205 | "async-eventemitter": "0.2.4", 1206 | "ethereum-common": "0.2.0", 1207 | "ethereumjs-account": "2.0.4", 1208 | "ethereumjs-block": "1.7.0", 1209 | "ethereumjs-util": "4.5.0", 1210 | "fake-merkle-patricia-tree": "1.0.1", 1211 | "functional-red-black-tree": "1.0.1", 1212 | "merkle-patricia-tree": "2.2.0", 1213 | "rustbn.js": "0.1.0", 1214 | "safe-buffer": "5.1.1" 1215 | } 1216 | }, 1217 | "ethereumjs-wallet": { 1218 | "version": "0.6.0", 1219 | "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.0.tgz", 1220 | "integrity": "sha1-gnY7Fpfuenlr5xVdqd+0my+Yz9s=", 1221 | "requires": { 1222 | "aes-js": "0.2.4", 1223 | "bs58check": "1.3.4", 1224 | "ethereumjs-util": "4.5.0", 1225 | "hdkey": "0.7.1", 1226 | "scrypt.js": "0.2.0", 1227 | "utf8": "2.1.2", 1228 | "uuid": "2.0.3" 1229 | } 1230 | }, 1231 | "ethjs-util": { 1232 | "version": "0.1.4", 1233 | "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.4.tgz", 1234 | "integrity": "sha1-HItoeSV0RO9NPz+7rC3tEs2ZfZM=", 1235 | "requires": { 1236 | "is-hex-prefixed": "1.0.0", 1237 | "strip-hex-prefix": "1.0.0" 1238 | } 1239 | }, 1240 | "evp_bytestokey": { 1241 | "version": "1.0.3", 1242 | "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", 1243 | "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", 1244 | "requires": { 1245 | "md5.js": "1.3.4", 1246 | "safe-buffer": "5.1.1" 1247 | } 1248 | }, 1249 | "expand-template": { 1250 | "version": "1.1.0", 1251 | "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.1.0.tgz", 1252 | "integrity": "sha512-kkjwkMqj0h4w/sb32ERCDxCQkREMCAgS39DscDnSwDsbxnwwM1BTZySdC3Bn1lhY7vL08n9GoO/fVTynjDgRyQ==" 1253 | }, 1254 | "extend": { 1255 | "version": "3.0.1", 1256 | "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", 1257 | "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" 1258 | }, 1259 | "extsprintf": { 1260 | "version": "1.3.0", 1261 | "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", 1262 | "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=" 1263 | }, 1264 | "fake-merkle-patricia-tree": { 1265 | "version": "1.0.1", 1266 | "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", 1267 | "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", 1268 | "requires": { 1269 | "checkpoint-store": "1.1.0" 1270 | } 1271 | }, 1272 | "fast-deep-equal": { 1273 | "version": "1.0.0", 1274 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", 1275 | "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=" 1276 | }, 1277 | "fast-json-stable-stringify": { 1278 | "version": "2.0.0", 1279 | "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", 1280 | "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=" 1281 | }, 1282 | "find-up": { 1283 | "version": "1.1.2", 1284 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", 1285 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", 1286 | "requires": { 1287 | "path-exists": "2.1.0", 1288 | "pinkie-promise": "2.0.1" 1289 | } 1290 | }, 1291 | "for-each": { 1292 | "version": "0.3.2", 1293 | "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", 1294 | "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", 1295 | "requires": { 1296 | "is-function": "1.0.1" 1297 | } 1298 | }, 1299 | "foreach": { 1300 | "version": "2.0.5", 1301 | "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", 1302 | "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" 1303 | }, 1304 | "forever-agent": { 1305 | "version": "0.6.1", 1306 | "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", 1307 | "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" 1308 | }, 1309 | "form-data": { 1310 | "version": "2.3.1", 1311 | "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.1.tgz", 1312 | "integrity": "sha1-b7lPvXGIUwbXPRXMSX/kzE7NRL8=", 1313 | "requires": { 1314 | "asynckit": "0.4.0", 1315 | "combined-stream": "1.0.5", 1316 | "mime-types": "2.1.17" 1317 | } 1318 | }, 1319 | "fs-extra": { 1320 | "version": "0.30.0", 1321 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", 1322 | "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", 1323 | "requires": { 1324 | "graceful-fs": "4.1.11", 1325 | "jsonfile": "2.4.0", 1326 | "klaw": "1.3.1", 1327 | "path-is-absolute": "1.0.1", 1328 | "rimraf": "2.6.2" 1329 | } 1330 | }, 1331 | "fs.realpath": { 1332 | "version": "1.0.0", 1333 | "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", 1334 | "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" 1335 | }, 1336 | "function-bind": { 1337 | "version": "1.1.1", 1338 | "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", 1339 | "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" 1340 | }, 1341 | "functional-red-black-tree": { 1342 | "version": "1.0.1", 1343 | "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", 1344 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" 1345 | }, 1346 | "gauge": { 1347 | "version": "2.7.4", 1348 | "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", 1349 | "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", 1350 | "requires": { 1351 | "aproba": "1.2.0", 1352 | "console-control-strings": "1.1.0", 1353 | "has-unicode": "2.0.1", 1354 | "object-assign": "4.1.1", 1355 | "signal-exit": "3.0.2", 1356 | "string-width": "1.0.2", 1357 | "strip-ansi": "3.0.1", 1358 | "wide-align": "1.1.2" 1359 | } 1360 | }, 1361 | "get-caller-file": { 1362 | "version": "1.0.2", 1363 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", 1364 | "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" 1365 | }, 1366 | "getpass": { 1367 | "version": "0.1.7", 1368 | "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", 1369 | "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", 1370 | "requires": { 1371 | "assert-plus": "1.0.0" 1372 | } 1373 | }, 1374 | "github-from-package": { 1375 | "version": "0.0.0", 1376 | "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", 1377 | "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" 1378 | }, 1379 | "glob": { 1380 | "version": "7.1.1", 1381 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", 1382 | "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", 1383 | "requires": { 1384 | "fs.realpath": "1.0.0", 1385 | "inflight": "1.0.6", 1386 | "inherits": "2.0.3", 1387 | "minimatch": "3.0.4", 1388 | "once": "1.4.0", 1389 | "path-is-absolute": "1.0.1" 1390 | } 1391 | }, 1392 | "global": { 1393 | "version": "4.3.2", 1394 | "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", 1395 | "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", 1396 | "requires": { 1397 | "min-document": "2.19.0", 1398 | "process": "0.5.2" 1399 | } 1400 | }, 1401 | "globals": { 1402 | "version": "9.18.0", 1403 | "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", 1404 | "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" 1405 | }, 1406 | "graceful-fs": { 1407 | "version": "4.1.11", 1408 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", 1409 | "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" 1410 | }, 1411 | "graceful-readlink": { 1412 | "version": "1.0.1", 1413 | "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", 1414 | "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=" 1415 | }, 1416 | "growl": { 1417 | "version": "1.9.2", 1418 | "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", 1419 | "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=" 1420 | }, 1421 | "har-schema": { 1422 | "version": "2.0.0", 1423 | "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", 1424 | "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=" 1425 | }, 1426 | "har-validator": { 1427 | "version": "5.0.3", 1428 | "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.0.3.tgz", 1429 | "integrity": "sha1-ukAsJmGU8VlW7xXg/PJCmT9qff0=", 1430 | "requires": { 1431 | "ajv": "5.3.0", 1432 | "har-schema": "2.0.0" 1433 | } 1434 | }, 1435 | "has": { 1436 | "version": "1.0.1", 1437 | "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", 1438 | "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", 1439 | "requires": { 1440 | "function-bind": "1.1.1" 1441 | } 1442 | }, 1443 | "has-ansi": { 1444 | "version": "2.0.0", 1445 | "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", 1446 | "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", 1447 | "requires": { 1448 | "ansi-regex": "2.1.1" 1449 | } 1450 | }, 1451 | "has-flag": { 1452 | "version": "1.0.0", 1453 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", 1454 | "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=" 1455 | }, 1456 | "has-unicode": { 1457 | "version": "2.0.1", 1458 | "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", 1459 | "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" 1460 | }, 1461 | "hash-base": { 1462 | "version": "2.0.2", 1463 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", 1464 | "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", 1465 | "requires": { 1466 | "inherits": "2.0.3" 1467 | } 1468 | }, 1469 | "hash.js": { 1470 | "version": "1.1.3", 1471 | "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", 1472 | "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", 1473 | "requires": { 1474 | "inherits": "2.0.3", 1475 | "minimalistic-assert": "1.0.0" 1476 | } 1477 | }, 1478 | "hawk": { 1479 | "version": "6.0.2", 1480 | "resolved": "https://registry.npmjs.org/hawk/-/hawk-6.0.2.tgz", 1481 | "integrity": "sha512-miowhl2+U7Qle4vdLqDdPt9m09K6yZhkLDTWGoUiUzrQCn+mHHSmfJgAyGaLRZbPmTqfFFjRV1QWCW0VWUJBbQ==", 1482 | "requires": { 1483 | "boom": "4.3.1", 1484 | "cryptiles": "3.1.2", 1485 | "hoek": "4.2.0", 1486 | "sntp": "2.0.2" 1487 | } 1488 | }, 1489 | "hdkey": { 1490 | "version": "0.7.1", 1491 | "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-0.7.1.tgz", 1492 | "integrity": "sha1-yu5L6BqneSHpCbjSKN0PKayu5jI=", 1493 | "requires": { 1494 | "coinstring": "2.3.0", 1495 | "secp256k1": "3.3.0" 1496 | } 1497 | }, 1498 | "he": { 1499 | "version": "1.1.1", 1500 | "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", 1501 | "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=" 1502 | }, 1503 | "hmac-drbg": { 1504 | "version": "1.0.1", 1505 | "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", 1506 | "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", 1507 | "requires": { 1508 | "hash.js": "1.1.3", 1509 | "minimalistic-assert": "1.0.0", 1510 | "minimalistic-crypto-utils": "1.0.1" 1511 | } 1512 | }, 1513 | "hoek": { 1514 | "version": "4.2.0", 1515 | "resolved": "https://registry.npmjs.org/hoek/-/hoek-4.2.0.tgz", 1516 | "integrity": "sha512-v0XCLxICi9nPfYrS9RL8HbYnXi9obYAeLbSP00BmnZwCK9+Ih9WOjoZ8YoHCoav2csqn4FOz4Orldsy2dmDwmQ==" 1517 | }, 1518 | "home-or-tmp": { 1519 | "version": "2.0.0", 1520 | "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", 1521 | "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", 1522 | "requires": { 1523 | "os-homedir": "1.0.2", 1524 | "os-tmpdir": "1.0.2" 1525 | } 1526 | }, 1527 | "hosted-git-info": { 1528 | "version": "2.5.0", 1529 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", 1530 | "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" 1531 | }, 1532 | "http-signature": { 1533 | "version": "1.2.0", 1534 | "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", 1535 | "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", 1536 | "requires": { 1537 | "assert-plus": "1.0.0", 1538 | "jsprim": "1.4.1", 1539 | "sshpk": "1.13.1" 1540 | } 1541 | }, 1542 | "iconv-lite": { 1543 | "version": "0.4.19", 1544 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.19.tgz", 1545 | "integrity": "sha512-oTZqweIP51xaGPI4uPa56/Pri/480R+mo7SeU+YETByQNhDG55ycFyNLIgta9vXhILrxXDmF7ZGhqZIcuN0gJQ==" 1546 | }, 1547 | "immediate": { 1548 | "version": "3.2.3", 1549 | "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", 1550 | "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=" 1551 | }, 1552 | "inflight": { 1553 | "version": "1.0.6", 1554 | "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", 1555 | "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", 1556 | "requires": { 1557 | "once": "1.4.0", 1558 | "wrappy": "1.0.2" 1559 | } 1560 | }, 1561 | "inherits": { 1562 | "version": "2.0.3", 1563 | "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", 1564 | "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" 1565 | }, 1566 | "ini": { 1567 | "version": "1.3.4", 1568 | "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", 1569 | "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" 1570 | }, 1571 | "invariant": { 1572 | "version": "2.2.2", 1573 | "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", 1574 | "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", 1575 | "requires": { 1576 | "loose-envify": "1.3.1" 1577 | } 1578 | }, 1579 | "invert-kv": { 1580 | "version": "1.0.0", 1581 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", 1582 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" 1583 | }, 1584 | "is-arrayish": { 1585 | "version": "0.2.1", 1586 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", 1587 | "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" 1588 | }, 1589 | "is-builtin-module": { 1590 | "version": "1.0.0", 1591 | "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", 1592 | "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", 1593 | "requires": { 1594 | "builtin-modules": "1.1.1" 1595 | } 1596 | }, 1597 | "is-callable": { 1598 | "version": "1.1.3", 1599 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", 1600 | "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" 1601 | }, 1602 | "is-date-object": { 1603 | "version": "1.0.1", 1604 | "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", 1605 | "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" 1606 | }, 1607 | "is-finite": { 1608 | "version": "1.0.2", 1609 | "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", 1610 | "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", 1611 | "requires": { 1612 | "number-is-nan": "1.0.1" 1613 | } 1614 | }, 1615 | "is-fullwidth-code-point": { 1616 | "version": "1.0.0", 1617 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", 1618 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", 1619 | "requires": { 1620 | "number-is-nan": "1.0.1" 1621 | } 1622 | }, 1623 | "is-function": { 1624 | "version": "1.0.1", 1625 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", 1626 | "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" 1627 | }, 1628 | "is-hex-prefixed": { 1629 | "version": "1.0.0", 1630 | "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", 1631 | "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" 1632 | }, 1633 | "is-regex": { 1634 | "version": "1.0.4", 1635 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", 1636 | "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", 1637 | "requires": { 1638 | "has": "1.0.1" 1639 | } 1640 | }, 1641 | "is-stream": { 1642 | "version": "1.1.0", 1643 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", 1644 | "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" 1645 | }, 1646 | "is-symbol": { 1647 | "version": "1.0.1", 1648 | "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", 1649 | "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" 1650 | }, 1651 | "is-typedarray": { 1652 | "version": "1.0.0", 1653 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", 1654 | "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" 1655 | }, 1656 | "is-utf8": { 1657 | "version": "0.2.1", 1658 | "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", 1659 | "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" 1660 | }, 1661 | "isarray": { 1662 | "version": "1.0.0", 1663 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", 1664 | "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" 1665 | }, 1666 | "isomorphic-fetch": { 1667 | "version": "2.2.1", 1668 | "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", 1669 | "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", 1670 | "requires": { 1671 | "node-fetch": "1.7.3", 1672 | "whatwg-fetch": "2.0.3" 1673 | } 1674 | }, 1675 | "isstream": { 1676 | "version": "0.1.2", 1677 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", 1678 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" 1679 | }, 1680 | "js-sha3": { 1681 | "version": "0.3.1", 1682 | "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.3.1.tgz", 1683 | "integrity": "sha1-hhIoAhQvCChQKg0d7h2V4lO7AkM=" 1684 | }, 1685 | "js-tokens": { 1686 | "version": "3.0.2", 1687 | "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", 1688 | "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" 1689 | }, 1690 | "jsbn": { 1691 | "version": "0.1.1", 1692 | "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", 1693 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", 1694 | "optional": true 1695 | }, 1696 | "jsesc": { 1697 | "version": "0.5.0", 1698 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", 1699 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" 1700 | }, 1701 | "json-schema": { 1702 | "version": "0.2.3", 1703 | "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", 1704 | "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" 1705 | }, 1706 | "json-schema-traverse": { 1707 | "version": "0.3.1", 1708 | "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", 1709 | "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=" 1710 | }, 1711 | "json-stringify-safe": { 1712 | "version": "5.0.1", 1713 | "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", 1714 | "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" 1715 | }, 1716 | "json3": { 1717 | "version": "3.3.2", 1718 | "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", 1719 | "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=" 1720 | }, 1721 | "json5": { 1722 | "version": "0.5.1", 1723 | "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", 1724 | "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" 1725 | }, 1726 | "jsonfile": { 1727 | "version": "2.4.0", 1728 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", 1729 | "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", 1730 | "requires": { 1731 | "graceful-fs": "4.1.11" 1732 | } 1733 | }, 1734 | "jsprim": { 1735 | "version": "1.4.1", 1736 | "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", 1737 | "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", 1738 | "requires": { 1739 | "assert-plus": "1.0.0", 1740 | "extsprintf": "1.3.0", 1741 | "json-schema": "0.2.3", 1742 | "verror": "1.10.0" 1743 | } 1744 | }, 1745 | "keccak": { 1746 | "version": "1.3.0", 1747 | "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.3.0.tgz", 1748 | "integrity": "sha512-JgsKPxYhcJxKrV+TrCyg/GwZbOjhpRPrz2kG8xbAsUaIDelUlKjm08YcwBO9Fm8sqf/Kg8ZWkk6nWujhLykfvw==", 1749 | "requires": { 1750 | "bindings": "1.3.0", 1751 | "inherits": "2.0.3", 1752 | "nan": "2.7.0", 1753 | "prebuild-install": "2.3.0", 1754 | "safe-buffer": "5.1.1" 1755 | } 1756 | }, 1757 | "keccakjs": { 1758 | "version": "0.2.1", 1759 | "resolved": "https://registry.npmjs.org/keccakjs/-/keccakjs-0.2.1.tgz", 1760 | "integrity": "sha1-HWM6+QfvMFu/ny+mFtVsRFYd+k0=", 1761 | "requires": { 1762 | "browserify-sha3": "0.0.1", 1763 | "sha3": "1.2.0" 1764 | } 1765 | }, 1766 | "klaw": { 1767 | "version": "1.3.1", 1768 | "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", 1769 | "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", 1770 | "requires": { 1771 | "graceful-fs": "4.1.11" 1772 | } 1773 | }, 1774 | "lcid": { 1775 | "version": "1.0.0", 1776 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", 1777 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", 1778 | "requires": { 1779 | "invert-kv": "1.0.0" 1780 | } 1781 | }, 1782 | "level-codec": { 1783 | "version": "7.0.1", 1784 | "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.1.tgz", 1785 | "integrity": "sha512-Ua/R9B9r3RasXdRmOtd+t9TCOEIIlts+TN/7XTT2unhDaL6sJn83S3rUyljbr6lVtw49N3/yA0HHjpV6Kzb2aQ==" 1786 | }, 1787 | "level-errors": { 1788 | "version": "1.0.5", 1789 | "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.5.tgz", 1790 | "integrity": "sha512-/cLUpQduF6bNrWuAC4pwtUKA5t669pCsCi2XbmojG2tFeOr9j6ShtdDCtFFQO1DRt+EVZhx9gPzP9G2bUaG4ig==", 1791 | "requires": { 1792 | "errno": "0.1.4" 1793 | } 1794 | }, 1795 | "level-iterator-stream": { 1796 | "version": "1.3.1", 1797 | "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", 1798 | "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", 1799 | "requires": { 1800 | "inherits": "2.0.3", 1801 | "level-errors": "1.0.5", 1802 | "readable-stream": "1.1.14", 1803 | "xtend": "4.0.1" 1804 | }, 1805 | "dependencies": { 1806 | "isarray": { 1807 | "version": "0.0.1", 1808 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 1809 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" 1810 | }, 1811 | "readable-stream": { 1812 | "version": "1.1.14", 1813 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", 1814 | "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", 1815 | "requires": { 1816 | "core-util-is": "1.0.2", 1817 | "inherits": "2.0.3", 1818 | "isarray": "0.0.1", 1819 | "string_decoder": "0.10.31" 1820 | } 1821 | }, 1822 | "string_decoder": { 1823 | "version": "0.10.31", 1824 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1825 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" 1826 | } 1827 | } 1828 | }, 1829 | "level-ws": { 1830 | "version": "0.0.0", 1831 | "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", 1832 | "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", 1833 | "requires": { 1834 | "readable-stream": "1.0.34", 1835 | "xtend": "2.1.2" 1836 | }, 1837 | "dependencies": { 1838 | "isarray": { 1839 | "version": "0.0.1", 1840 | "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", 1841 | "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" 1842 | }, 1843 | "readable-stream": { 1844 | "version": "1.0.34", 1845 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", 1846 | "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", 1847 | "requires": { 1848 | "core-util-is": "1.0.2", 1849 | "inherits": "2.0.3", 1850 | "isarray": "0.0.1", 1851 | "string_decoder": "0.10.31" 1852 | } 1853 | }, 1854 | "string_decoder": { 1855 | "version": "0.10.31", 1856 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", 1857 | "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" 1858 | }, 1859 | "xtend": { 1860 | "version": "2.1.2", 1861 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", 1862 | "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", 1863 | "requires": { 1864 | "object-keys": "0.4.0" 1865 | } 1866 | } 1867 | } 1868 | }, 1869 | "levelup": { 1870 | "version": "1.3.9", 1871 | "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", 1872 | "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", 1873 | "requires": { 1874 | "deferred-leveldown": "1.2.2", 1875 | "level-codec": "7.0.1", 1876 | "level-errors": "1.0.5", 1877 | "level-iterator-stream": "1.3.1", 1878 | "prr": "1.0.1", 1879 | "semver": "5.4.1", 1880 | "xtend": "4.0.1" 1881 | } 1882 | }, 1883 | "load-json-file": { 1884 | "version": "1.1.0", 1885 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", 1886 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", 1887 | "requires": { 1888 | "graceful-fs": "4.1.11", 1889 | "parse-json": "2.2.0", 1890 | "pify": "2.3.0", 1891 | "pinkie-promise": "2.0.1", 1892 | "strip-bom": "2.0.0" 1893 | } 1894 | }, 1895 | "lodash": { 1896 | "version": "4.17.4", 1897 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", 1898 | "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" 1899 | }, 1900 | "lodash._baseassign": { 1901 | "version": "3.2.0", 1902 | "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", 1903 | "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", 1904 | "requires": { 1905 | "lodash._basecopy": "3.0.1", 1906 | "lodash.keys": "3.1.2" 1907 | } 1908 | }, 1909 | "lodash._basecopy": { 1910 | "version": "3.0.1", 1911 | "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", 1912 | "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=" 1913 | }, 1914 | "lodash._basecreate": { 1915 | "version": "3.0.3", 1916 | "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", 1917 | "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=" 1918 | }, 1919 | "lodash._getnative": { 1920 | "version": "3.9.1", 1921 | "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", 1922 | "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=" 1923 | }, 1924 | "lodash._isiterateecall": { 1925 | "version": "3.0.9", 1926 | "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", 1927 | "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=" 1928 | }, 1929 | "lodash.assign": { 1930 | "version": "4.2.0", 1931 | "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", 1932 | "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" 1933 | }, 1934 | "lodash.create": { 1935 | "version": "3.1.1", 1936 | "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", 1937 | "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", 1938 | "requires": { 1939 | "lodash._baseassign": "3.2.0", 1940 | "lodash._basecreate": "3.0.3", 1941 | "lodash._isiterateecall": "3.0.9" 1942 | } 1943 | }, 1944 | "lodash.isarguments": { 1945 | "version": "3.1.0", 1946 | "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", 1947 | "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=" 1948 | }, 1949 | "lodash.isarray": { 1950 | "version": "3.0.4", 1951 | "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", 1952 | "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=" 1953 | }, 1954 | "lodash.keys": { 1955 | "version": "3.1.2", 1956 | "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", 1957 | "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", 1958 | "requires": { 1959 | "lodash._getnative": "3.9.1", 1960 | "lodash.isarguments": "3.1.0", 1961 | "lodash.isarray": "3.0.4" 1962 | } 1963 | }, 1964 | "loose-envify": { 1965 | "version": "1.3.1", 1966 | "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", 1967 | "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", 1968 | "requires": { 1969 | "js-tokens": "3.0.2" 1970 | } 1971 | }, 1972 | "ltgt": { 1973 | "version": "2.2.0", 1974 | "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.2.0.tgz", 1975 | "integrity": "sha1-tlul/LNJopkkyOMz98alVi8uSEI=" 1976 | }, 1977 | "md5.js": { 1978 | "version": "1.3.4", 1979 | "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz", 1980 | "integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=", 1981 | "requires": { 1982 | "hash-base": "3.0.4", 1983 | "inherits": "2.0.3" 1984 | }, 1985 | "dependencies": { 1986 | "hash-base": { 1987 | "version": "3.0.4", 1988 | "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.0.4.tgz", 1989 | "integrity": "sha1-X8hoaEfs1zSZQDMZprCj8/auSRg=", 1990 | "requires": { 1991 | "inherits": "2.0.3", 1992 | "safe-buffer": "5.1.1" 1993 | } 1994 | } 1995 | } 1996 | }, 1997 | "memdown": { 1998 | "version": "1.4.1", 1999 | "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.4.1.tgz", 2000 | "integrity": "sha1-tOThkhdGZP+65BNhqlAPMRnv4hU=", 2001 | "requires": { 2002 | "abstract-leveldown": "2.7.2", 2003 | "functional-red-black-tree": "1.0.1", 2004 | "immediate": "3.2.3", 2005 | "inherits": "2.0.3", 2006 | "ltgt": "2.2.0", 2007 | "safe-buffer": "5.1.1" 2008 | }, 2009 | "dependencies": { 2010 | "abstract-leveldown": { 2011 | "version": "2.7.2", 2012 | "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.7.2.tgz", 2013 | "integrity": "sha512-+OVvxH2rHVEhWLdbudP6p0+dNMXu8JA1CbhP19T8paTYAcX7oJ4OVjT+ZUVpv7mITxXHqDMej+GdqXBmXkw09w==", 2014 | "requires": { 2015 | "xtend": "4.0.1" 2016 | } 2017 | } 2018 | } 2019 | }, 2020 | "memorystream": { 2021 | "version": "0.3.1", 2022 | "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", 2023 | "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=" 2024 | }, 2025 | "merkle-patricia-tree": { 2026 | "version": "2.2.0", 2027 | "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.2.0.tgz", 2028 | "integrity": "sha1-ekeHsSYqsA/psgSrRxsAUzIwbvo=", 2029 | "requires": { 2030 | "async": "1.5.2", 2031 | "ethereumjs-util": "4.5.0", 2032 | "level-ws": "0.0.0", 2033 | "levelup": "1.3.9", 2034 | "memdown": "1.4.1", 2035 | "readable-stream": "2.3.3", 2036 | "rlp": "2.0.0", 2037 | "semaphore": "1.1.0" 2038 | }, 2039 | "dependencies": { 2040 | "async": { 2041 | "version": "1.5.2", 2042 | "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", 2043 | "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" 2044 | } 2045 | } 2046 | }, 2047 | "mime-db": { 2048 | "version": "1.30.0", 2049 | "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.30.0.tgz", 2050 | "integrity": "sha1-dMZD2i3Z1qRTmZY0ZbJtXKfXHwE=" 2051 | }, 2052 | "mime-types": { 2053 | "version": "2.1.17", 2054 | "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.17.tgz", 2055 | "integrity": "sha1-Cdejk/A+mVp5+K+Fe3Cp4KsWVXo=", 2056 | "requires": { 2057 | "mime-db": "1.30.0" 2058 | } 2059 | }, 2060 | "min-document": { 2061 | "version": "2.19.0", 2062 | "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", 2063 | "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", 2064 | "requires": { 2065 | "dom-walk": "0.1.1" 2066 | } 2067 | }, 2068 | "minimalistic-assert": { 2069 | "version": "1.0.0", 2070 | "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", 2071 | "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" 2072 | }, 2073 | "minimalistic-crypto-utils": { 2074 | "version": "1.0.1", 2075 | "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", 2076 | "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" 2077 | }, 2078 | "minimatch": { 2079 | "version": "3.0.4", 2080 | "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", 2081 | "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", 2082 | "requires": { 2083 | "brace-expansion": "1.1.8" 2084 | } 2085 | }, 2086 | "minimist": { 2087 | "version": "0.0.8", 2088 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", 2089 | "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" 2090 | }, 2091 | "mkdirp": { 2092 | "version": "0.5.1", 2093 | "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", 2094 | "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", 2095 | "requires": { 2096 | "minimist": "0.0.8" 2097 | } 2098 | }, 2099 | "mocha": { 2100 | "version": "3.5.3", 2101 | "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.3.tgz", 2102 | "integrity": "sha512-/6na001MJWEtYxHOV1WLfsmR4YIynkUEhBwzsb+fk2qmQ3iqsi258l/Q2MWHJMImAcNpZ8DEdYAK72NHoIQ9Eg==", 2103 | "requires": { 2104 | "browser-stdout": "1.3.0", 2105 | "commander": "2.9.0", 2106 | "debug": "2.6.8", 2107 | "diff": "3.2.0", 2108 | "escape-string-regexp": "1.0.5", 2109 | "glob": "7.1.1", 2110 | "growl": "1.9.2", 2111 | "he": "1.1.1", 2112 | "json3": "3.3.2", 2113 | "lodash.create": "3.1.1", 2114 | "mkdirp": "0.5.1", 2115 | "supports-color": "3.1.2" 2116 | } 2117 | }, 2118 | "ms": { 2119 | "version": "2.0.0", 2120 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", 2121 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" 2122 | }, 2123 | "nan": { 2124 | "version": "2.7.0", 2125 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.7.0.tgz", 2126 | "integrity": "sha1-2Vv3IeyHfgjbJ27T/G63j5CDrUY=" 2127 | }, 2128 | "node-abi": { 2129 | "version": "2.1.1", 2130 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.1.1.tgz", 2131 | "integrity": "sha512-6oxV13poCOv7TfGvhsSz6XZWpXeKkdGVh72++cs33OfMh3KAX8lN84dCvmqSETyDXAFcUHtV7eJrgFBoOqZbNQ==" 2132 | }, 2133 | "node-fetch": { 2134 | "version": "1.7.3", 2135 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", 2136 | "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", 2137 | "requires": { 2138 | "encoding": "0.1.12", 2139 | "is-stream": "1.1.0" 2140 | } 2141 | }, 2142 | "noop-logger": { 2143 | "version": "0.1.1", 2144 | "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", 2145 | "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" 2146 | }, 2147 | "normalize-package-data": { 2148 | "version": "2.4.0", 2149 | "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", 2150 | "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", 2151 | "requires": { 2152 | "hosted-git-info": "2.5.0", 2153 | "is-builtin-module": "1.0.0", 2154 | "semver": "5.4.1", 2155 | "validate-npm-package-license": "3.0.1" 2156 | } 2157 | }, 2158 | "npmlog": { 2159 | "version": "4.1.2", 2160 | "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", 2161 | "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", 2162 | "requires": { 2163 | "are-we-there-yet": "1.1.4", 2164 | "console-control-strings": "1.1.0", 2165 | "gauge": "2.7.4", 2166 | "set-blocking": "2.0.0" 2167 | } 2168 | }, 2169 | "number-is-nan": { 2170 | "version": "1.0.1", 2171 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", 2172 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" 2173 | }, 2174 | "oauth-sign": { 2175 | "version": "0.8.2", 2176 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", 2177 | "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" 2178 | }, 2179 | "object-assign": { 2180 | "version": "4.1.1", 2181 | "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", 2182 | "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" 2183 | }, 2184 | "object-inspect": { 2185 | "version": "1.3.0", 2186 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.3.0.tgz", 2187 | "integrity": "sha512-OHHnLgLNXpM++GnJRyyhbr2bwl3pPVm4YvaraHrRvDt/N3r+s/gDVHciA7EJBTkijKXj61ssgSAikq1fb0IBRg==" 2188 | }, 2189 | "object-keys": { 2190 | "version": "0.4.0", 2191 | "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", 2192 | "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" 2193 | }, 2194 | "once": { 2195 | "version": "1.4.0", 2196 | "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", 2197 | "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", 2198 | "requires": { 2199 | "wrappy": "1.0.2" 2200 | } 2201 | }, 2202 | "original-require": { 2203 | "version": "1.0.1", 2204 | "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", 2205 | "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=" 2206 | }, 2207 | "os-homedir": { 2208 | "version": "1.0.2", 2209 | "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", 2210 | "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" 2211 | }, 2212 | "os-locale": { 2213 | "version": "1.4.0", 2214 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", 2215 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", 2216 | "requires": { 2217 | "lcid": "1.0.0" 2218 | } 2219 | }, 2220 | "os-tmpdir": { 2221 | "version": "1.0.2", 2222 | "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", 2223 | "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" 2224 | }, 2225 | "parse-headers": { 2226 | "version": "2.0.1", 2227 | "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", 2228 | "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=", 2229 | "requires": { 2230 | "for-each": "0.3.2", 2231 | "trim": "0.0.1" 2232 | } 2233 | }, 2234 | "parse-json": { 2235 | "version": "2.2.0", 2236 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", 2237 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", 2238 | "requires": { 2239 | "error-ex": "1.3.1" 2240 | } 2241 | }, 2242 | "path-exists": { 2243 | "version": "2.1.0", 2244 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", 2245 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", 2246 | "requires": { 2247 | "pinkie-promise": "2.0.1" 2248 | } 2249 | }, 2250 | "path-is-absolute": { 2251 | "version": "1.0.1", 2252 | "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", 2253 | "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" 2254 | }, 2255 | "path-parse": { 2256 | "version": "1.0.5", 2257 | "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", 2258 | "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" 2259 | }, 2260 | "path-type": { 2261 | "version": "1.1.0", 2262 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", 2263 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", 2264 | "requires": { 2265 | "graceful-fs": "4.1.11", 2266 | "pify": "2.3.0", 2267 | "pinkie-promise": "2.0.1" 2268 | } 2269 | }, 2270 | "pbkdf2": { 2271 | "version": "3.0.14", 2272 | "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.14.tgz", 2273 | "integrity": "sha512-gjsZW9O34fm0R7PaLHRJmLLVfSoesxztjPjE9o6R+qtVJij90ltg1joIovN9GKrRW3t1PzhDDG3UMEMFfZ+1wA==", 2274 | "requires": { 2275 | "create-hash": "1.1.3", 2276 | "create-hmac": "1.1.6", 2277 | "ripemd160": "2.0.1", 2278 | "safe-buffer": "5.1.1", 2279 | "sha.js": "2.4.9" 2280 | } 2281 | }, 2282 | "performance-now": { 2283 | "version": "2.1.0", 2284 | "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", 2285 | "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=" 2286 | }, 2287 | "pify": { 2288 | "version": "2.3.0", 2289 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", 2290 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" 2291 | }, 2292 | "pinkie": { 2293 | "version": "2.0.4", 2294 | "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", 2295 | "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" 2296 | }, 2297 | "pinkie-promise": { 2298 | "version": "2.0.1", 2299 | "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", 2300 | "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", 2301 | "requires": { 2302 | "pinkie": "2.0.4" 2303 | } 2304 | }, 2305 | "prebuild-install": { 2306 | "version": "2.3.0", 2307 | "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.3.0.tgz", 2308 | "integrity": "sha512-gzjq2oHB8oMbzJSsSh9MQ64zrXZGt092/uT4TLZlz2qnrPxpWqp4vYB7LZrDxnlxf5RfbCjkgDI/z0EIVuYzAw==", 2309 | "requires": { 2310 | "expand-template": "1.1.0", 2311 | "github-from-package": "0.0.0", 2312 | "minimist": "1.2.0", 2313 | "mkdirp": "0.5.1", 2314 | "node-abi": "2.1.1", 2315 | "noop-logger": "0.1.1", 2316 | "npmlog": "4.1.2", 2317 | "os-homedir": "1.0.2", 2318 | "pump": "1.0.2", 2319 | "rc": "1.2.2", 2320 | "simple-get": "1.4.3", 2321 | "tar-fs": "1.16.0", 2322 | "tunnel-agent": "0.6.0", 2323 | "xtend": "4.0.1" 2324 | }, 2325 | "dependencies": { 2326 | "minimist": { 2327 | "version": "1.2.0", 2328 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2329 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 2330 | } 2331 | } 2332 | }, 2333 | "private": { 2334 | "version": "0.1.8", 2335 | "resolved": "https://registry.npmjs.org/private/-/private-0.1.8.tgz", 2336 | "integrity": "sha512-VvivMrbvd2nKkiG38qjULzlc+4Vx4wm/whI9pQD35YrARNnhxeiRktSOhSukRLFNlzg6Br/cJPet5J/u19r/mg==" 2337 | }, 2338 | "process": { 2339 | "version": "0.5.2", 2340 | "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", 2341 | "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" 2342 | }, 2343 | "process-nextick-args": { 2344 | "version": "1.0.7", 2345 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", 2346 | "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" 2347 | }, 2348 | "prr": { 2349 | "version": "1.0.1", 2350 | "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", 2351 | "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" 2352 | }, 2353 | "pump": { 2354 | "version": "1.0.2", 2355 | "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", 2356 | "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=", 2357 | "requires": { 2358 | "end-of-stream": "1.4.0", 2359 | "once": "1.4.0" 2360 | } 2361 | }, 2362 | "punycode": { 2363 | "version": "1.4.1", 2364 | "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", 2365 | "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" 2366 | }, 2367 | "qs": { 2368 | "version": "6.5.1", 2369 | "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.1.tgz", 2370 | "integrity": "sha512-eRzhrN1WSINYCDCbrz796z37LOe3m5tmW7RQf6oBntukAG1nmovJvhnwHHRMAfeoItc1m2Hk02WER2aQ/iqs+A==" 2371 | }, 2372 | "randombytes": { 2373 | "version": "2.0.5", 2374 | "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", 2375 | "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", 2376 | "requires": { 2377 | "safe-buffer": "5.1.1" 2378 | } 2379 | }, 2380 | "rc": { 2381 | "version": "1.2.2", 2382 | "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.2.tgz", 2383 | "integrity": "sha1-2M6ctX6NZNnHut2YdsfDTL48cHc=", 2384 | "requires": { 2385 | "deep-extend": "0.4.2", 2386 | "ini": "1.3.4", 2387 | "minimist": "1.2.0", 2388 | "strip-json-comments": "2.0.1" 2389 | }, 2390 | "dependencies": { 2391 | "minimist": { 2392 | "version": "1.2.0", 2393 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2394 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 2395 | } 2396 | } 2397 | }, 2398 | "read-pkg": { 2399 | "version": "1.1.0", 2400 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", 2401 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", 2402 | "requires": { 2403 | "load-json-file": "1.1.0", 2404 | "normalize-package-data": "2.4.0", 2405 | "path-type": "1.1.0" 2406 | } 2407 | }, 2408 | "read-pkg-up": { 2409 | "version": "1.0.1", 2410 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", 2411 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", 2412 | "requires": { 2413 | "find-up": "1.1.2", 2414 | "read-pkg": "1.1.0" 2415 | } 2416 | }, 2417 | "readable-stream": { 2418 | "version": "2.3.3", 2419 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", 2420 | "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", 2421 | "requires": { 2422 | "core-util-is": "1.0.2", 2423 | "inherits": "2.0.3", 2424 | "isarray": "1.0.0", 2425 | "process-nextick-args": "1.0.7", 2426 | "safe-buffer": "5.1.1", 2427 | "string_decoder": "1.0.3", 2428 | "util-deprecate": "1.0.2" 2429 | } 2430 | }, 2431 | "regenerate": { 2432 | "version": "1.3.3", 2433 | "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.3.tgz", 2434 | "integrity": "sha512-jVpo1GadrDAK59t/0jRx5VxYWQEDkkEKi6+HjE3joFVLfDOh9Xrdh0dF1eSq+BI/SwvTQ44gSscJ8N5zYL61sg==" 2435 | }, 2436 | "regenerator-runtime": { 2437 | "version": "0.11.0", 2438 | "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.11.0.tgz", 2439 | "integrity": "sha512-/aA0kLeRb5N9K0d4fw7ooEbI+xDe+DKD499EQqygGqeS8N3xto15p09uY2xj7ixP81sNPXvRLnAQIqdVStgb1A==" 2440 | }, 2441 | "regenerator-transform": { 2442 | "version": "0.10.1", 2443 | "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.10.1.tgz", 2444 | "integrity": "sha512-PJepbvDbuK1xgIgnau7Y90cwaAmO/LCLMI2mPvaXq2heGMR3aWW5/BQvYrhJ8jgmQjXewXvBjzfqKcVOmhjZ6Q==", 2445 | "requires": { 2446 | "babel-runtime": "6.26.0", 2447 | "babel-types": "6.26.0", 2448 | "private": "0.1.8" 2449 | } 2450 | }, 2451 | "regexpu-core": { 2452 | "version": "2.0.0", 2453 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", 2454 | "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", 2455 | "requires": { 2456 | "regenerate": "1.3.3", 2457 | "regjsgen": "0.2.0", 2458 | "regjsparser": "0.1.5" 2459 | } 2460 | }, 2461 | "regjsgen": { 2462 | "version": "0.2.0", 2463 | "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", 2464 | "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" 2465 | }, 2466 | "regjsparser": { 2467 | "version": "0.1.5", 2468 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", 2469 | "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", 2470 | "requires": { 2471 | "jsesc": "0.5.0" 2472 | } 2473 | }, 2474 | "repeating": { 2475 | "version": "2.0.1", 2476 | "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", 2477 | "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", 2478 | "requires": { 2479 | "is-finite": "1.0.2" 2480 | } 2481 | }, 2482 | "request": { 2483 | "version": "2.83.0", 2484 | "resolved": "https://registry.npmjs.org/request/-/request-2.83.0.tgz", 2485 | "integrity": "sha512-lR3gD69osqm6EYLk9wB/G1W/laGWjzH90t1vEa2xuxHD5KUrSzp9pUSfTm+YC5Nxt2T8nMPEvKlhbQayU7bgFw==", 2486 | "requires": { 2487 | "aws-sign2": "0.7.0", 2488 | "aws4": "1.6.0", 2489 | "caseless": "0.12.0", 2490 | "combined-stream": "1.0.5", 2491 | "extend": "3.0.1", 2492 | "forever-agent": "0.6.1", 2493 | "form-data": "2.3.1", 2494 | "har-validator": "5.0.3", 2495 | "hawk": "6.0.2", 2496 | "http-signature": "1.2.0", 2497 | "is-typedarray": "1.0.0", 2498 | "isstream": "0.1.2", 2499 | "json-stringify-safe": "5.0.1", 2500 | "mime-types": "2.1.17", 2501 | "oauth-sign": "0.8.2", 2502 | "performance-now": "2.1.0", 2503 | "qs": "6.5.1", 2504 | "safe-buffer": "5.1.1", 2505 | "stringstream": "0.0.5", 2506 | "tough-cookie": "2.3.3", 2507 | "tunnel-agent": "0.6.0", 2508 | "uuid": "3.1.0" 2509 | }, 2510 | "dependencies": { 2511 | "uuid": { 2512 | "version": "3.1.0", 2513 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", 2514 | "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" 2515 | } 2516 | } 2517 | }, 2518 | "require-directory": { 2519 | "version": "2.1.1", 2520 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", 2521 | "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" 2522 | }, 2523 | "require-from-string": { 2524 | "version": "1.2.1", 2525 | "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", 2526 | "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" 2527 | }, 2528 | "require-main-filename": { 2529 | "version": "1.0.1", 2530 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", 2531 | "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" 2532 | }, 2533 | "resolve": { 2534 | "version": "1.4.0", 2535 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", 2536 | "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", 2537 | "requires": { 2538 | "path-parse": "1.0.5" 2539 | } 2540 | }, 2541 | "resumer": { 2542 | "version": "0.0.0", 2543 | "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", 2544 | "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", 2545 | "requires": { 2546 | "through": "2.3.8" 2547 | } 2548 | }, 2549 | "rimraf": { 2550 | "version": "2.6.2", 2551 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", 2552 | "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", 2553 | "requires": { 2554 | "glob": "7.1.1" 2555 | } 2556 | }, 2557 | "ripemd160": { 2558 | "version": "2.0.1", 2559 | "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", 2560 | "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", 2561 | "requires": { 2562 | "hash-base": "2.0.2", 2563 | "inherits": "2.0.3" 2564 | } 2565 | }, 2566 | "rlp": { 2567 | "version": "2.0.0", 2568 | "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.0.0.tgz", 2569 | "integrity": "sha1-nbOE/0uJqPYVY9kjldhiWxjzr7A=" 2570 | }, 2571 | "rustbn.js": { 2572 | "version": "0.1.0", 2573 | "resolved": "https://registry.npmjs.org/rustbn.js/-/rustbn.js-0.1.0.tgz", 2574 | "integrity": "sha512-AFsqeHid+1evulpDnqQuuXkh79Xl3VdUmvCRMeRxnEdEW4TDu6tBMxVTrqiT/vCsmxgrIcdrWVQW0utrGr+G6Q==" 2575 | }, 2576 | "safe-buffer": { 2577 | "version": "5.1.1", 2578 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", 2579 | "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" 2580 | }, 2581 | "scrypt": { 2582 | "version": "6.0.3", 2583 | "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", 2584 | "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", 2585 | "requires": { 2586 | "nan": "2.7.0" 2587 | } 2588 | }, 2589 | "scrypt.js": { 2590 | "version": "0.2.0", 2591 | "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", 2592 | "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=", 2593 | "requires": { 2594 | "scrypt": "6.0.3", 2595 | "scryptsy": "1.2.1" 2596 | } 2597 | }, 2598 | "scryptsy": { 2599 | "version": "1.2.1", 2600 | "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", 2601 | "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", 2602 | "requires": { 2603 | "pbkdf2": "3.0.14" 2604 | } 2605 | }, 2606 | "secp256k1": { 2607 | "version": "3.3.0", 2608 | "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.3.0.tgz", 2609 | "integrity": "sha512-CbrQoeGG5V0kQ1ohEMGI+J7oKerapLTpivLICBaXR0R4HyQcN3kM9itLsV5fdpV1UR1bD14tOkJ1xughmlDIiQ==", 2610 | "requires": { 2611 | "bindings": "1.3.0", 2612 | "bip66": "1.1.5", 2613 | "bn.js": "4.11.8", 2614 | "create-hash": "1.1.3", 2615 | "drbg.js": "1.0.1", 2616 | "elliptic": "6.4.0", 2617 | "nan": "2.7.0", 2618 | "prebuild-install": "2.3.0", 2619 | "safe-buffer": "5.1.1" 2620 | } 2621 | }, 2622 | "semaphore": { 2623 | "version": "1.1.0", 2624 | "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", 2625 | "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" 2626 | }, 2627 | "semver": { 2628 | "version": "5.4.1", 2629 | "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", 2630 | "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" 2631 | }, 2632 | "set-blocking": { 2633 | "version": "2.0.0", 2634 | "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", 2635 | "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" 2636 | }, 2637 | "sha.js": { 2638 | "version": "2.4.9", 2639 | "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.9.tgz", 2640 | "integrity": "sha512-G8zektVqbiPHrylgew9Zg1VRB1L/DtXNUVAM6q4QLy8NE3qtHlFXTf8VLL4k1Yl6c7NMjtZUTdXV+X44nFaT6A==", 2641 | "requires": { 2642 | "inherits": "2.0.3", 2643 | "safe-buffer": "5.1.1" 2644 | } 2645 | }, 2646 | "sha3": { 2647 | "version": "1.2.0", 2648 | "resolved": "https://registry.npmjs.org/sha3/-/sha3-1.2.0.tgz", 2649 | "integrity": "sha1-aYnxtwpJhwWHajc+LGKs6WqpOZo=", 2650 | "requires": { 2651 | "nan": "2.7.0" 2652 | } 2653 | }, 2654 | "signal-exit": { 2655 | "version": "3.0.2", 2656 | "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", 2657 | "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" 2658 | }, 2659 | "simple-get": { 2660 | "version": "1.4.3", 2661 | "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", 2662 | "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=", 2663 | "requires": { 2664 | "once": "1.4.0", 2665 | "unzip-response": "1.0.2", 2666 | "xtend": "4.0.1" 2667 | } 2668 | }, 2669 | "slash": { 2670 | "version": "1.0.0", 2671 | "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", 2672 | "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" 2673 | }, 2674 | "sntp": { 2675 | "version": "2.0.2", 2676 | "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.0.2.tgz", 2677 | "integrity": "sha1-UGQRDwr4X3z9t9a2ekACjOUrSys=", 2678 | "requires": { 2679 | "hoek": "4.2.0" 2680 | } 2681 | }, 2682 | "solc": { 2683 | "version": "0.4.15", 2684 | "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.15.tgz", 2685 | "integrity": "sha1-iujxYGoSSj+BwoudzssJZOvfnyU=", 2686 | "requires": { 2687 | "fs-extra": "0.30.0", 2688 | "memorystream": "0.3.1", 2689 | "require-from-string": "1.2.1", 2690 | "semver": "5.4.1", 2691 | "yargs": "4.8.1" 2692 | } 2693 | }, 2694 | "source-map": { 2695 | "version": "0.5.7", 2696 | "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", 2697 | "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" 2698 | }, 2699 | "source-map-support": { 2700 | "version": "0.4.18", 2701 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", 2702 | "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", 2703 | "requires": { 2704 | "source-map": "0.5.7" 2705 | } 2706 | }, 2707 | "spdx-correct": { 2708 | "version": "1.0.2", 2709 | "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", 2710 | "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", 2711 | "requires": { 2712 | "spdx-license-ids": "1.2.2" 2713 | } 2714 | }, 2715 | "spdx-expression-parse": { 2716 | "version": "1.0.4", 2717 | "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", 2718 | "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" 2719 | }, 2720 | "spdx-license-ids": { 2721 | "version": "1.2.2", 2722 | "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", 2723 | "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" 2724 | }, 2725 | "sshpk": { 2726 | "version": "1.13.1", 2727 | "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", 2728 | "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", 2729 | "requires": { 2730 | "asn1": "0.2.3", 2731 | "assert-plus": "1.0.0", 2732 | "bcrypt-pbkdf": "1.0.1", 2733 | "dashdash": "1.14.1", 2734 | "ecc-jsbn": "0.1.1", 2735 | "getpass": "0.1.7", 2736 | "jsbn": "0.1.1", 2737 | "tweetnacl": "0.14.5" 2738 | } 2739 | }, 2740 | "string-width": { 2741 | "version": "1.0.2", 2742 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", 2743 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", 2744 | "requires": { 2745 | "code-point-at": "1.1.0", 2746 | "is-fullwidth-code-point": "1.0.0", 2747 | "strip-ansi": "3.0.1" 2748 | } 2749 | }, 2750 | "string.prototype.trim": { 2751 | "version": "1.1.2", 2752 | "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", 2753 | "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", 2754 | "requires": { 2755 | "define-properties": "1.1.2", 2756 | "es-abstract": "1.9.0", 2757 | "function-bind": "1.1.1" 2758 | } 2759 | }, 2760 | "string_decoder": { 2761 | "version": "1.0.3", 2762 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", 2763 | "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", 2764 | "requires": { 2765 | "safe-buffer": "5.1.1" 2766 | } 2767 | }, 2768 | "stringstream": { 2769 | "version": "0.0.5", 2770 | "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", 2771 | "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" 2772 | }, 2773 | "strip-ansi": { 2774 | "version": "3.0.1", 2775 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", 2776 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", 2777 | "requires": { 2778 | "ansi-regex": "2.1.1" 2779 | } 2780 | }, 2781 | "strip-bom": { 2782 | "version": "2.0.0", 2783 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", 2784 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", 2785 | "requires": { 2786 | "is-utf8": "0.2.1" 2787 | } 2788 | }, 2789 | "strip-hex-prefix": { 2790 | "version": "1.0.0", 2791 | "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", 2792 | "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", 2793 | "requires": { 2794 | "is-hex-prefixed": "1.0.0" 2795 | } 2796 | }, 2797 | "strip-json-comments": { 2798 | "version": "2.0.1", 2799 | "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", 2800 | "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" 2801 | }, 2802 | "supports-color": { 2803 | "version": "3.1.2", 2804 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", 2805 | "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", 2806 | "requires": { 2807 | "has-flag": "1.0.0" 2808 | } 2809 | }, 2810 | "tape": { 2811 | "version": "4.8.0", 2812 | "resolved": "https://registry.npmjs.org/tape/-/tape-4.8.0.tgz", 2813 | "integrity": "sha512-TWILfEnvO7I8mFe35d98F6T5fbLaEtbFTG/lxWvid8qDfFTxt19EBijWmB4j3+Hoh5TfHE2faWs73ua+EphuBA==", 2814 | "requires": { 2815 | "deep-equal": "1.0.1", 2816 | "defined": "1.0.0", 2817 | "for-each": "0.3.2", 2818 | "function-bind": "1.1.1", 2819 | "glob": "7.1.2", 2820 | "has": "1.0.1", 2821 | "inherits": "2.0.3", 2822 | "minimist": "1.2.0", 2823 | "object-inspect": "1.3.0", 2824 | "resolve": "1.4.0", 2825 | "resumer": "0.0.0", 2826 | "string.prototype.trim": "1.1.2", 2827 | "through": "2.3.8" 2828 | }, 2829 | "dependencies": { 2830 | "glob": { 2831 | "version": "7.1.2", 2832 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", 2833 | "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", 2834 | "requires": { 2835 | "fs.realpath": "1.0.0", 2836 | "inflight": "1.0.6", 2837 | "inherits": "2.0.3", 2838 | "minimatch": "3.0.4", 2839 | "once": "1.4.0", 2840 | "path-is-absolute": "1.0.1" 2841 | } 2842 | }, 2843 | "minimist": { 2844 | "version": "1.2.0", 2845 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", 2846 | "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" 2847 | } 2848 | } 2849 | }, 2850 | "tar-fs": { 2851 | "version": "1.16.0", 2852 | "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.16.0.tgz", 2853 | "integrity": "sha512-I9rb6v7mjWLtOfCau9eH5L7sLJyU2BnxtEZRQ5Mt+eRKmf1F0ohXmT/Jc3fr52kDvjJ/HV5MH3soQfPL5bQ0Yg==", 2854 | "requires": { 2855 | "chownr": "1.0.1", 2856 | "mkdirp": "0.5.1", 2857 | "pump": "1.0.2", 2858 | "tar-stream": "1.5.4" 2859 | } 2860 | }, 2861 | "tar-stream": { 2862 | "version": "1.5.4", 2863 | "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", 2864 | "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=", 2865 | "requires": { 2866 | "bl": "1.2.1", 2867 | "end-of-stream": "1.4.0", 2868 | "readable-stream": "2.3.3", 2869 | "xtend": "4.0.1" 2870 | } 2871 | }, 2872 | "through": { 2873 | "version": "2.3.8", 2874 | "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", 2875 | "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" 2876 | }, 2877 | "to-fast-properties": { 2878 | "version": "1.0.3", 2879 | "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", 2880 | "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" 2881 | }, 2882 | "tough-cookie": { 2883 | "version": "2.3.3", 2884 | "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", 2885 | "integrity": "sha1-C2GKVWW23qkL80JdBNVe3EdadWE=", 2886 | "requires": { 2887 | "punycode": "1.4.1" 2888 | } 2889 | }, 2890 | "trim": { 2891 | "version": "0.0.1", 2892 | "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", 2893 | "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" 2894 | }, 2895 | "trim-right": { 2896 | "version": "1.0.1", 2897 | "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", 2898 | "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" 2899 | }, 2900 | "truffle": { 2901 | "version": "4.0.1", 2902 | "resolved": "https://registry.npmjs.org/truffle/-/truffle-4.0.1.tgz", 2903 | "integrity": "sha512-PybO+GMq3AvsfCWfEx4sbuaJlDL19iR8Ff20cO0TtP599N5JbMLlhwlffvVInPgFjP+F11vjSOYj3hT8fONs5A==", 2904 | "requires": { 2905 | "mocha": "3.5.3", 2906 | "original-require": "1.0.1", 2907 | "solc": "0.4.18" 2908 | }, 2909 | "dependencies": { 2910 | "solc": { 2911 | "version": "0.4.18", 2912 | "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.18.tgz", 2913 | "integrity": "sha512-Kq+O3PNF9Pfq7fB+lDYAuoqRdghLmZyfngsg0h1Hj38NKAeVHeGPOGeZasn5KqdPeCzbMFvaGyTySxzGv6aXCg==", 2914 | "requires": { 2915 | "fs-extra": "0.30.0", 2916 | "memorystream": "0.3.1", 2917 | "require-from-string": "1.2.1", 2918 | "semver": "5.4.1", 2919 | "yargs": "4.8.1" 2920 | } 2921 | } 2922 | } 2923 | }, 2924 | "truffle-hdwallet-provider": { 2925 | "version": "0.0.3", 2926 | "resolved": "https://registry.npmjs.org/truffle-hdwallet-provider/-/truffle-hdwallet-provider-0.0.3.tgz", 2927 | "integrity": "sha1-Dh3gIQS3PTh14c9wkzBbTqii2EM=", 2928 | "requires": { 2929 | "bip39": "2.4.0", 2930 | "ethereumjs-wallet": "0.6.0", 2931 | "web3": "0.18.4", 2932 | "web3-provider-engine": "8.6.1" 2933 | } 2934 | }, 2935 | "tunnel-agent": { 2936 | "version": "0.6.0", 2937 | "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", 2938 | "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", 2939 | "requires": { 2940 | "safe-buffer": "5.1.1" 2941 | } 2942 | }, 2943 | "tweetnacl": { 2944 | "version": "0.14.5", 2945 | "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", 2946 | "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", 2947 | "optional": true 2948 | }, 2949 | "unorm": { 2950 | "version": "1.4.1", 2951 | "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", 2952 | "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA=" 2953 | }, 2954 | "unzip-response": { 2955 | "version": "1.0.2", 2956 | "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", 2957 | "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=" 2958 | }, 2959 | "utf8": { 2960 | "version": "2.1.2", 2961 | "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz", 2962 | "integrity": "sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY=" 2963 | }, 2964 | "util-deprecate": { 2965 | "version": "1.0.2", 2966 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 2967 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" 2968 | }, 2969 | "uuid": { 2970 | "version": "2.0.3", 2971 | "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", 2972 | "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" 2973 | }, 2974 | "validate-npm-package-license": { 2975 | "version": "3.0.1", 2976 | "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", 2977 | "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", 2978 | "requires": { 2979 | "spdx-correct": "1.0.2", 2980 | "spdx-expression-parse": "1.0.4" 2981 | } 2982 | }, 2983 | "verror": { 2984 | "version": "1.10.0", 2985 | "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", 2986 | "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", 2987 | "requires": { 2988 | "assert-plus": "1.0.0", 2989 | "core-util-is": "1.0.2", 2990 | "extsprintf": "1.3.0" 2991 | } 2992 | }, 2993 | "web3": { 2994 | "version": "0.18.4", 2995 | "resolved": "https://registry.npmjs.org/web3/-/web3-0.18.4.tgz", 2996 | "integrity": "sha1-gewXhBRUkfLqqJVbMcBgSeB8Xn0=", 2997 | "requires": { 2998 | "bignumber.js": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", 2999 | "crypto-js": "3.1.8", 3000 | "utf8": "2.1.2", 3001 | "xhr2": "0.1.4", 3002 | "xmlhttprequest": "1.8.0" 3003 | }, 3004 | "dependencies": { 3005 | "bignumber.js": { 3006 | "version": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" 3007 | } 3008 | } 3009 | }, 3010 | "web3-provider-engine": { 3011 | "version": "8.6.1", 3012 | "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-8.6.1.tgz", 3013 | "integrity": "sha1-TYbhnjDKr5ffNRUR7A9gE25bMOs=", 3014 | "requires": { 3015 | "async": "2.5.0", 3016 | "clone": "2.1.1", 3017 | "ethereumjs-block": "1.7.0", 3018 | "ethereumjs-tx": "1.3.3", 3019 | "ethereumjs-util": "5.1.2", 3020 | "ethereumjs-vm": "2.3.1", 3021 | "isomorphic-fetch": "2.2.1", 3022 | "request": "2.83.0", 3023 | "semaphore": "1.1.0", 3024 | "solc": "0.4.15", 3025 | "tape": "4.8.0", 3026 | "web3": "0.16.0", 3027 | "xhr": "2.4.0", 3028 | "xtend": "4.0.1" 3029 | }, 3030 | "dependencies": { 3031 | "bignumber.js": { 3032 | "version": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9" 3033 | }, 3034 | "ethereumjs-util": { 3035 | "version": "5.1.2", 3036 | "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", 3037 | "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=", 3038 | "requires": { 3039 | "babel-preset-es2015": "6.24.1", 3040 | "babelify": "7.3.0", 3041 | "bn.js": "4.11.8", 3042 | "create-hash": "1.1.3", 3043 | "ethjs-util": "0.1.4", 3044 | "keccak": "1.3.0", 3045 | "rlp": "2.0.0", 3046 | "secp256k1": "3.3.0" 3047 | } 3048 | }, 3049 | "web3": { 3050 | "version": "0.16.0", 3051 | "resolved": "https://registry.npmjs.org/web3/-/web3-0.16.0.tgz", 3052 | "integrity": "sha1-pFVBdc1GKUMDWx8dOUMvdBxrYBk=", 3053 | "requires": { 3054 | "bignumber.js": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9", 3055 | "crypto-js": "3.1.8", 3056 | "utf8": "2.1.2", 3057 | "xmlhttprequest": "1.8.0" 3058 | } 3059 | } 3060 | } 3061 | }, 3062 | "whatwg-fetch": { 3063 | "version": "2.0.3", 3064 | "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", 3065 | "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" 3066 | }, 3067 | "which-module": { 3068 | "version": "1.0.0", 3069 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", 3070 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" 3071 | }, 3072 | "wide-align": { 3073 | "version": "1.1.2", 3074 | "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", 3075 | "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", 3076 | "requires": { 3077 | "string-width": "1.0.2" 3078 | } 3079 | }, 3080 | "window-size": { 3081 | "version": "0.2.0", 3082 | "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", 3083 | "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=" 3084 | }, 3085 | "wrap-ansi": { 3086 | "version": "2.1.0", 3087 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", 3088 | "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", 3089 | "requires": { 3090 | "string-width": "1.0.2", 3091 | "strip-ansi": "3.0.1" 3092 | } 3093 | }, 3094 | "wrappy": { 3095 | "version": "1.0.2", 3096 | "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", 3097 | "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" 3098 | }, 3099 | "xhr": { 3100 | "version": "2.4.0", 3101 | "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", 3102 | "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=", 3103 | "requires": { 3104 | "global": "4.3.2", 3105 | "is-function": "1.0.1", 3106 | "parse-headers": "2.0.1", 3107 | "xtend": "4.0.1" 3108 | } 3109 | }, 3110 | "xhr2": { 3111 | "version": "0.1.4", 3112 | "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", 3113 | "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" 3114 | }, 3115 | "xmlhttprequest": { 3116 | "version": "1.8.0", 3117 | "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", 3118 | "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" 3119 | }, 3120 | "xtend": { 3121 | "version": "4.0.1", 3122 | "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", 3123 | "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" 3124 | }, 3125 | "y18n": { 3126 | "version": "3.2.1", 3127 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", 3128 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" 3129 | }, 3130 | "yargs": { 3131 | "version": "4.8.1", 3132 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", 3133 | "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", 3134 | "requires": { 3135 | "cliui": "3.2.0", 3136 | "decamelize": "1.2.0", 3137 | "get-caller-file": "1.0.2", 3138 | "lodash.assign": "4.2.0", 3139 | "os-locale": "1.4.0", 3140 | "read-pkg-up": "1.0.1", 3141 | "require-directory": "2.1.1", 3142 | "require-main-filename": "1.0.1", 3143 | "set-blocking": "2.0.0", 3144 | "string-width": "1.0.2", 3145 | "which-module": "1.0.0", 3146 | "window-size": "0.2.0", 3147 | "y18n": "3.2.1", 3148 | "yargs-parser": "2.4.1" 3149 | } 3150 | }, 3151 | "yargs-parser": { 3152 | "version": "2.4.1", 3153 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", 3154 | "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=", 3155 | "requires": { 3156 | "camelcase": "3.0.0", 3157 | "lodash.assign": "4.2.0" 3158 | } 3159 | }, 3160 | "zeppelin-solidity": { 3161 | "version": "1.4.0", 3162 | "resolved": "https://registry.npmjs.org/zeppelin-solidity/-/zeppelin-solidity-1.4.0.tgz", 3163 | "integrity": "sha512-eJfD1Zf0ZP2m0oYnB/HM7JPJ81MNjs3qt+c/TRd5kvCSOU3EfYNHz5YfFgzkJzvPUGs0Zg8spzGROlqXShvisg==" 3164 | } 3165 | } 3166 | } 3167 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "zilliqa-token-contract", 3 | "version": "1.0.0", 4 | "description": "Zilliqa Token Distribution", 5 | "main": "contracts", 6 | "directories": { 7 | "test": "test", 8 | "migrations": "migrations" 9 | }, 10 | "license": "MIT", 11 | "dependencies": { 12 | "bignumber": "^1.1.0", 13 | "bignumber.js": "^4.1.0", 14 | "truffle": "^4.0.1", 15 | "truffle-hdwallet-provider": "0.0.3", 16 | "zeppelin-solidity": "^1.4.0" 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /test/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Zilliqa/Zilliqa-ERC20-Token/7c47f528cd8f952eb99e1b06c3f3b93371dff841/test/.DS_Store -------------------------------------------------------------------------------- /test/helpers.js: -------------------------------------------------------------------------------- 1 | var BigNumber = require('bignumber.js'); 2 | 3 | var m_w = 123456789; 4 | var m_z = 987654321; 5 | var mask = 0xffffffff; 6 | 7 | // Takes any integer 8 | function seed(i) { 9 | m_w = i; 10 | m_z = 987654321; 11 | } 12 | 13 | // Returns number between 0 (inclusive) and 1.0 (exclusive), 14 | // just like Math.random(). 15 | function random() 16 | { 17 | m_z = (36969 * (m_z & 65535) + (m_z >> 16)) & mask; 18 | m_w = (18000 * (m_w & 65535) + (m_w >> 16)) & mask; 19 | var result = ((m_z << 16) + m_w) & mask; 20 | result /= 4294967296; 21 | return result + 0.5; 22 | } 23 | 24 | module.exports.setSeed = function(i) { seed(i);}; 25 | 26 | module.exports.getRandomInt = function (min, max) { 27 | min = Math.ceil(min); 28 | max = Math.floor(max); 29 | return Math.floor(random() * (max - min)) + min; //The maximum is exclusive and the minimum is inclusive 30 | }; 31 | 32 | //////////////////////////////////////////////////////////////////////////////// 33 | 34 | module.exports.getRandomBigInt = function() { 35 | var string = "0x"; 36 | for( var i = 0 ; i < 28 ; i++ ) { 37 | var rand = module.exports.getRandomInt(0,256); 38 | string += Number(rand).toString(16); 39 | } 40 | 41 | return (new BigNumber(string)).absoluteValue(); 42 | }; 43 | 44 | //////////////////////////////////////////////////////////////////////////////// 45 | 46 | module.exports.getRandomBigIntCapped = function( cap ) { 47 | var num = module.exports.getRandomBigInt(); 48 | if( num.greaterThanOrEqualTo( cap ) ) { 49 | if( cap.eq( new BigNumber(0) ) ) return cap; 50 | return num.modulo(cap); 51 | } 52 | else return num.absoluteValue(); 53 | }; 54 | 55 | 56 | 57 | //////////////////////////////////////////////////////////////////////////////// 58 | 59 | module.exports.getRandomAccount = function(accounts) { 60 | var numAccounts = accounts.length; 61 | return accounts[module.exports.getRandomInt(0,numAccounts)]; 62 | }; 63 | 64 | //////////////////////////////////////////////////////////////////////////////// 65 | 66 | module.exports.getRandomDifferentAccount = function(accounts, currentAccount ) { 67 | if( accounts.length <= 1 ) return null; 68 | var result; 69 | do { 70 | result = module.exports.getRandomAccount(accounts); 71 | } while( result == currentAccount ); 72 | 73 | return result; 74 | }; 75 | 76 | //////////////////////////////////////////////////////////////////////////////// 77 | 78 | module.exports.sendPromise = function(method, params) { 79 | return new Promise(function(fulfill, reject){ 80 | web3.currentProvider.sendAsync({ 81 | jsonrpc: '2.0', 82 | method, 83 | params: params || [], 84 | id: new Date().getTime() 85 | }, function(err,result) { 86 | if (err) { 87 | reject(err); 88 | } 89 | else { 90 | fulfill(result); 91 | } 92 | }); 93 | }); 94 | }; 95 | 96 | //////////////////////////////////////////////////////////////////////////////// 97 | 98 | module.exports.throwErrorMessage = function( error ) { 99 | if( error.message.search('invalid opcode') >= 0 ) return true; 100 | if( error.message.search('out of gas') >= 0 ) return true; 101 | return false; 102 | }; 103 | -------------------------------------------------------------------------------- /test/token.js: -------------------------------------------------------------------------------- 1 | var Token = artifacts.require("./ZilliqaToken.sol"); 2 | var BigNumber = require('bignumber.js'); 3 | var Helpers = require('./helpers.js'); 4 | 5 | //////////////////////////////////////////////////////////////////////////////// 6 | 7 | var tokenContract; 8 | 9 | var tokenOwner; 10 | var tokenAdmin; 11 | 12 | var tokenOwnerAccount; 13 | var nonOwnerAccount; 14 | 15 | var totalSupply = web3.toWei( new BigNumber(12600000000), "ether" ); 16 | 17 | var erc20TokenContract; 18 | 19 | //////////////////////////////////////////////////////////////////////////////// 20 | // tests are currently broken 21 | 22 | contract('token contract', function(accounts) { 23 | 24 | beforeEach(function(done){ 25 | done(); 26 | }); 27 | afterEach(function(done){ 28 | done(); 29 | }); 30 | 31 | it("mine one block to get current time", function() { 32 | return Helpers.sendPromise( 'evm_mine', [] ); 33 | }); 34 | 35 | it("deploy token and init accounts", function() { 36 | tokenOwner = accounts[0]; 37 | tokenAdmin = accounts[1]; 38 | 39 | var currentTime = web3.eth.getBlock('latest').timestamp; 40 | 41 | return Token.new(tokenAdmin, totalSupply, {from: tokenOwner}).then(function(result){ 42 | tokenContract = result; 43 | 44 | // check total supply 45 | return tokenContract.totalSupply(); 46 | }).then(function(result){ 47 | assert.equal(result.valueOf(), totalSupply.valueOf(), "unexpected total supply"); 48 | }); 49 | }); 50 | 51 | it("transfer before transfer start time", function() { 52 | var value = new BigNumber(5); 53 | return tokenContract.transfer(accounts[2], value, {from:tokenOwner}).then(function(){ 54 | // get balances 55 | return tokenContract.balanceOf(tokenOwner); 56 | }).then(function(result){ 57 | assert.equal(result.valueOf(), totalSupply.minus(value).valueOf(), "unexpected balance"); 58 | return tokenContract.balanceOf(accounts[2]); 59 | }).then(function(result){ 60 | assert.equal(result.valueOf(), value.valueOf(), "unexpected balance"); 61 | }); 62 | }); 63 | 64 | it("transfer from owner when transfers started", function() { 65 | var value = new BigNumber(5); 66 | return tokenContract.transfer(accounts[2], value, {from:tokenOwner}).then(function(){ 67 | // get balances 68 | return tokenContract.balanceOf(tokenOwner); 69 | }).then(function(result){ 70 | assert.equal(result.valueOf(), totalSupply.minus(value.mul(2)).valueOf(), "unexpected balance"); 71 | return tokenContract.balanceOf(accounts[2]); 72 | }).then(function(result){ 73 | assert.equal(result.valueOf(), value.mul(2).valueOf(), "unexpected balance"); 74 | }); 75 | }); 76 | 77 | it("transfer from non owner when transfers started", function() { 78 | var value = new BigNumber(5); 79 | return tokenContract.transfer(accounts[1], value, {from:accounts[2]}).then(function(){ 80 | assert.fail("transfer is during sale is expected to fail"); 81 | }).catch(function(error){ 82 | assert( Helpers.throwErrorMessage(error), "expected throw got " + error); 83 | }); 84 | }); 85 | 86 | it("transferfrom non owner when transfers started", function() { 87 | var value = new BigNumber(5); 88 | return tokenContract.approve(accounts[5], value, {from:accounts[2]}).then(function(){ 89 | return tokenContract.transferFrom(accounts[2],accounts[3],value,{from:accounts[5]}); 90 | }).then(function(){ 91 | assert.fail("transfer from should fail in token sale"); 92 | }).catch(function(error){ 93 | assert( Helpers.throwErrorMessage(error), "expected throw got " + error); 94 | // revert approve 95 | return tokenContract.approve(accounts[5], new BigNumber(0), {from:accounts[2]}); 96 | }); 97 | }); 98 | 99 | it("transfer more than balance", function() { 100 | var value = new BigNumber(101); 101 | return tokenContract.transfer(accounts[8], value, {from:accounts[7]}).then(function(){ 102 | assert.fail("transfer should fail"); 103 | }).catch(function(error){ 104 | assert( Helpers.throwErrorMessage(error), "expected throw got " + error); 105 | }); 106 | }); 107 | 108 | it("transfer to address 0", function() { 109 | var value = new BigNumber(1); 110 | return tokenContract.transfer("0x0000000000000000000000000000000000000000", value, {from:accounts[7]}).then(function(){ 111 | assert.fail("transfer should fail"); 112 | }).catch(function(error){ 113 | assert( Helpers.throwErrorMessage(error), "expected throw got " + error); 114 | }); 115 | }); 116 | 117 | it("transfer to token contract", function() { 118 | var value = new BigNumber(1); 119 | return tokenContract.transfer(tokenContract.address, value, {from:accounts[7]}).then(function(){ 120 | assert.fail("transfer should fail"); 121 | }).catch(function(error){ 122 | assert( Helpers.throwErrorMessage(error), "expected throw got " + error); 123 | }); 124 | }); 125 | 126 | it("transfer - see that balance changes", function() { 127 | var value = new BigNumber(60); 128 | return tokenContract.transfer(accounts[8], value, {from:accounts[7]}).then(function(){ 129 | return tokenContract.balanceOf(accounts[7]); 130 | }).then(function(result){ 131 | assert.equal(result.valueOf(), new BigNumber(40).valueOf(), "unexpected balance"); 132 | return tokenContract.balanceOf(accounts[8]); 133 | }).then(function(result){ 134 | assert.equal(result.valueOf(), new BigNumber(60).valueOf(), "unexpected balance"); 135 | }); 136 | }); 137 | 138 | it("approve more than balance", function() { 139 | var value = new BigNumber(180); 140 | return tokenContract.approve(accounts[9], value, {from:accounts[8]}).then(function(){ 141 | return tokenContract.allowance(accounts[8],accounts[9]); 142 | }).then(function(result){ 143 | assert.equal(result.valueOf(), value.valueOf(), "unexpected allowance"); 144 | }); 145 | }); 146 | 147 | it("transferfrom more than balance", function() { 148 | var value = new BigNumber(180); 149 | return tokenContract.transferFrom(accounts[8], accounts[7], value, {from:accounts[9]}).then(function(){ 150 | assert.fail("transfer should fail"); 151 | }).catch(function(error){ 152 | assert( Helpers.throwErrorMessage(error), "expected throw got " + error); 153 | }); 154 | }); 155 | 156 | it("transferfrom to address 0", function() { 157 | var value = new BigNumber(10); 158 | return tokenContract.transferFrom(accounts[8], "0x0000000000000000000000000000000000000000", value, {from:accounts[9]}).then(function(){ 159 | assert.fail("transfer should fail"); 160 | }).catch(function(error){ 161 | assert( Helpers.throwErrorMessage(error), "expected throw got " + error); 162 | }); 163 | }); 164 | 165 | it("transferfrom to token contract", function() { 166 | var value = new BigNumber(10); 167 | return tokenContract.transferFrom(accounts[8], tokenContract.address, value, {from:accounts[9]}).then(function(){ 168 | assert.fail("transfer should fail"); 169 | }).catch(function(error){ 170 | assert( Helpers.throwErrorMessage(error), "expected throw got " + error); 171 | }); 172 | }); 173 | 174 | it("transferfrom", function() { 175 | var value = new BigNumber(10); 176 | return tokenContract.transferFrom(accounts[8], accounts[6], value, {from:accounts[9]}).then(function(){ 177 | // check balance was changed 178 | return tokenContract.balanceOf(accounts[6]); 179 | }).then(function(result){ 180 | assert.equal(result.valueOf(), value.valueOf(), "unexpected balance"); 181 | return tokenContract.balanceOf(accounts[8]); 182 | }).then(function(result){ 183 | assert.equal(result.valueOf(), (new BigNumber(50)).valueOf(), "unexpected balance"); 184 | 185 | // check allwance was changed 186 | return tokenContract.allowance(accounts[8],accounts[9]); 187 | }).then(function(result){ 188 | assert.equal(result.valueOf(), (new BigNumber(170)).valueOf(), "unexpected allowance"); 189 | }); 190 | }); 191 | 192 | it("burn - see that balance and total supply changes", function() { 193 | var value = new BigNumber(4); 194 | return tokenContract.burn(value, {from:accounts[6]}).then(function(){ 195 | return tokenContract.balanceOf(accounts[6]); 196 | }).then(function(result){ 197 | assert.equal(result.valueOf(), new BigNumber(6).valueOf(), "unexpected balance"); 198 | // check total supply 199 | return tokenContract.totalSupply(); 200 | }).then(function(result){ 201 | assert.equal(result.valueOf(), (totalSupply.minus(value)).valueOf(), "unexpected balance"); 202 | totalSupply = totalSupply.minus(value); 203 | }); 204 | }); 205 | 206 | it("burn - burn more than balance should fail", function() { 207 | var value = new BigNumber(14); 208 | return tokenContract.burn(value, {from:accounts[6]}).then(function(){ 209 | assert.fail("burn should fail"); 210 | }).catch(function(error){ 211 | assert( Helpers.throwErrorMessage(error), "expected throw got " + error); 212 | }); 213 | }); 214 | 215 | it("transfer from owner when transfers started", function() { 216 | var value = new BigNumber(100); 217 | return tokenContract.transfer(accounts[5], value, {from:tokenOwner}); 218 | }); 219 | 220 | it("burn from", function() { 221 | var value = new BigNumber(50); 222 | return tokenContract.approve(accounts[3], value, {from:accounts[5]}).then(function(){ 223 | return tokenContract.burnFrom(accounts[5], value, {from:accounts[3]}); 224 | }).then(function(){ 225 | // check accounts[5] balance was reduced 226 | return tokenContract.balanceOf(accounts[5]); 227 | }).then(function(result){ 228 | assert.equal(result.valueOf(), (new BigNumber(50)).valueOf(), "unexpected balance"); 229 | 230 | // check total supply was reduced 231 | return tokenContract.totalSupply(); 232 | }).then(function(result){ 233 | assert.equal(result.valueOf(), totalSupply.minus(50), "unexpected total supply"); 234 | totalSupply = totalSupply.minus(50); 235 | }); 236 | }); 237 | 238 | it("mine one block to get current time", function() { 239 | return Helpers.sendPromise( 'evm_mine', [] ); 240 | }); 241 | 242 | it("deploy token and init accounts", function() { 243 | var currentTime = web3.eth.getBlock('latest').timestamp; 244 | 245 | return Token.new(tokenAdmin, totalSupply, {from: accounts[5]}).then(function(result){ 246 | erc20TokenContract = result; 247 | return erc20TokenContract.transfer(tokenContract.address,new BigNumber(1),{from:accounts[5]}); 248 | }).then(function(){ 249 | // check balance 250 | return erc20TokenContract.balanceOf(tokenContract.address); 251 | }).then(function(result){ 252 | assert.equal(result.valueOf(),(new BigNumber(1)).valueOf(), "unexpected balance" ); 253 | }); 254 | }); 255 | 256 | it("try to drain contract from non-admin address", function() { 257 | return tokenContract.emergencyERC20Drain( erc20TokenContract.address, new BigNumber(1), {from:tokenOwner}).then(function(result){ 258 | }).then(function(){ 259 | assert.fail("burn should fail"); 260 | }).catch(function(error){ 261 | assert( Helpers.throwErrorMessage(error), "expected throw got " + error); 262 | }); 263 | }); 264 | 265 | it("try to drain contract from admin address", function() { 266 | return tokenContract.emergencyERC20Drain( erc20TokenContract.address, new BigNumber(1), {from:tokenAdmin}).then(function(result){ 267 | }).then(function(){ 268 | return erc20TokenContract.balanceOf(tokenAdmin); 269 | }).then(function(result){ 270 | assert.equal(result.valueOf(), (new BigNumber(1)).valueOf(), "unexpected admin balance"); 271 | }); 272 | }); 273 | }); 274 | -------------------------------------------------------------------------------- /truffle.js: -------------------------------------------------------------------------------- 1 | var HDWalletProvider = require('truffle-hdwallet-provider'); 2 | 3 | var infura_apikey = 'X79nsSctU4b1gjfdcHoO'; 4 | var mnemonic = 'order undo globe together habit object meat dinosaur awful slight shield inch'; 5 | 6 | 7 | 8 | module.exports = { 9 | networks: { 10 | development: { 11 | host: "localhost", 12 | port: 8545, 13 | network_id: "*", // Match any network id, 14 | gas: 1000000 15 | }, 16 | ropsten: { 17 | provider: new HDWalletProvider(mnemonic, "https://ropsten.infura.io/"+infura_apikey), 18 | network_id: 3, 19 | gas: 3000000 20 | }, 21 | live: { 22 | host: "localhost", 23 | port: 8546, 24 | network_id: 1 // Ethereum public network 25 | } 26 | } 27 | }; 28 | --------------------------------------------------------------------------------