From ffe464a43ea44ffa4c48eed7c61b4331e5d6d09f Mon Sep 17 00:00:00 2001 From: David Knott Date: Wed, 14 Jun 2017 10:38:32 -0600 Subject: [PATCH 001/160] Refactors the Mintable Token contract --- contracts/token/MintableToken.sol | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/contracts/token/MintableToken.sol b/contracts/token/MintableToken.sol index 8f6dc751b..9e8b59308 100644 --- a/contracts/token/MintableToken.sol +++ b/contracts/token/MintableToken.sol @@ -14,11 +14,10 @@ import '../ownership/Ownable.sol'; */ contract MintableToken is StandardToken, Ownable { - event Mint(address indexed to, uint value); + event Mint(address indexed to, uint amount); event MintFinished(); bool public mintingFinished = false; - uint public totalSupply = 0; modifier canMint() { From 403e7336a9e00f77b944e7a6ab4dcd9ad4e520db Mon Sep 17 00:00:00 2001 From: Matt Date: Wed, 14 Jun 2017 16:31:12 -0400 Subject: [PATCH 002/160] fixed typo --- contracts/token/StandardToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 1093800c6..22a2de157 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -36,7 +36,7 @@ contract StandardToken is BasicToken, ERC20 { } /** - * @dev Aprove the passed address to spend the specified amount of tokens on beahlf of msg.sender. + * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender. * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ From 2020d56ba48971adb5535399ff57173e4bec6bed Mon Sep 17 00:00:00 2001 From: Dave Appleton Date: Sat, 17 Jun 2017 11:10:30 +0800 Subject: [PATCH 003/160] assert is now built in --- contracts/SafeMath.sol | 5 ----- 1 file changed, 5 deletions(-) diff --git a/contracts/SafeMath.sol b/contracts/SafeMath.sol index 02718a372..8b203c21a 100644 --- a/contracts/SafeMath.sol +++ b/contracts/SafeMath.sol @@ -45,9 +45,4 @@ library SafeMath { return a < b ? a : b; } - function assert(bool assertion) internal { - if (!assertion) { - throw; - } - } } From b1e504d6c6b965f7408ffdd0a19c78fbe892a2cd Mon Sep 17 00:00:00 2001 From: RStorm Date: Mon, 19 Jun 2017 18:55:09 -0700 Subject: [PATCH 004/160] change uint to uint256 --- contracts/DayLimit.sol | 24 ++++++++-------- contracts/LimitBalance.sol | 6 ++-- contracts/MultisigWallet.sol | 14 +++++----- contracts/SafeMath.sol | 14 +++++----- contracts/lifecycle/Migrations.sol | 4 +-- contracts/lifecycle/TokenDestructible.sol | 2 +- contracts/ownership/DelayedClaimable.sol | 6 ++-- contracts/ownership/HasNoTokens.sol | 4 +-- contracts/ownership/Multisig.sol | 10 +++---- contracts/ownership/Shareable.sol | 34 +++++++++++------------ contracts/payment/PullPayment.sol | 10 +++---- contracts/token/BasicToken.sol | 12 ++++---- contracts/token/CrowdsaleToken.sol | 8 +++--- contracts/token/ERC20.sol | 8 +++--- contracts/token/ERC20Basic.sol | 8 +++--- contracts/token/LimitedTransferToken.sol | 6 ++-- contracts/token/MintableToken.sol | 4 +-- contracts/token/PausableToken.sol | 4 +-- contracts/token/SimpleToken.sol | 4 +-- contracts/token/StandardToken.sol | 12 ++++---- contracts/token/VestedToken.sol | 20 ++++++------- 21 files changed, 107 insertions(+), 107 deletions(-) diff --git a/contracts/DayLimit.sol b/contracts/DayLimit.sol index c76a955a7..3c8d5b0ce 100644 --- a/contracts/DayLimit.sol +++ b/contracts/DayLimit.sol @@ -7,24 +7,24 @@ pragma solidity ^0.4.11; */ contract DayLimit { - uint public dailyLimit; - uint public spentToday; - uint public lastDay; + uint256 public dailyLimit; + uint256 public spentToday; + uint256 public lastDay; /** * @dev Constructor that sets the passed value as a dailyLimit. - * @param _limit Uint to represent the daily limit. + * @param _limit uint256 to represent the daily limit. */ - function DayLimit(uint _limit) { + function DayLimit(uint256 _limit) { dailyLimit = _limit; lastDay = today(); } /** * @dev sets the daily limit. Does not alter the amount already spent today. - * @param _newLimit Uint to represent the new limit. + * @param _newLimit uint256 to represent the new limit. */ - function _setDailyLimit(uint _newLimit) internal { + function _setDailyLimit(uint256 _newLimit) internal { dailyLimit = _newLimit; } @@ -37,10 +37,10 @@ contract DayLimit { /** * @dev Checks to see if there is enough resource to spend today. If true, the resource may be expended. - * @param _value Uint representing the amount of resource to spend. + * @param _value uint256 representing the amount of resource to spend. * @return A boolean that is True if the resource was spended and false otherwise. */ - function underLimit(uint _value) internal returns (bool) { + function underLimit(uint256 _value) internal returns (bool) { // reset the spend limit if we're on a different day to last time. if (today() > lastDay) { spentToday = 0; @@ -57,16 +57,16 @@ contract DayLimit { /** * @dev Private function to determine today's index - * @return Uint of today's index. + * @return uint256 of today's index. */ - function today() private constant returns (uint) { + function today() private constant returns (uint256) { return now / 1 days; } /** * @dev Simple modifier for daily limit. */ - modifier limitedDaily(uint _value) { + modifier limitedDaily(uint256 _value) { if (!underLimit(_value)) { throw; } diff --git a/contracts/LimitBalance.sol b/contracts/LimitBalance.sol index 4071edbea..57477c749 100644 --- a/contracts/LimitBalance.sol +++ b/contracts/LimitBalance.sol @@ -9,13 +9,13 @@ pragma solidity ^0.4.11; */ contract LimitBalance { - uint public limit; + uint256 public limit; /** * @dev Constructor that sets the passed value as a limit. - * @param _limit Uint to represent the limit. + * @param _limit uint256 to represent the limit. */ - function LimitBalance(uint _limit) { + function LimitBalance(uint256 _limit) { limit = _limit; } diff --git a/contracts/MultisigWallet.sol b/contracts/MultisigWallet.sol index fc6fe37f8..939e70f2c 100644 --- a/contracts/MultisigWallet.sol +++ b/contracts/MultisigWallet.sol @@ -16,7 +16,7 @@ contract MultisigWallet is Multisig, Shareable, DayLimit { struct Transaction { address to; - uint value; + uint256 value; bytes data; } @@ -25,7 +25,7 @@ contract MultisigWallet is Multisig, Shareable, DayLimit { * @param _owners A list of owners. * @param _required The amount required for a transaction to be approved. */ - function MultisigWallet(address[] _owners, uint _required, uint _daylimit) + function MultisigWallet(address[] _owners, uint256 _required, uint256 _daylimit) Shareable(_owners, _required) DayLimit(_daylimit) { } @@ -55,7 +55,7 @@ contract MultisigWallet is Multisig, Shareable, DayLimit { * @param _value The value to send * @param _data The data part of the transaction */ - function execute(address _to, uint _value, bytes _data) external onlyOwner returns (bytes32 _r) { + function execute(address _to, uint256 _value, bytes _data) external onlyOwner returns (bytes32 _r) { // first, take the opportunity to check that we're under the daily limit. if (underLimit(_value)) { SingleTransact(msg.sender, _value, _to, _data); @@ -93,9 +93,9 @@ contract MultisigWallet is Multisig, Shareable, DayLimit { /** * @dev Updates the daily limit value. - * @param _newLimit Uint to represent the new limit. + * @param _newLimit uint256 to represent the new limit. */ - function setDailyLimit(uint _newLimit) onlymanyowners(keccak256(msg.data)) external { + function setDailyLimit(uint256 _newLimit) onlymanyowners(keccak256(msg.data)) external { _setDailyLimit(_newLimit); } @@ -112,8 +112,8 @@ contract MultisigWallet is Multisig, Shareable, DayLimit { * @dev Clears the list of transactions pending approval. */ function clearPending() internal { - uint length = pendingsIndex.length; - for (uint i = 0; i < length; ++i) { + uint256 length = pendingsIndex.length; + for (uint256 i = 0; i < length; ++i) { delete txs[pendingsIndex[i]]; } super.clearPending(); diff --git a/contracts/SafeMath.sol b/contracts/SafeMath.sol index 8b203c21a..76e46b784 100644 --- a/contracts/SafeMath.sol +++ b/contracts/SafeMath.sol @@ -5,26 +5,26 @@ pragma solidity ^0.4.11; * Math operations with safety checks */ library SafeMath { - function mul(uint a, uint b) internal returns (uint) { - uint c = a * b; + function mul(uint256 a, uint256 b) internal returns (uint256) { + uint256 c = a * b; assert(a == 0 || c / a == b); return c; } - function div(uint a, uint b) internal returns (uint) { + function div(uint256 a, uint256 b) internal returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 - uint c = a / b; + uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } - function sub(uint a, uint b) internal returns (uint) { + function sub(uint256 a, uint256 b) internal returns (uint256) { assert(b <= a); return a - b; } - function add(uint a, uint b) internal returns (uint) { - uint c = a + b; + function add(uint256 a, uint256 b) internal returns (uint256) { + uint256 c = a + b; assert(c >= a); return c; } diff --git a/contracts/lifecycle/Migrations.sol b/contracts/lifecycle/Migrations.sol index 42ce534ad..d5b053087 100644 --- a/contracts/lifecycle/Migrations.sol +++ b/contracts/lifecycle/Migrations.sol @@ -8,9 +8,9 @@ import '../ownership/Ownable.sol'; * @dev This is a truffle contract, needed for truffle integration, not meant for use by Zeppelin users. */ contract Migrations is Ownable { - uint public lastCompletedMigration; + uint256 public lastCompletedMigration; - function setCompleted(uint completed) onlyOwner { + function setCompleted(uint256 completed) onlyOwner { lastCompletedMigration = completed; } diff --git a/contracts/lifecycle/TokenDestructible.sol b/contracts/lifecycle/TokenDestructible.sol index 46a729519..fe0b46b6d 100644 --- a/contracts/lifecycle/TokenDestructible.sol +++ b/contracts/lifecycle/TokenDestructible.sol @@ -24,7 +24,7 @@ contract TokenDestructible is Ownable { function destroy(address[] tokens) onlyOwner { // Transfer tokens to owner - for(uint i = 0; i < tokens.length; i++) { + for(uint256 i = 0; i < tokens.length; i++) { ERC20Basic token = ERC20Basic(tokens[i]); uint256 balance = token.balanceOf(this); token.transfer(owner, balance); diff --git a/contracts/ownership/DelayedClaimable.sol b/contracts/ownership/DelayedClaimable.sol index 9360931b0..f5fee6146 100644 --- a/contracts/ownership/DelayedClaimable.sol +++ b/contracts/ownership/DelayedClaimable.sol @@ -11,8 +11,8 @@ import './Claimable.sol'; */ contract DelayedClaimable is Claimable { - uint public end; - uint public start; + uint256 public end; + uint256 public start; /** * @dev Used to specify the time period during which a pending @@ -20,7 +20,7 @@ contract DelayedClaimable is Claimable { * @param _start The earliest time ownership can be claimed. * @param _end The latest time ownership can be claimed. */ - function setLimits(uint _start, uint _end) onlyOwner { + function setLimits(uint256 _start, uint256 _end) onlyOwner { if (_start > _end) throw; end = _end; diff --git a/contracts/ownership/HasNoTokens.sol b/contracts/ownership/HasNoTokens.sol index 46cea2936..d1dc4b3e9 100644 --- a/contracts/ownership/HasNoTokens.sol +++ b/contracts/ownership/HasNoTokens.sol @@ -15,10 +15,10 @@ contract HasNoTokens is Ownable { /** * @dev Reject all ERC23 compatible tokens * @param from_ address The address that is transferring the tokens - * @param value_ Uint the amount of the specified token + * @param value_ uint256 the amount of the specified token * @param data_ Bytes The data passed from the caller. */ - function tokenFallback(address from_, uint value_, bytes data_) external { + function tokenFallback(address from_, uint256 value_, bytes data_) external { throw; } diff --git a/contracts/ownership/Multisig.sol b/contracts/ownership/Multisig.sol index a9a03ef4f..76c78411b 100644 --- a/contracts/ownership/Multisig.sol +++ b/contracts/ownership/Multisig.sol @@ -10,19 +10,19 @@ contract Multisig { // logged events: // Funds has arrived into the wallet (record how much). - event Deposit(address _from, uint value); + event Deposit(address _from, uint256 value); // Single transaction going out of the wallet (record who signed for it, how much, and to whom it's going). - event SingleTransact(address owner, uint value, address to, bytes data); + event SingleTransact(address owner, uint256 value, address to, bytes data); // Multi-sig transaction going out of the wallet (record who signed for it last, the operation hash, how much, and to whom it's going). - event MultiTransact(address owner, bytes32 operation, uint value, address to, bytes data); + event MultiTransact(address owner, bytes32 operation, uint256 value, address to, bytes data); // Confirmation still needed for a transaction. - event ConfirmationNeeded(bytes32 operation, address initiator, uint value, address to, bytes data); + event ConfirmationNeeded(bytes32 operation, address initiator, uint256 value, address to, bytes data); // FUNCTIONS // TODO: document function changeOwner(address _from, address _to) external; - function execute(address _to, uint _value, bytes _data) external returns (bytes32); + function execute(address _to, uint256 _value, bytes _data) external returns (bytes32); function confirm(bytes32 _h) returns (bool); } diff --git a/contracts/ownership/Shareable.sol b/contracts/ownership/Shareable.sol index cd2e8422e..9fdaccfd5 100644 --- a/contracts/ownership/Shareable.sol +++ b/contracts/ownership/Shareable.sol @@ -11,18 +11,18 @@ contract Shareable { // struct for the status of a pending operation. struct PendingState { - uint yetNeeded; - uint ownersDone; - uint index; + uint256 yetNeeded; + uint256 ownersDone; + uint256 index; } // the number of owners that must confirm the same operation before it is run. - uint public required; + uint256 public required; // list of owners address[256] owners; // index on the list of owners to allow reverse lookup - mapping(address => uint) ownerIndex; + mapping(address => uint256) ownerIndex; // the ongoing operations. mapping(bytes32 => PendingState) pendings; bytes32[] pendingsIndex; @@ -59,10 +59,10 @@ contract Shareable { * @param _owners A list of owners. * @param _required The amount required for a transaction to be approved. */ - function Shareable(address[] _owners, uint _required) { + function Shareable(address[] _owners, uint256 _required) { owners[1] = msg.sender; ownerIndex[msg.sender] = 1; - for (uint i = 0; i < _owners.length; ++i) { + for (uint256 i = 0; i < _owners.length; ++i) { owners[2 + i] = _owners[i]; ownerIndex[_owners[i]] = 2 + i; } @@ -77,12 +77,12 @@ contract Shareable { * @param _operation A string identifying the operation. */ function revoke(bytes32 _operation) external { - uint index = ownerIndex[msg.sender]; + uint256 index = ownerIndex[msg.sender]; // make sure they're an owner if (index == 0) { return; } - uint ownerIndexBit = 2**index; + uint256 ownerIndexBit = 2**index; var pending = pendings[_operation]; if (pending.ownersDone & ownerIndexBit > 0) { pending.yetNeeded++; @@ -93,10 +93,10 @@ contract Shareable { /** * @dev Gets an owner by 0-indexed position (using numOwners as the count) - * @param ownerIndex Uint The index of the owner + * @param ownerIndex uint256 The index of the owner * @return The address of the owner */ - function getOwner(uint ownerIndex) external constant returns (address) { + function getOwner(uint256 ownerIndex) external constant returns (address) { return address(owners[ownerIndex + 1]); } @@ -117,7 +117,7 @@ contract Shareable { */ function hasConfirmed(bytes32 _operation, address _owner) constant returns (bool) { var pending = pendings[_operation]; - uint index = ownerIndex[_owner]; + uint256 index = ownerIndex[_owner]; // make sure they're an owner if (index == 0) { @@ -125,7 +125,7 @@ contract Shareable { } // determine the bit to set for this owner. - uint ownerIndexBit = 2**index; + uint256 ownerIndexBit = 2**index; return !(pending.ownersDone & ownerIndexBit == 0); } @@ -136,7 +136,7 @@ contract Shareable { */ function confirmAndCheck(bytes32 _operation) internal returns (bool) { // determine what index the present sender is: - uint index = ownerIndex[msg.sender]; + uint256 index = ownerIndex[msg.sender]; // make sure they're an owner if (index == 0) { throw; @@ -153,7 +153,7 @@ contract Shareable { pendingsIndex[pending.index] = _operation; } // determine the bit to set for this owner. - uint ownerIndexBit = 2**index; + uint256 ownerIndexBit = 2**index; // make sure we (the message sender) haven't confirmed this operation previously. if (pending.ownersDone & ownerIndexBit == 0) { Confirmation(msg.sender, _operation); @@ -177,8 +177,8 @@ contract Shareable { * @dev Clear the pending list. */ function clearPending() internal { - uint length = pendingsIndex.length; - for (uint i = 0; i < length; ++i) { + uint256 length = pendingsIndex.length; + for (uint256 i = 0; i < length; ++i) { if (pendingsIndex[i] != 0) { delete pendings[pendingsIndex[i]]; } diff --git a/contracts/payment/PullPayment.sol b/contracts/payment/PullPayment.sol index 1c59a390d..2c9210004 100644 --- a/contracts/payment/PullPayment.sol +++ b/contracts/payment/PullPayment.sol @@ -10,17 +10,17 @@ import '../SafeMath.sol'; * contract and use asyncSend instead of send. */ contract PullPayment { - using SafeMath for uint; + using SafeMath for uint256; - mapping(address => uint) public payments; - uint public totalPayments; + mapping(address => uint256) public payments; + uint256 public totalPayments; /** * @dev Called by the payer to store the sent amount as credit to be pulled. * @param dest The destination address of the funds. * @param amount The amount to transfer. */ - function asyncSend(address dest, uint amount) internal { + function asyncSend(address dest, uint256 amount) internal { payments[dest] = payments[dest].add(amount); totalPayments = totalPayments.add(amount); } @@ -30,7 +30,7 @@ contract PullPayment { */ function withdrawPayments() { address payee = msg.sender; - uint payment = payments[payee]; + uint256 payment = payments[payee]; if (payment == 0) { throw; diff --git a/contracts/token/BasicToken.sol b/contracts/token/BasicToken.sol index b0f06923f..bb6553bf0 100644 --- a/contracts/token/BasicToken.sol +++ b/contracts/token/BasicToken.sol @@ -10,14 +10,14 @@ import '../SafeMath.sol'; * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { - using SafeMath for uint; + using SafeMath for uint256; - mapping(address => uint) balances; + mapping(address => uint256) balances; /** * @dev Fix for the ERC20 short address attack. */ - modifier onlyPayloadSize(uint size) { + modifier onlyPayloadSize(uint256 size) { if(msg.data.length < size + 4) { throw; } @@ -29,7 +29,7 @@ contract BasicToken is ERC20Basic { * @param _to The address to transfer to. * @param _value The amount to be transferred. */ - function transfer(address _to, uint _value) onlyPayloadSize(2 * 32) { + function transfer(address _to, uint256 _value) onlyPayloadSize(2 * 32) { balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); @@ -38,9 +38,9 @@ contract BasicToken is ERC20Basic { /** * @dev Gets the balance of the specified address. * @param _owner The address to query the the balance of. - * @return An uint representing the amount owned by the passed address. + * @return An uint256 representing the amount owned by the passed address. */ - function balanceOf(address _owner) constant returns (uint balance) { + function balanceOf(address _owner) constant returns (uint256 balance) { return balances[_owner]; } diff --git a/contracts/token/CrowdsaleToken.sol b/contracts/token/CrowdsaleToken.sol index 0f5bca546..0f75d3275 100644 --- a/contracts/token/CrowdsaleToken.sol +++ b/contracts/token/CrowdsaleToken.sol @@ -15,13 +15,13 @@ contract CrowdsaleToken is StandardToken { string public constant name = "CrowdsaleToken"; string public constant symbol = "CRW"; - uint public constant decimals = 18; + uint256 public constant decimals = 18; // replace with your fund collection multisig address address public constant multisig = 0x0; // 1 ether = 500 example tokens - uint public constant PRICE = 500; + uint256 public constant PRICE = 500; /** * @dev Fallback function which receives ether and sends the appropriate number of tokens to the @@ -40,7 +40,7 @@ contract CrowdsaleToken is StandardToken { throw; } - uint tokens = msg.value.mul(getPrice()); + uint256 tokens = msg.value.mul(getPrice()); totalSupply = totalSupply.add(tokens); balances[recipient] = balances[recipient].add(tokens); @@ -54,7 +54,7 @@ contract CrowdsaleToken is StandardToken { * @dev replace this with any other price function * @return The price per unit of token. */ - function getPrice() constant returns (uint result) { + function getPrice() constant returns (uint256 result) { return PRICE; } } diff --git a/contracts/token/ERC20.sol b/contracts/token/ERC20.sol index 34de0fc98..1045ac357 100644 --- a/contracts/token/ERC20.sol +++ b/contracts/token/ERC20.sol @@ -9,8 +9,8 @@ import './ERC20Basic.sol'; * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { - function allowance(address owner, address spender) constant returns (uint); - function transferFrom(address from, address to, uint value); - function approve(address spender, uint value); - event Approval(address indexed owner, address indexed spender, uint value); + function allowance(address owner, address spender) constant returns (uint256); + function transferFrom(address from, address to, uint256 value); + function approve(address spender, uint256 value); + event Approval(address indexed owner, address indexed spender, uint256 value); } diff --git a/contracts/token/ERC20Basic.sol b/contracts/token/ERC20Basic.sol index 4f8d38f03..0e98779e3 100644 --- a/contracts/token/ERC20Basic.sol +++ b/contracts/token/ERC20Basic.sol @@ -7,8 +7,8 @@ pragma solidity ^0.4.11; * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20Basic { - uint public totalSupply; - function balanceOf(address who) constant returns (uint); - function transfer(address to, uint value); - event Transfer(address indexed from, address indexed to, uint value); + uint256 public totalSupply; + function balanceOf(address who) constant returns (uint256); + function transfer(address to, uint256 value); + event Transfer(address indexed from, address indexed to, uint256 value); } diff --git a/contracts/token/LimitedTransferToken.sol b/contracts/token/LimitedTransferToken.sol index a353eac95..ee5032c9b 100644 --- a/contracts/token/LimitedTransferToken.sol +++ b/contracts/token/LimitedTransferToken.sol @@ -22,7 +22,7 @@ contract LimitedTransferToken is ERC20 { /** * @dev Checks whether it can transfer or otherwise throws. */ - modifier canTransfer(address _sender, uint _value) { + modifier canTransfer(address _sender, uint256 _value) { if (_value > transferableTokens(_sender, uint64(now))) throw; _; } @@ -32,7 +32,7 @@ contract LimitedTransferToken is ERC20 { * @param _to The address that will recieve the tokens. * @param _value The amount of tokens to be transferred. */ - function transfer(address _to, uint _value) canTransfer(msg.sender, _value) { + function transfer(address _to, uint256 _value) canTransfer(msg.sender, _value) { super.transfer(_to, _value); } @@ -42,7 +42,7 @@ contract LimitedTransferToken is ERC20 { * @param _to The address that will recieve the tokens. * @param _value The amount of tokens to be transferred. */ - function transferFrom(address _from, address _to, uint _value) canTransfer(_from, _value) { + function transferFrom(address _from, address _to, uint256 _value) canTransfer(_from, _value) { super.transferFrom(_from, _to, _value); } diff --git a/contracts/token/MintableToken.sol b/contracts/token/MintableToken.sol index 9e8b59308..505d13c33 100644 --- a/contracts/token/MintableToken.sol +++ b/contracts/token/MintableToken.sol @@ -14,7 +14,7 @@ import '../ownership/Ownable.sol'; */ contract MintableToken is StandardToken, Ownable { - event Mint(address indexed to, uint amount); + event Mint(address indexed to, uint256 amount); event MintFinished(); bool public mintingFinished = false; @@ -31,7 +31,7 @@ contract MintableToken is StandardToken, Ownable { * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ - function mint(address _to, uint _amount) onlyOwner canMint returns (bool) { + function mint(address _to, uint256 _amount) onlyOwner canMint returns (bool) { totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); Mint(_to, _amount); diff --git a/contracts/token/PausableToken.sol b/contracts/token/PausableToken.sol index aeddfe3d9..4372a80a8 100644 --- a/contracts/token/PausableToken.sol +++ b/contracts/token/PausableToken.sol @@ -15,11 +15,11 @@ import '../lifecycle/Pausable.sol'; contract PausableToken is Pausable, StandardToken { - function transfer(address _to, uint _value) whenNotPaused { + function transfer(address _to, uint256 _value) whenNotPaused { super.transfer(_to, _value); } - function transferFrom(address _from, address _to, uint _value) whenNotPaused { + function transferFrom(address _from, address _to, uint256 _value) whenNotPaused { super.transferFrom(_from, _to, _value); } } diff --git a/contracts/token/SimpleToken.sol b/contracts/token/SimpleToken.sol index 63c6210cd..898cb21dd 100644 --- a/contracts/token/SimpleToken.sol +++ b/contracts/token/SimpleToken.sol @@ -14,8 +14,8 @@ contract SimpleToken is StandardToken { string public name = "SimpleToken"; string public symbol = "SIM"; - uint public decimals = 18; - uint public INITIAL_SUPPLY = 10000; + uint256 public decimals = 18; + uint256 public INITIAL_SUPPLY = 10000; /** * @dev Contructor that gives msg.sender all of existing tokens. diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 22a2de157..36b214a9b 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -14,16 +14,16 @@ import './ERC20.sol'; */ contract StandardToken is BasicToken, ERC20 { - mapping (address => mapping (address => uint)) allowed; + mapping (address => mapping (address => uint256)) allowed; /** * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to - * @param _value uint the amout of tokens to be transfered + * @param _value uint256 the amout of tokens to be transfered */ - function transferFrom(address _from, address _to, uint _value) onlyPayloadSize(3 * 32) { + function transferFrom(address _from, address _to, uint256 _value) onlyPayloadSize(3 * 32) { var _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met @@ -40,7 +40,7 @@ contract StandardToken is BasicToken, ERC20 { * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ - function approve(address _spender, uint _value) { + function approve(address _spender, uint256 _value) { // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender, 0)` if it is not @@ -56,9 +56,9 @@ contract StandardToken is BasicToken, ERC20 { * @dev Function to check the amount of tokens than an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. - * @return A uint specifing the amount of tokens still avaible for the spender. + * @return A uint256 specifing the amount of tokens still avaible for the spender. */ - function allowance(address _owner, address _spender) constant returns (uint remaining) { + function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; } diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index ff2e6caa6..df2d1f4b4 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -50,7 +50,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { if (tokenGrantsCount(_to) > MAX_GRANTS_PER_ADDRESS) throw; // To prevent a user being spammed and have his balance locked (out of gas attack when calculating vesting). - uint count = grants[_to].push( + uint256 count = grants[_to].push( TokenGrant( _revokable ? msg.sender : 0, // avoid storing an extra 20 bytes when it is non-revokable _value, @@ -72,7 +72,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @param _holder The address which will have its tokens revoked. * @param _grantId The id of the token grant. */ - function revokeTokenGrant(address _holder, uint _grantId) public { + function revokeTokenGrant(address _holder, uint256 _grantId) public { TokenGrant grant = grants[_holder][_grantId]; if (!grant.revokable) { // Check if grant was revokable @@ -103,7 +103,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @dev Calculate the total amount of transferable tokens of a holder at a given time * @param holder address The address of the holder * @param time uint64 The specific time. - * @return An uint representing a holder's total amount of transferable tokens. + * @return An uint256 representing a holder's total amount of transferable tokens. */ function transferableTokens(address holder, uint64 time) constant public returns (uint256) { uint256 grantIndex = tokenGrantsCount(holder); @@ -127,9 +127,9 @@ contract VestedToken is StandardToken, LimitedTransferToken { /** * @dev Check the amount of grants that an address has. * @param _holder The holder of the grants. - * @return A uint representing the total amount of grants. + * @return A uint256 representing the total amount of grants. */ - function tokenGrantsCount(address _holder) constant returns (uint index) { + function tokenGrantsCount(address _holder) constant returns (uint256 index) { return grants[_holder].length; } @@ -140,7 +140,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @param start uint64 A time representing the begining of the grant * @param cliff uint64 The cliff period. * @param vesting uint64 The vesting period. - * @return An uint representing the amount of vested tokensof a specif grant. + * @return An uint256 representing the amount of vested tokensof a specif grant. * transferableTokens * | _/-------- vestedTokens rect * | _/ @@ -191,7 +191,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @return Returns all the values that represent a TokenGrant(address, value, start, cliff, * revokability, burnsOnRevoke, and vesting) plus the vested value at the current time. */ - function tokenGrant(address _holder, uint _grantId) constant returns (address granter, uint256 value, uint256 vested, uint64 start, uint64 cliff, uint64 vesting, bool revokable, bool burnsOnRevoke) { + function tokenGrant(address _holder, uint256 _grantId) constant returns (address granter, uint256 value, uint256 vested, uint64 start, uint64 cliff, uint64 vesting, bool revokable, bool burnsOnRevoke) { TokenGrant grant = grants[_holder][_grantId]; granter = grant.granter; @@ -209,7 +209,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @dev Get the amount of vested tokens at a specific time. * @param grant TokenGrant The grant to be checked. * @param time The time to be checked - * @return An uint representing the amount of vested tokens of a specific grant at a specific time. + * @return An uint256 representing the amount of vested tokens of a specific grant at a specific time. */ function vestedTokens(TokenGrant grant, uint64 time) private constant returns (uint256) { return calculateVestedTokens( @@ -225,7 +225,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @dev Calculate the amount of non vested tokens at a specific time. * @param grant TokenGrant The grant to be checked. * @param time uint64 The time to be checked - * @return An uint representing the amount of non vested tokens of a specifc grant on the + * @return An uint256 representing the amount of non vested tokens of a specifc grant on the * passed time frame. */ function nonVestedTokens(TokenGrant grant, uint64 time) private constant returns (uint256) { @@ -235,7 +235,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { /** * @dev Calculate the date when the holder can trasfer all its tokens * @param holder address The address of the holder - * @return An uint representing the date of the last transferable tokens. + * @return An uint256 representing the date of the last transferable tokens. */ function lastTokenIsTransferableDate(address holder) constant public returns (uint64 date) { date = uint64(now); From 80d052d43f5f66763ef463c6bd7ae1b14bc6ca09 Mon Sep 17 00:00:00 2001 From: RStorm Date: Wed, 21 Jun 2017 17:34:43 -0700 Subject: [PATCH 005/160] Fixes #253 --- package.json | 1 - scripts/install.sh | 3 --- 2 files changed, 4 deletions(-) delete mode 100755 scripts/install.sh diff --git a/package.json b/package.json index 3f03eeb18..e182124b5 100644 --- a/package.json +++ b/package.json @@ -6,7 +6,6 @@ "scripts": { "test": "scripts/test.sh", "console": "truffle console", - "install": "scripts/install.sh", "coverage": "scripts/coverage.sh", "coveralls": "scripts/coveralls.sh" }, diff --git a/scripts/install.sh b/scripts/install.sh deleted file mode 100755 index 0b18c9c6f..000000000 --- a/scripts/install.sh +++ /dev/null @@ -1,3 +0,0 @@ -#! /bin/bash - -mkdir -p ../../contracts/zeppelin && cp -r contracts/* "$_" From dd34d8df0fa7f23f83669acd75c83f59159151c4 Mon Sep 17 00:00:00 2001 From: Juraj Bednar Date: Thu, 22 Jun 2017 15:33:34 +0200 Subject: [PATCH 006/160] Fix typo in StandardToken allowance documentation --- contracts/token/StandardToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 36b214a9b..d543c5d6a 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -53,7 +53,7 @@ contract StandardToken is BasicToken, ERC20 { } /** - * @dev Function to check the amount of tokens than an owner allowed to a spender. + * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. * @return A uint256 specifing the amount of tokens still avaible for the spender. From e33d9bb41be136f12bc734aef1aa6fffbf54fa40 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 26 Jun 2017 15:03:58 -0300 Subject: [PATCH 007/160] remove all checks for short address attack (fixes #261) --- contracts/token/BasicToken.sol | 12 +----------- contracts/token/StandardToken.sol | 2 +- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/contracts/token/BasicToken.sol b/contracts/token/BasicToken.sol index bb6553bf0..1f347a38a 100644 --- a/contracts/token/BasicToken.sol +++ b/contracts/token/BasicToken.sol @@ -14,22 +14,12 @@ contract BasicToken is ERC20Basic { mapping(address => uint256) balances; - /** - * @dev Fix for the ERC20 short address attack. - */ - modifier onlyPayloadSize(uint256 size) { - if(msg.data.length < size + 4) { - throw; - } - _; - } - /** * @dev transfer token for a specified address * @param _to The address to transfer to. * @param _value The amount to be transferred. */ - function transfer(address _to, uint256 _value) onlyPayloadSize(2 * 32) { + function transfer(address _to, uint256 _value) { balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index d543c5d6a..67e5d3f13 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -23,7 +23,7 @@ contract StandardToken is BasicToken, ERC20 { * @param _to address The address which you want to transfer to * @param _value uint256 the amout of tokens to be transfered */ - function transferFrom(address _from, address _to, uint256 _value) onlyPayloadSize(3 * 32) { + function transferFrom(address _from, address _to, uint256 _value) { var _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met From 549590d10515038c879e251293929c68115d9f6d Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Mon, 26 Jun 2017 17:31:52 -0500 Subject: [PATCH 008/160] Refactored to prevent DRY with beforeEach(). Refs# 259 --- test/DayLimit.js | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/test/DayLimit.js b/test/DayLimit.js index 99c565701..b2bc40e79 100644 --- a/test/DayLimit.js +++ b/test/DayLimit.js @@ -5,17 +5,19 @@ var DayLimitMock = artifacts.require('helpers/DayLimitMock.sol'); contract('DayLimit', function(accounts) { + let dayLimit; + let initLimit = 10; + + beforeEach( async function() { + dayLimit = await DayLimitMock.new(initLimit); + }); + it('should construct with the passed daily limit', async function() { - let initLimit = 10; - let dayLimit = await DayLimitMock.new(initLimit); let dailyLimit = await dayLimit.dailyLimit(); assert.equal(initLimit, dailyLimit); }); it('should be able to spend if daily limit is not reached', async function() { - let limit = 10; - let dayLimit = await DayLimitMock.new(limit); - await dayLimit.attemptSpend(8); let spentToday = await dayLimit.spentToday(); assert.equal(spentToday, 8); @@ -26,9 +28,6 @@ contract('DayLimit', function(accounts) { }); it('should prevent spending if daily limit is reached', async function() { - let limit = 10; - let dayLimit = await DayLimitMock.new(limit); - await dayLimit.attemptSpend(8); let spentToday = await dayLimit.spentToday(); assert.equal(spentToday, 8); @@ -41,9 +40,6 @@ contract('DayLimit', function(accounts) { }); it('should allow spending if daily limit is reached and then set higher', async function() { - let limit = 10; - let dayLimit = await DayLimitMock.new(limit); - await dayLimit.attemptSpend(8); let spentToday = await dayLimit.spentToday(); assert.equal(spentToday, 8); @@ -63,9 +59,6 @@ contract('DayLimit', function(accounts) { }); it('should allow spending if daily limit is reached and then amount spent is reset', async function() { - let limit = 10; - let dayLimit = await DayLimitMock.new(limit); - await dayLimit.attemptSpend(8); let spentToday = await dayLimit.spentToday(); assert.equal(spentToday, 8); From de92a0212714b66bb56b05318412ac8a92d5cf90 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Tue, 27 Jun 2017 18:34:04 -0300 Subject: [PATCH 009/160] Add Crowdsale contracts --- contracts/crowdsale/CappedCrowdsale.sol | 35 ++++++ contracts/crowdsale/Crowdsale.sol | 107 +++++++++++++++++++ contracts/crowdsale/FinalizableCrowdsale.sol | 39 +++++++ contracts/crowdsale/RefundVault.sol | 56 ++++++++++ contracts/crowdsale/RefundableCrowdsale.sol | 61 +++++++++++ contracts/token/PausableToken.sol | 10 +- 6 files changed, 301 insertions(+), 7 deletions(-) create mode 100644 contracts/crowdsale/CappedCrowdsale.sol create mode 100644 contracts/crowdsale/Crowdsale.sol create mode 100644 contracts/crowdsale/FinalizableCrowdsale.sol create mode 100644 contracts/crowdsale/RefundVault.sol create mode 100644 contracts/crowdsale/RefundableCrowdsale.sol diff --git a/contracts/crowdsale/CappedCrowdsale.sol b/contracts/crowdsale/CappedCrowdsale.sol new file mode 100644 index 000000000..10ed09e1d --- /dev/null +++ b/contracts/crowdsale/CappedCrowdsale.sol @@ -0,0 +1,35 @@ +pragma solidity ^0.4.11; + +import '../SafeMath.sol'; +import './Crowdsale.sol'; + +/** + * @title CappedCrowdsale + * @dev Extension of Crowsdale with a max amount of funds raised + */ +contract CappedCrowdsale is Crowdsale { + using SafeMath for uint256; + + uint256 public cap; + + function CappedCrowdsale( + uint256 _cap + ) { + cap = _cap; + } + + // overriding Crowdsale#canBuy to add extra cap logic + // @return true if investors can buy at the moment + function canBuy() internal constant returns (bool) { + bool withinCap = weiRaised.add(msg.value) <= cap; + return super.canBuy() && withinCap; + } + + // overriding Crowdsale#hasEnded to add cap logic + // @return true if crowdsale event has ended + function hasEnded() public constant returns (bool) { + bool capReached = weiRaised >= cap; + return super.hasEnded() || capReached; + } + +} diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol new file mode 100644 index 000000000..72fe7722a --- /dev/null +++ b/contracts/crowdsale/Crowdsale.sol @@ -0,0 +1,107 @@ +pragma solidity ^0.4.11; + +import '../token/MintableToken.sol'; +import '../SafeMath.sol'; + +/** + * @title Crowdsale + * @dev Crowdsale is a base contract for managing a token crowdsale. + * Crowdsales have a start and end block, where investors can make + * token purchases and the crowdsale will assign them tokens based + * on a token per ETH rate. Funds collected are forwarded to a wallet + * as they arrive. + */ +contract Crowdsale { + using SafeMath for uint256; + + // The token being sold + MintableToken public token; + + // start and end block where investments are allowed (both inclusive) + uint256 public startBlock; + uint256 public endBlock; + + // address where funds are collected + address public wallet; + + // token to ETH conversion rate + uint256 public rate; + + // amount of raised money in wei + uint256 public weiRaised; + + /** + * event for token purchase logging + * @param purchaser who paid for the tokens + * @param beneficiary who got the tokens + * @param value weis paid for purchase + * @param amount amount of tokens purchased + */ + event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); + + + function Crowdsale(uint256 _startBlock, uint256 _endBlock, uint256 _rate, address _wallet) { + require(_startBlock >= block.number); + require(_endBlock >= _startBlock); + require(_rate > 0); + require(_wallet != 0x0); + + token = createTokenContract(); + startBlock = _startBlock; + endBlock = _endBlock; + rate = _rate; + wallet = _wallet; + } + + // creates the token to be sold. + // override this method to have crowdsale of a specific mintable token. + function createTokenContract() internal returns (MintableToken) { + return new MintableToken(); + } + + + // fallback function can be used to buy tokens + function () payable { + buyTokens(msg.sender); + } + + // low level token purchase function + function buyTokens(address beneficiary) payable { + require(canBuy()); + + uint256 weiAmount = msg.value; + uint256 updatedWeiRaised = weiRaised.add(weiAmount); + + // calculate token amount to be created + uint256 tokens = weiAmount.mul(rate); + + // update state + weiRaised = updatedWeiRaised; + + token.mint(beneficiary, tokens); + TokenPurchase(msg.sender, beneficiary, weiAmount, tokens); + + forwardFunds(); + } + + // send ether to the fund collection wallet + // override to create custom fund forwarding mechanisms + function forwardFunds() internal { + wallet.transfer(msg.value); + } + + // @return true if the transaction can buy tokens + function canBuy() internal constant returns (bool) { + uint256 current = block.number; + bool withinPeriod = current >= startBlock && current <= endBlock; + bool nonZeroPurchase = msg.value != 0; + return withinPeriod && nonZeroPurchase; + } + + // @return true if crowdsale event has ended + function hasEnded() public constant returns (bool) { + return block.number > endBlock; + } + + +} diff --git a/contracts/crowdsale/FinalizableCrowdsale.sol b/contracts/crowdsale/FinalizableCrowdsale.sol new file mode 100644 index 000000000..c769f0229 --- /dev/null +++ b/contracts/crowdsale/FinalizableCrowdsale.sol @@ -0,0 +1,39 @@ +pragma solidity ^0.4.11; + +import '../SafeMath.sol'; +import '../ownership/Ownable.sol'; +import './Crowdsale.sol'; + +/** + * @title FinalizableCrowdsale + * @dev Extension of Crowsdale where an owner can do extra work + * after finishing. By default, it will end token minting. + */ +contract FinalizableCrowdsale is Crowdsale, Ownable { + using SafeMath for uint256; + + bool public isFinalized = false; + + event Finalized(); + + // should be called after crowdsale ends, to do + // some extra finalization work + function finalize() onlyOwner { + require(!isFinalized); + require(hasEnded()); + + finalization(); + Finalized(); + + isFinalized = true; + } + + // end token minting on finalization + // override this with custom logic if needed + function finalization() internal { + token.finishMinting(); + } + + + +} diff --git a/contracts/crowdsale/RefundVault.sol b/contracts/crowdsale/RefundVault.sol new file mode 100644 index 000000000..13de5d98e --- /dev/null +++ b/contracts/crowdsale/RefundVault.sol @@ -0,0 +1,56 @@ +pragma solidity ^0.4.11; + +import '../SafeMath.sol'; +import '../ownership/Ownable.sol'; + +/** + * @title RefundVault + * @dev This contract is used for storing funds while a crowdsale + * is in progress. Supports refunding the money if crowdsale fails, + * and forwarding it if crowdsale is successful. + */ +contract RefundVault is Ownable { + using SafeMath for uint256; + + enum State { Active, Refunding, Closed } + + mapping (address => uint256) public deposited; + address public wallet; + State public state; + + event Closed(); + event RefundsEnabled(); + event Refunded(address indexed beneficiary, uint256 weiAmount); + + function RefundVault(address _wallet) { + require(_wallet != 0x0); + wallet = _wallet; + state = State.Active; + } + + function deposit(address investor) onlyOwner payable { + require(state == State.Active); + deposited[investor] = deposited[investor].add(msg.value); + } + + function close() onlyOwner { + require(state == State.Active); + state = State.Closed; + Closed(); + wallet.transfer(this.balance); + } + + function enableRefunds() onlyOwner { + require(state == State.Active); + state = State.Refunding; + RefundsEnabled(); + } + + function refund(address investor) { + require(state == State.Refunding); + uint256 depositedValue = deposited[investor]; + deposited[investor] = 0; + investor.transfer(depositedValue); + Refunded(investor, depositedValue); + } +} diff --git a/contracts/crowdsale/RefundableCrowdsale.sol b/contracts/crowdsale/RefundableCrowdsale.sol new file mode 100644 index 000000000..a8270935f --- /dev/null +++ b/contracts/crowdsale/RefundableCrowdsale.sol @@ -0,0 +1,61 @@ +pragma solidity ^0.4.11; + + +import '../SafeMath.sol'; +import './FinalizableCrowdsale.sol'; +import './RefundVault.sol'; + + +/** + * @title RefundableCrowdsale + * @dev Extension of Crowdsale contract that adds a funding goal, and + * the possibility of users getting a refund if goal is not met. + * Uses a RefundVault as the crowdsale's vault. + */ +contract RefundableCrowdsale is FinalizableCrowdsale { + using SafeMath for uint256; + + // minimum amount of funds to be raised in weis + uint256 public goal; + + // refund vault used to hold funds while crowdsale is running + RefundVault public vault; + + function RefundableCrowdsale( + uint256 _goal + ) { + vault = new RefundVault(wallet); + goal = _goal; + } + + // We're overriding the fund forwarding from Crowdsale. + // In addition to sending the funds, we want to call + // the RefundVault deposit function + function forwardFunds() internal { + vault.deposit.value(msg.value)(msg.sender); + } + + // if crowdsale is unsuccessful, investors can claim refunds here + function claimRefund() { + require(hasEnded()); + require(!goalReached()); + + vault.refund(msg.sender); + } + + // vault finalization task, called when owner calls finalize() + function finalization() internal { + if (goalReached()) { + vault.close(); + } else { + vault.enableRefunds(); + } + + super.finalization(); + } + + function goalReached() public constant returns (bool) { + return weiRaised >= goal; + } + +} diff --git a/contracts/token/PausableToken.sol b/contracts/token/PausableToken.sol index 4372a80a8..8ee114e1d 100644 --- a/contracts/token/PausableToken.sol +++ b/contracts/token/PausableToken.sol @@ -7,19 +7,15 @@ import '../lifecycle/Pausable.sol'; * Pausable token * * Simple ERC20 Token example, with pausable token creation - * Issue: - * https://github.com/OpenZeppelin/zeppelin-solidity/issues/194 - * Based on code by BCAPtoken: - * https://github.com/BCAPtoken/BCAPToken/blob/5cb5e76338cc47343ba9268663a915337c8b268e/sol/BCAPToken.sol#L27 **/ -contract PausableToken is Pausable, StandardToken { +contract PausableToken is StandardToken, Pausable { - function transfer(address _to, uint256 _value) whenNotPaused { + function transfer(address _to, uint _value) whenNotPaused { super.transfer(_to, _value); } - function transferFrom(address _from, address _to, uint256 _value) whenNotPaused { + function transferFrom(address _from, address _to, uint _value) whenNotPaused { super.transferFrom(_from, _to, _value); } } From daf1784be4024e3d5490fb3ec361c35d4038dbc8 Mon Sep 17 00:00:00 2001 From: RStorm Date: Wed, 28 Jun 2017 22:15:51 -0700 Subject: [PATCH 010/160] change inheritance order for StandardToken and PausableToken --- contracts/token/PausableToken.sol | 2 +- contracts/token/StandardToken.sol | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/token/PausableToken.sol b/contracts/token/PausableToken.sol index 4372a80a8..b2bf79907 100644 --- a/contracts/token/PausableToken.sol +++ b/contracts/token/PausableToken.sol @@ -13,7 +13,7 @@ import '../lifecycle/Pausable.sol'; * https://github.com/BCAPtoken/BCAPToken/blob/5cb5e76338cc47343ba9268663a915337c8b268e/sol/BCAPToken.sol#L27 **/ -contract PausableToken is Pausable, StandardToken { +contract PausableToken is StandardToken, Pausable { function transfer(address _to, uint256 _value) whenNotPaused { super.transfer(_to, _value); diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 67e5d3f13..deb907261 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -12,7 +12,7 @@ import './ERC20.sol'; * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ -contract StandardToken is BasicToken, ERC20 { +contract StandardToken is ERC20, BasicToken { mapping (address => mapping (address => uint256)) allowed; From de99e7bf34b58095c1686f82e010d5f3bfc3fc6d Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Thu, 29 Jun 2017 12:31:32 -0500 Subject: [PATCH 011/160] Prevent DRY --- test/PullPayment.js | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/test/PullPayment.js b/test/PullPayment.js index f8536d732..4e74170da 100644 --- a/test/PullPayment.js +++ b/test/PullPayment.js @@ -1,15 +1,19 @@ var PullPaymentMock = artifacts.require("./helpers/PullPaymentMock.sol"); contract('PullPayment', function(accounts) { - + let ppce; + let tAMOUNT = 17*1e18; + + beforeEach(async function() { + ppce = await PullPaymentMock.new({value: tAMOUNT}); + }); + it("can't call asyncSend externally", async function() { - let ppc = await PullPaymentMock.new(); - assert.isUndefined(ppc.asyncSend); + assert.isUndefined(ppce.asyncSend); }); it("can record an async payment correctly", async function() { let AMOUNT = 100; - let ppce = await PullPaymentMock.new(); let callSend = await ppce.callSend(accounts[0], AMOUNT); let paymentsToAccount0 = await ppce.payments(accounts[0]); let totalPayments = await ppce.totalPayments(); @@ -19,7 +23,6 @@ contract('PullPayment', function(accounts) { }); it("can add multiple balances on one account", async function() { - let ppce = await PullPaymentMock.new(); let call1 = await ppce.callSend(accounts[0], 200); let call2 = await ppce.callSend(accounts[0], 300); let paymentsToAccount0 = await ppce.payments(accounts[0]); @@ -30,7 +33,6 @@ contract('PullPayment', function(accounts) { }); it("can add balances on multiple accounts", async function() { - let ppce = await PullPaymentMock.new(); let call1 = await ppce.callSend(accounts[0], 200); let call2 = await ppce.callSend(accounts[1], 300); @@ -45,11 +47,9 @@ contract('PullPayment', function(accounts) { }); it("can withdraw payment", async function() { - let AMOUNT = 17*1e18; let payee = accounts[1]; let initialBalance = web3.eth.getBalance(payee); - let ppce = await PullPaymentMock.new({value: AMOUNT}); let call1 = await ppce.callSend(payee, AMOUNT); let payment1 = await ppce.payments(payee); From 4d6b48f39e5f07ddba185df40900c325390d4e99 Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Thu, 29 Jun 2017 12:40:26 -0500 Subject: [PATCH 012/160] Typo fix. standart -> standard --- contracts/token/StandardToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 67e5d3f13..4e96ad97f 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -8,7 +8,7 @@ import './ERC20.sol'; /** * @title Standard ERC20 token * - * @dev Implemantation of the basic standart token. + * @dev Implemantation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ From 34e3ce4ab426fffd9729e87defea9650fa233762 Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Thu, 29 Jun 2017 12:44:14 -0500 Subject: [PATCH 013/160] Typo fix: avaible -> available --- contracts/token/StandardToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 4e96ad97f..93fbe1ffe 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -56,7 +56,7 @@ contract StandardToken is BasicToken, ERC20 { * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. - * @return A uint256 specifing the amount of tokens still avaible for the spender. + * @return A uint256 specifing the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; From b40a01e97bc245c48c3b256149f5a379e3761532 Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Thu, 29 Jun 2017 13:12:58 -0500 Subject: [PATCH 014/160] Small refactoring to not DRY --- test/TokenDestructible.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/test/TokenDestructible.js b/test/TokenDestructible.js index 1f943e3df..7ba052e21 100644 --- a/test/TokenDestructible.js +++ b/test/TokenDestructible.js @@ -5,9 +5,13 @@ var StandardTokenMock = artifacts.require("./helpers/StandardTokenMock.sol"); require('./helpers/transactionMined.js'); contract('TokenDestructible', function(accounts) { + let destructible; + beforeEach(async function() { + destructible = await TokenDestructible.new({fron: accounts[0], value: web3.toWei('10', 'ether')}); + }); + it('should send balance to owner after destruction', async function() { - let destructible = await TokenDestructible.new({from: accounts[0], value: web3.toWei('10','ether')}); let owner = await destructible.owner(); let initBalance = web3.eth.getBalance(owner); await destructible.destroy([], {from: owner}); @@ -16,7 +20,6 @@ contract('TokenDestructible', function(accounts) { }); it('should send tokens to owner after destruction', async function() { - let destructible = await TokenDestructible.new({from: accounts[0], value: web3.toWei('10','ether')}); let owner = await destructible.owner(); let token = await StandardTokenMock.new(destructible.address, 100); let initContractBalance = await token.balanceOf(destructible.address); From 60ef284a9a8bc1c8ca11300aa3a5b5689d291ad4 Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Thu, 29 Jun 2017 13:13:53 -0500 Subject: [PATCH 015/160] Typo in variable, using global tAMOUNT for the latest test case. --- test/PullPayment.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/PullPayment.js b/test/PullPayment.js index 4e74170da..8df6d8f20 100644 --- a/test/PullPayment.js +++ b/test/PullPayment.js @@ -50,13 +50,13 @@ contract('PullPayment', function(accounts) { let payee = accounts[1]; let initialBalance = web3.eth.getBalance(payee); - let call1 = await ppce.callSend(payee, AMOUNT); + let call1 = await ppce.callSend(payee, tAMOUNT); let payment1 = await ppce.payments(payee); - assert.equal(payment1, AMOUNT); + assert.equal(payment1, tAMOUNT); let totalPayments = await ppce.totalPayments(); - assert.equal(totalPayments, AMOUNT); + assert.equal(totalPayments, tAMOUNT); let withdraw = await ppce.withdrawPayments({from: payee}); let payment2 = await ppce.payments(payee); @@ -66,7 +66,7 @@ contract('PullPayment', function(accounts) { assert.equal(totalPayments, 0); let balance = web3.eth.getBalance(payee); - assert(Math.abs(balance-initialBalance-AMOUNT) < 1e16); + assert(Math.abs(balance-initialBalance-tAMOUNT) < 1e16); }); }); From 3c9638b62e6dc226450f49a3d46c9d1992f2485a Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Thu, 29 Jun 2017 13:18:54 -0500 Subject: [PATCH 016/160] Refactoring to not DRY. The latest test case is not affected since the aproval is for accounts[1], which does the transaction, and it is independent of the amount of tokens that accounts[0] might have. --- test/StandardToken.js | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/test/StandardToken.js b/test/StandardToken.js index e3f578726..0106926a9 100644 --- a/test/StandardToken.js +++ b/test/StandardToken.js @@ -5,8 +5,13 @@ var StandardTokenMock = artifacts.require('./helpers/StandardTokenMock.sol'); contract('StandardToken', function(accounts) { + let token; + + beforeEach(async function() { + token = await StandardTokenMock.new(accounts[0], 100); + }); + it('should return the correct totalSupply after construction', async function() { - let token = await StandardTokenMock.new(accounts[0], 100); let totalSupply = await token.totalSupply(); assert.equal(totalSupply, 100); @@ -56,7 +61,6 @@ contract('StandardToken', function(accounts) { }); it('should throw an error when trying to transfer more than allowed', async function() { - let token = await StandardTokenMock.new(); await token.approve(accounts[1], 99); try { await token.transferFrom(accounts[0], accounts[2], 100, {from: accounts[1]}); From 42c6392533be04940e3cbda2f1b3946b43c14edf Mon Sep 17 00:00:00 2001 From: Jason Bellamy Date: Fri, 30 Jun 2017 00:41:12 -0400 Subject: [PATCH 017/160] fix(token): typo in documentation --- contracts/token/StandardToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index deb907261..9fcd6a387 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -8,7 +8,7 @@ import './ERC20.sol'; /** * @title Standard ERC20 token * - * @dev Implemantation of the basic standart token. + * @dev Implemantation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ From cd47fbe953fd60deb96328baf4eb10296531f9ce Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Fri, 30 Jun 2017 11:23:28 -0300 Subject: [PATCH 018/160] Improve `Crowdsale#rate` documentation --- contracts/crowdsale/Crowdsale.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 72fe7722a..84548951b 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -24,7 +24,7 @@ contract Crowdsale { // address where funds are collected address public wallet; - // token to ETH conversion rate + // how many token units a buyer gets per wei uint256 public rate; // amount of raised money in wei From e31abffcb62aedbda5a8f81c40f5d5734c7ce94d Mon Sep 17 00:00:00 2001 From: Jason Bellamy Date: Fri, 30 Jun 2017 14:40:15 -0400 Subject: [PATCH 019/160] fix(token): typo in documentation Implemantation -> Implementation --- contracts/token/StandardToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 9fcd6a387..b1b49fe3b 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -8,7 +8,7 @@ import './ERC20.sol'; /** * @title Standard ERC20 token * - * @dev Implemantation of the basic standard token. + * @dev Implementation of the basic standard token. * @dev https://github.com/ethereum/EIPs/issues/20 * @dev Based on code by FirstBlood: https://github.com/Firstbloodio/token/blob/master/smart_contract/FirstBloodToken.sol */ From 4d55d8fa8e3b9b00088953d2f6dac22f25bf23cf Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 30 Jun 2017 14:54:49 -0300 Subject: [PATCH 020/160] give more balance to testrpc accounts includes fix to MultisigWallet test because bigger balances result in floating point errors (see #204) --- scripts/test.sh | 14 +++++++++++++- test/MultisigWallet.js | 2 +- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/scripts/test.sh b/scripts/test.sh index f6a788f35..cbbb6e15e 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -4,7 +4,19 @@ output=$(nc -z localhost 8545; echo $?) [ $output -eq "0" ] && trpc_running=true if [ ! $trpc_running ]; then echo "Starting our own testrpc node instance" - testrpc > /dev/null & + # we give each account 1M ether, needed for high-value tests + testrpc \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501200,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501201,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501202,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501203,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501204,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501205,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501206,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501207,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501208,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501209,1000000000000000000000000" \ + > /dev/null & trpc_pid=$! fi ./node_modules/truffle/cli.js test diff --git a/test/MultisigWallet.js b/test/MultisigWallet.js index 9c78ee114..dd170f31b 100644 --- a/test/MultisigWallet.js +++ b/test/MultisigWallet.js @@ -52,7 +52,7 @@ contract('MultisigWallet', function(accounts) { //Balance of account2 should have increased let newAccountBalance = web3.eth.getBalance(accounts[2]); - assert.isTrue(newAccountBalance > accountBalance); + assert.isTrue(newAccountBalance.greaterThan(accountBalance)); }); it('should prevent execution of transaction if above daily limit', async function() { From fadb2cf47e33240271ec117c7d31f6d2afa54c25 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 30 Jun 2017 14:57:58 -0300 Subject: [PATCH 021/160] add tests for crowdsale contracts --- package.json | 3 + test/CappedCrowdsale.js | 81 ++++++++++++ test/Crowdsale.js | 143 ++++++++++++++++++++++ test/FinalizableCrowdsale.js | 61 +++++++++ test/RefundVault.js | 61 +++++++++ test/RefundableCrowdsale.js | 67 ++++++++++ test/helpers/CappedCrowdsaleImpl.sol | 21 ++++ test/helpers/EVMThrow.js | 1 + test/helpers/FinalizableCrowdsaleImpl.sol | 20 +++ test/helpers/RefundableCrowdsaleImpl.sol | 21 ++++ test/helpers/advanceToBlock.js | 22 ++++ test/helpers/ether.js | 3 + 12 files changed, 504 insertions(+) create mode 100644 test/CappedCrowdsale.js create mode 100644 test/Crowdsale.js create mode 100644 test/FinalizableCrowdsale.js create mode 100644 test/RefundVault.js create mode 100644 test/RefundableCrowdsale.js create mode 100644 test/helpers/CappedCrowdsaleImpl.sol create mode 100644 test/helpers/EVMThrow.js create mode 100644 test/helpers/FinalizableCrowdsaleImpl.sol create mode 100644 test/helpers/RefundableCrowdsaleImpl.sol create mode 100644 test/helpers/advanceToBlock.js create mode 100644 test/helpers/ether.js diff --git a/package.json b/package.json index e182124b5..d593fd04b 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,9 @@ "babel-preset-stage-2": "^6.18.0", "babel-preset-stage-3": "^6.17.0", "babel-register": "^6.23.0", + "chai": "^4.0.2", + "chai-as-promised": "^7.0.0", + "chai-bignumber": "^2.0.0", "coveralls": "^2.13.1", "ethereumjs-testrpc": "^3.0.2", "mocha-lcov-reporter": "^1.3.0", diff --git a/test/CappedCrowdsale.js b/test/CappedCrowdsale.js new file mode 100644 index 000000000..0a24800b4 --- /dev/null +++ b/test/CappedCrowdsale.js @@ -0,0 +1,81 @@ +import ether from './helpers/ether' +import advanceToBlock from './helpers/advanceToBlock' +import EVMThrow from './helpers/EVMThrow' + +const BigNumber = web3.BigNumber + +require('chai') + .use(require('chai-as-promised')) + .use(require('chai-bignumber')(BigNumber)) + .should() + +const CappedCrowdsale = artifacts.require('./helpers/CappedCrowdsaleImpl.sol') +const MintableToken = artifacts.require('MintableToken') + +contract('CappedCrowdsale', function ([_, wallet]) { + + const rate = new BigNumber(1000) + + const cap = ether(300) + const lessThanCap = ether(60) + + beforeEach(async function () { + this.startBlock = web3.eth.blockNumber + 10 + this.endBlock = web3.eth.blockNumber + 20 + + this.crowdsale = await CappedCrowdsale.new(this.startBlock, this.endBlock, rate, wallet, cap) + + this.token = MintableToken.at(await this.crowdsale.token()) + }) + + describe('accepting payments', function () { + + beforeEach(async function () { + await advanceToBlock(this.startBlock - 1) + }) + + it('should accept payments within cap', async function () { + await this.crowdsale.send(cap.minus(lessThanCap)).should.be.fulfilled + await this.crowdsale.send(lessThanCap).should.be.fulfilled + }) + + it('should reject payments outside cap', async function () { + await this.crowdsale.send(cap) + await this.crowdsale.send(1).should.be.rejectedWith(EVMThrow) + }) + + it('should reject payments that exceed cap', async function () { + await this.crowdsale.send(cap.plus(1)).should.be.rejectedWith(EVMThrow) + }) + + }) + + describe('ending', function () { + + beforeEach(async function () { + await advanceToBlock(this.startBlock - 1) + }) + + it('should not be ended if under cap', async function () { + let hasEnded = await this.crowdsale.hasEnded() + hasEnded.should.equal(false) + await this.crowdsale.send(lessThanCap) + hasEnded = await this.crowdsale.hasEnded() + hasEnded.should.equal(false) + }) + + it('should not be ended if just under cap', async function () { + await this.crowdsale.send(cap.minus(1)) + let hasEnded = await this.crowdsale.hasEnded() + hasEnded.should.equal(false) + }) + + it('should be ended if cap reached', async function () { + await this.crowdsale.send(cap) + let hasEnded = await this.crowdsale.hasEnded() + hasEnded.should.equal(true) + }) + + }) + +}) diff --git a/test/Crowdsale.js b/test/Crowdsale.js new file mode 100644 index 000000000..3e697b05a --- /dev/null +++ b/test/Crowdsale.js @@ -0,0 +1,143 @@ +import ether from './helpers/ether' +import advanceToBlock from './helpers/advanceToBlock' +import EVMThrow from './helpers/EVMThrow' + +const BigNumber = web3.BigNumber + +const should = require('chai') + .use(require('chai-as-promised')) + .use(require('chai-bignumber')(BigNumber)) + .should() + +const Crowdsale = artifacts.require('Crowdsale') +const MintableToken = artifacts.require('MintableToken') + +contract('Crowdsale', function ([_, investor, wallet, purchaser]) { + + const rate = new BigNumber(1000) + const value = ether(42) + + const expectedTokenAmount = rate.mul(value) + + beforeEach(async function () { + this.startBlock = web3.eth.blockNumber + 10 + this.endBlock = web3.eth.blockNumber + 20 + + this.crowdsale = await Crowdsale.new(this.startBlock, this.endBlock, rate, wallet) + + this.token = MintableToken.at(await this.crowdsale.token()) + }) + + it('should be token owner', async function () { + const owner = await this.token.owner() + owner.should.equal(this.crowdsale.address) + }) + + it('should be ended only after end', async function () { + let ended = await this.crowdsale.hasEnded() + ended.should.equal(false) + await advanceToBlock(this.endBlock + 1) + ended = await this.crowdsale.hasEnded() + ended.should.equal(true) + }) + + describe('accepting payments', function () { + + it('should reject payments before start', async function () { + await this.crowdsale.send(value).should.be.rejectedWith(EVMThrow) + await this.crowdsale.buyTokens(investor, value, {from: purchaser}).should.be.rejectedWith(EVMThrow) + }) + + it('should accept payments after start', async function () { + await advanceToBlock(this.startBlock - 1) + await this.crowdsale.send(value).should.be.fulfilled + await this.crowdsale.buyTokens(investor, {value: value, from: purchaser}).should.be.fulfilled + }) + + it('should reject payments after end', async function () { + await advanceToBlock(this.endBlock) + await this.crowdsale.send(value).should.be.rejectedWith(EVMThrow) + await this.crowdsale.buyTokens(investor, {value: value, from: purchaser}).should.be.rejectedWith(EVMThrow) + }) + + }) + + describe('high-level purchase', function () { + + beforeEach(async function() { + await advanceToBlock(this.startBlock) + }) + + it('should log purchase', async function () { + const {logs} = await this.crowdsale.sendTransaction({value: value, from: investor}) + + const event = logs.find(e => e.event === 'TokenPurchase') + + should.exist(event) + event.args.purchaser.should.equal(investor) + event.args.beneficiary.should.equal(investor) + event.args.value.should.be.bignumber.equal(value) + event.args.amount.should.be.bignumber.equal(expectedTokenAmount) + }) + + it('should increase totalSupply', async function () { + await this.crowdsale.send(value) + const totalSupply = await this.token.totalSupply() + totalSupply.should.be.bignumber.equal(expectedTokenAmount) + }) + + it('should assign tokens to sender', async function () { + await this.crowdsale.sendTransaction({value: value, from: investor}) + let balance = await this.token.balanceOf(investor); + balance.should.be.bignumber.equal(expectedTokenAmount) + }) + + it('should forward funds to wallet', async function () { + const pre = web3.eth.getBalance(wallet) + await this.crowdsale.sendTransaction({value, from: investor}) + const post = web3.eth.getBalance(wallet) + post.minus(pre).should.be.bignumber.equal(value) + }) + + }) + + describe('low-level purchase', function () { + + beforeEach(async function() { + await advanceToBlock(this.startBlock) + }) + + it('should log purchase', async function () { + const {logs} = await this.crowdsale.buyTokens(investor, {value: value, from: purchaser}) + + const event = logs.find(e => e.event === 'TokenPurchase') + + should.exist(event) + event.args.purchaser.should.equal(purchaser) + event.args.beneficiary.should.equal(investor) + event.args.value.should.be.bignumber.equal(value) + event.args.amount.should.be.bignumber.equal(expectedTokenAmount) + }) + + it('should increase totalSupply', async function () { + await this.crowdsale.buyTokens(investor, {value, from: purchaser}) + const totalSupply = await this.token.totalSupply() + totalSupply.should.be.bignumber.equal(expectedTokenAmount) + }) + + it('should assign tokens to beneficiary', async function () { + await this.crowdsale.buyTokens(investor, {value, from: purchaser}) + const balance = await this.token.balanceOf(investor) + balance.should.be.bignumber.equal(expectedTokenAmount) + }) + + it('should forward funds to wallet', async function () { + const pre = web3.eth.getBalance(wallet) + await this.crowdsale.buyTokens(investor, {value, from: purchaser}) + const post = web3.eth.getBalance(wallet) + post.minus(pre).should.be.bignumber.equal(value) + }) + + }) + +}) diff --git a/test/FinalizableCrowdsale.js b/test/FinalizableCrowdsale.js new file mode 100644 index 000000000..53224bb76 --- /dev/null +++ b/test/FinalizableCrowdsale.js @@ -0,0 +1,61 @@ +import advanceToBlock from './helpers/advanceToBlock' +import EVMThrow from './helpers/EVMThrow' + +const BigNumber = web3.BigNumber + +const should = require('chai') + .use(require('chai-as-promised')) + .use(require('chai-bignumber')(BigNumber)) + .should() + +const FinalizableCrowdsale = artifacts.require('./helpers/FinalizableCrowdsaleImpl.sol') +const MintableToken = artifacts.require('MintableToken') + +contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { + + const rate = new BigNumber(1000) + + beforeEach(async function () { + this.startBlock = web3.eth.blockNumber + 10 + this.endBlock = web3.eth.blockNumber + 20 + + this.crowdsale = await FinalizableCrowdsale.new(this.startBlock, this.endBlock, rate, wallet, {from: owner}) + + this.token = MintableToken.at(await this.crowdsale.token()) + }) + + it('cannot be finalized before ending', async function () { + await this.crowdsale.finalize({from: owner}).should.be.rejectedWith(EVMThrow) + }) + + it('cannot be finalized by third party after ending', async function () { + await advanceToBlock(this.endBlock) + await this.crowdsale.finalize({from: thirdparty}).should.be.rejectedWith(EVMThrow) + }) + + it('can be finalized by owner after ending', async function () { + await advanceToBlock(this.endBlock) + await this.crowdsale.finalize({from: owner}).should.be.fulfilled + }) + + it('cannot be finalized twice', async function () { + await advanceToBlock(this.endBlock + 1) + await this.crowdsale.finalize({from: owner}) + await this.crowdsale.finalize({from: owner}).should.be.rejectedWith(EVMThrow) + }) + + it('logs finalized', async function () { + await advanceToBlock(this.endBlock) + const {logs} = await this.crowdsale.finalize({from: owner}) + const event = logs.find(e => e.event === 'Finalized') + should.exist(event) + }) + + it('finishes minting of token', async function () { + await advanceToBlock(this.endBlock) + await this.crowdsale.finalize({from: owner}) + const finished = await this.token.mintingFinished() + finished.should.equal(true) + }) + +}) diff --git a/test/RefundVault.js b/test/RefundVault.js new file mode 100644 index 000000000..2102df980 --- /dev/null +++ b/test/RefundVault.js @@ -0,0 +1,61 @@ +const BigNumber = web3.BigNumber + +require('chai') + .use(require('chai-as-promised')) + .use(require('chai-bignumber')(BigNumber)) + .should() + +import ether from './helpers/ether' +import EVMThrow from './helpers/EVMThrow' + +const RefundVault = artifacts.require('RefundVault') + +contract('RefundVault', function ([_, owner, wallet, investor]) { + + const value = ether(42) + + beforeEach(async function () { + this.vault = await RefundVault.new(wallet, {from: owner}) + }) + + it('should accept contributions', async function () { + await this.vault.deposit(investor, {value, from: owner}).should.be.fulfilled + }) + + it('should not refund contribution during active state', async function () { + await this.vault.deposit(investor, {value, from: owner}) + await this.vault.refund(investor).should.be.rejectedWith(EVMThrow) + }) + + it('only owner can enter refund mode', async function () { + await this.vault.enableRefunds({from: _}).should.be.rejectedWith(EVMThrow) + await this.vault.enableRefunds({from: owner}).should.be.fulfilled + }) + + it('should refund contribution after entering refund mode', async function () { + await this.vault.deposit(investor, {value, from: owner}) + await this.vault.enableRefunds({from: owner}) + + const pre = web3.eth.getBalance(investor) + await this.vault.refund(investor) + const post = web3.eth.getBalance(investor) + + post.minus(pre).should.be.bignumber.equal(value) + }) + + it('only owner can close', async function () { + await this.vault.close({from: _}).should.be.rejectedWith(EVMThrow) + await this.vault.close({from: owner}).should.be.fulfilled + }) + + it('should forward funds to wallet after closing', async function () { + await this.vault.deposit(investor, {value, from: owner}) + + const pre = web3.eth.getBalance(wallet) + await this.vault.close({from: owner}) + const post = web3.eth.getBalance(wallet) + + post.minus(pre).should.be.bignumber.equal(value) + }) + +}) diff --git a/test/RefundableCrowdsale.js b/test/RefundableCrowdsale.js new file mode 100644 index 000000000..76f2e22c3 --- /dev/null +++ b/test/RefundableCrowdsale.js @@ -0,0 +1,67 @@ +import ether from './helpers/ether' +import advanceToBlock from './helpers/advanceToBlock' +import EVMThrow from './helpers/EVMThrow' + +const BigNumber = web3.BigNumber + +require('chai') + .use(require('chai-as-promised')) + .use(require('chai-bignumber')(BigNumber)) + .should() + +const RefundableCrowdsale = artifacts.require('./helpers/RefundableCrowdsaleImpl.sol') + +contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { + + const rate = new BigNumber(1000) + const goal = ether(800) + const lessThanGoal = ether(750) + + beforeEach(async function () { + this.startBlock = web3.eth.blockNumber + 10 + this.endBlock = web3.eth.blockNumber + 20 + + this.crowdsale = await RefundableCrowdsale.new(this.startBlock, this.endBlock, rate, wallet, goal, {from: owner}) + }) + + it('should deny refunds before end', async function () { + await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) + await advanceToBlock(this.endBlock - 1) + await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) + }) + + it('should deny refunds after end if goal was reached', async function () { + await advanceToBlock(this.startBlock - 1) + await this.crowdsale.sendTransaction({value: goal, from: investor}) + await advanceToBlock(this.endBlock) + await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) + }) + + it('should allow refunds after end if goal was not reached', async function () { + await advanceToBlock(this.startBlock - 1) + await this.crowdsale.sendTransaction({value: lessThanGoal, from: investor}) + await advanceToBlock(this.endBlock) + + await this.crowdsale.finalize({from: owner}) + + const pre = web3.eth.getBalance(investor) + await this.crowdsale.claimRefund({from: investor, gasPrice: 0}) + .should.be.fulfilled + const post = web3.eth.getBalance(investor) + + post.minus(pre).should.be.bignumber.equal(lessThanGoal) + }) + + it('should forward funds to wallet after end if goal was reached', async function () { + await advanceToBlock(this.startBlock - 1) + await this.crowdsale.sendTransaction({value: goal, from: investor}) + await advanceToBlock(this.endBlock) + + const pre = web3.eth.getBalance(wallet) + await this.crowdsale.finalize({from: owner}) + const post = web3.eth.getBalance(wallet) + + post.minus(pre).should.be.bignumber.equal(goal) + }) + +}) diff --git a/test/helpers/CappedCrowdsaleImpl.sol b/test/helpers/CappedCrowdsaleImpl.sol new file mode 100644 index 000000000..6a255dca3 --- /dev/null +++ b/test/helpers/CappedCrowdsaleImpl.sol @@ -0,0 +1,21 @@ +pragma solidity ^0.4.11; + + +import '../../contracts/crowdsale/CappedCrowdsale.sol'; + + +contract CappedCrowdsaleImpl is CappedCrowdsale { + + function CappedCrowdsaleImpl ( + uint256 _startBlock, + uint256 _endBlock, + uint256 _rate, + address _wallet, + uint256 _cap + ) + Crowdsale(_startBlock, _endBlock, _rate, _wallet) + CappedCrowdsale(_cap) + { + } + +} diff --git a/test/helpers/EVMThrow.js b/test/helpers/EVMThrow.js new file mode 100644 index 000000000..c75924f52 --- /dev/null +++ b/test/helpers/EVMThrow.js @@ -0,0 +1 @@ +export default 'invalid opcode' diff --git a/test/helpers/FinalizableCrowdsaleImpl.sol b/test/helpers/FinalizableCrowdsaleImpl.sol new file mode 100644 index 000000000..b35b633a9 --- /dev/null +++ b/test/helpers/FinalizableCrowdsaleImpl.sol @@ -0,0 +1,20 @@ +pragma solidity ^0.4.11; + + +import '../../contracts/crowdsale/FinalizableCrowdsale.sol'; + + +contract FinalizableCrowdsaleImpl is FinalizableCrowdsale { + + function FinalizableCrowdsaleImpl ( + uint256 _startBlock, + uint256 _endBlock, + uint256 _rate, + address _wallet + ) + Crowdsale(_startBlock, _endBlock, _rate, _wallet) + FinalizableCrowdsale() + { + } + +} diff --git a/test/helpers/RefundableCrowdsaleImpl.sol b/test/helpers/RefundableCrowdsaleImpl.sol new file mode 100644 index 000000000..5250f56f8 --- /dev/null +++ b/test/helpers/RefundableCrowdsaleImpl.sol @@ -0,0 +1,21 @@ +pragma solidity ^0.4.11; + + +import '../../contracts/crowdsale/RefundableCrowdsale.sol'; + + +contract RefundableCrowdsaleImpl is RefundableCrowdsale { + + function RefundableCrowdsaleImpl ( + uint256 _startBlock, + uint256 _endBlock, + uint256 _rate, + address _wallet, + uint256 _goal + ) + Crowdsale(_startBlock, _endBlock, _rate, _wallet) + RefundableCrowdsale(_goal) + { + } + +} diff --git a/test/helpers/advanceToBlock.js b/test/helpers/advanceToBlock.js new file mode 100644 index 000000000..97d723f19 --- /dev/null +++ b/test/helpers/advanceToBlock.js @@ -0,0 +1,22 @@ +export function advanceBlock() { + return new Promise((resolve, reject) => { + web3.currentProvider.sendAsync({ + jsonrpc: '2.0', + method: 'evm_mine', + id: Date.now(), + }, (err, res) => { + return err ? reject(err) : resolve(res) + }) + }) +} + +// Advances the block number so that the last mined block is `number`. +export default async function advanceToBlock(number) { + if (web3.eth.blockNumber > number) { + throw Error(`block number ${number} is in the past (current is ${web3.eth.blockNumber})`) + } + + while (web3.eth.blockNumber < number) { + await advanceBlock() + } +} diff --git a/test/helpers/ether.js b/test/helpers/ether.js new file mode 100644 index 000000000..e35f90320 --- /dev/null +++ b/test/helpers/ether.js @@ -0,0 +1,3 @@ +export default function ether(n) { + return new web3.BigNumber(web3.toWei(n, 'ether')) +} From 59e96099267ffed5ac2a93ba489ed35b06de83f2 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 30 Jun 2017 14:59:27 -0300 Subject: [PATCH 022/160] remove CrowdsaleToken it is superseded by the new crowdsale contracts --- contracts/token/CrowdsaleToken.sol | 60 ------------------------------ docs/source/crowdsaletoken.rst | 14 ------- 2 files changed, 74 deletions(-) delete mode 100644 contracts/token/CrowdsaleToken.sol delete mode 100644 docs/source/crowdsaletoken.rst diff --git a/contracts/token/CrowdsaleToken.sol b/contracts/token/CrowdsaleToken.sol deleted file mode 100644 index 0f75d3275..000000000 --- a/contracts/token/CrowdsaleToken.sol +++ /dev/null @@ -1,60 +0,0 @@ -pragma solidity ^0.4.11; - - -import "./StandardToken.sol"; - - -/** - * @title CrowdsaleToken - * - * @dev Simple ERC20 Token example, with crowdsale token creation - * @dev IMPORTANT NOTE: do not use or deploy this contract as-is. It needs some changes to be - * production ready. - */ -contract CrowdsaleToken is StandardToken { - - string public constant name = "CrowdsaleToken"; - string public constant symbol = "CRW"; - uint256 public constant decimals = 18; - // replace with your fund collection multisig address - address public constant multisig = 0x0; - - - // 1 ether = 500 example tokens - uint256 public constant PRICE = 500; - - /** - * @dev Fallback function which receives ether and sends the appropriate number of tokens to the - * msg.sender. - */ - function () payable { - createTokens(msg.sender); - } - - /** - * @dev Creates tokens and send to the specified address. - * @param recipient The address which will recieve the new tokens. - */ - function createTokens(address recipient) payable { - if (msg.value == 0) { - throw; - } - - uint256 tokens = msg.value.mul(getPrice()); - totalSupply = totalSupply.add(tokens); - - balances[recipient] = balances[recipient].add(tokens); - - if (!multisig.send(msg.value)) { - throw; - } - } - - /** - * @dev replace this with any other price function - * @return The price per unit of token. - */ - function getPrice() constant returns (uint256 result) { - return PRICE; - } -} diff --git a/docs/source/crowdsaletoken.rst b/docs/source/crowdsaletoken.rst deleted file mode 100644 index 98a06f190..000000000 --- a/docs/source/crowdsaletoken.rst +++ /dev/null @@ -1,14 +0,0 @@ -CrowdsaleToken -============================================= - -Simple ERC20 Token example, with crowdsale token creation. - -Inherits from contract StandardToken. - -createTokens(address recipient) payable -""""""""""""""""""""""""""""""""""""""""" -Creates tokens based on message value and credits to the recipient. - -getPrice() constant returns (uint result) -""""""""""""""""""""""""""""""""""""""""" -Returns the amount of tokens per 1 ether. \ No newline at end of file From 0791e6639a52f04946e11adc51ea1e7dd5b82dca Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 30 Jun 2017 15:52:11 -0300 Subject: [PATCH 023/160] add extra arguments to test command for development testing --- scripts/test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/test.sh b/scripts/test.sh index cbbb6e15e..5314877d2 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -19,7 +19,7 @@ if [ ! $trpc_running ]; then > /dev/null & trpc_pid=$! fi -./node_modules/truffle/cli.js test +./node_modules/truffle/cli.js test "$@" if [ ! $trpc_running ]; then kill -9 $trpc_pid fi From 50a903a62d5d3f79ad8574b49dba85272ec679e8 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 30 Jun 2017 17:40:34 -0300 Subject: [PATCH 024/160] use npm test script for travis --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 1fd9a067d..33ea9aae1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -7,7 +7,6 @@ node_js: cache: yarn: true script: - - testrpc > /dev/null & - - truffle test + - yarn test after_script: - yarn run coveralls From 657c56c6504c76e641e9468bbfc9d45cd5fdd08c Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 30 Jun 2017 17:54:07 -0300 Subject: [PATCH 025/160] remove unecessary whitespace --- contracts/crowdsale/CappedCrowdsale.sol | 4 +--- contracts/crowdsale/RefundableCrowdsale.sol | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/contracts/crowdsale/CappedCrowdsale.sol b/contracts/crowdsale/CappedCrowdsale.sol index 10ed09e1d..8e9f58b8f 100644 --- a/contracts/crowdsale/CappedCrowdsale.sol +++ b/contracts/crowdsale/CappedCrowdsale.sol @@ -12,9 +12,7 @@ contract CappedCrowdsale is Crowdsale { uint256 public cap; - function CappedCrowdsale( - uint256 _cap - ) { + function CappedCrowdsale(uint256 _cap) { cap = _cap; } diff --git a/contracts/crowdsale/RefundableCrowdsale.sol b/contracts/crowdsale/RefundableCrowdsale.sol index a8270935f..ad5631495 100644 --- a/contracts/crowdsale/RefundableCrowdsale.sol +++ b/contracts/crowdsale/RefundableCrowdsale.sol @@ -21,9 +21,7 @@ contract RefundableCrowdsale is FinalizableCrowdsale { // refund vault used to hold funds while crowdsale is running RefundVault public vault; - function RefundableCrowdsale( - uint256 _goal - ) { + function RefundableCrowdsale(uint256 _goal) { vault = new RefundVault(wallet); goal = _goal; } From 54d74b1c265ce29c35a19b81c13dd6f6f3587cdd Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 30 Jun 2017 17:54:26 -0300 Subject: [PATCH 026/160] rename canBuy to purchaseValid --- contracts/crowdsale/CappedCrowdsale.sol | 6 +++--- contracts/crowdsale/Crowdsale.sol | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/crowdsale/CappedCrowdsale.sol b/contracts/crowdsale/CappedCrowdsale.sol index 8e9f58b8f..8b8ed82f8 100644 --- a/contracts/crowdsale/CappedCrowdsale.sol +++ b/contracts/crowdsale/CappedCrowdsale.sol @@ -16,11 +16,11 @@ contract CappedCrowdsale is Crowdsale { cap = _cap; } - // overriding Crowdsale#canBuy to add extra cap logic + // overriding Crowdsale#purchaseValid to add extra cap logic // @return true if investors can buy at the moment - function canBuy() internal constant returns (bool) { + function purchaseValid() internal constant returns (bool) { bool withinCap = weiRaised.add(msg.value) <= cap; - return super.canBuy() && withinCap; + return super.purchaseValid() && withinCap; } // overriding Crowdsale#hasEnded to add cap logic diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 84548951b..7e071f11e 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -67,7 +67,7 @@ contract Crowdsale { // low level token purchase function function buyTokens(address beneficiary) payable { - require(canBuy()); + require(purchaseValid()); uint256 weiAmount = msg.value; uint256 updatedWeiRaised = weiRaised.add(weiAmount); @@ -91,7 +91,7 @@ contract Crowdsale { } // @return true if the transaction can buy tokens - function canBuy() internal constant returns (bool) { + function purchaseValid() internal constant returns (bool) { uint256 current = block.number; bool withinPeriod = current >= startBlock && current <= endBlock; bool nonZeroPurchase = msg.value != 0; From b3ca0c73b34ca99baf16941d3e2a83142f892309 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 30 Jun 2017 21:25:59 -0300 Subject: [PATCH 027/160] add a TokenTimelock contract --- contracts/token/TokenTimelock.sol | 41 ++++++++++++++++++++++ package.json | 4 +++ test/TokenTimelock.js | 58 +++++++++++++++++++++++++++++++ test/helpers/increaseTime.js | 23 ++++++++++++ test/helpers/latestTime.js | 6 ++++ 5 files changed, 132 insertions(+) create mode 100644 contracts/token/TokenTimelock.sol create mode 100644 test/TokenTimelock.js create mode 100644 test/helpers/increaseTime.js create mode 100644 test/helpers/latestTime.js diff --git a/contracts/token/TokenTimelock.sol b/contracts/token/TokenTimelock.sol new file mode 100644 index 000000000..5b661962d --- /dev/null +++ b/contracts/token/TokenTimelock.sol @@ -0,0 +1,41 @@ +pragma solidity ^0.4.11; + + +import './ERC20Basic.sol'; + +/** + * @title TokenTimelock + * @dev TokenTimelock is a token holder contract that will allow a + * beneficiary to extract the tokens after a time has passed + */ +contract TokenTimelock { + + // ERC20 basic token contract being held + ERC20Basic token; + + // beneficiary of tokens after they are released + address beneficiary; + + // timestamp where token release is enabled + uint releaseTime; + + function TokenTimelock(ERC20Basic _token, address _beneficiary, uint _releaseTime) { + require(_releaseTime > now); + token = _token; + beneficiary = _beneficiary; + releaseTime = _releaseTime; + } + + /** + * @dev beneficiary claims tokens held by time lock + */ + function claim() { + require(msg.sender == beneficiary); + require(now >= releaseTime); + + uint amount = token.balanceOf(this); + require(amount > 0); + + token.transfer(beneficiary, amount); + } +} diff --git a/package.json b/package.json index e182124b5..520f56ef7 100644 --- a/package.json +++ b/package.json @@ -35,9 +35,13 @@ "babel-preset-stage-2": "^6.18.0", "babel-preset-stage-3": "^6.17.0", "babel-register": "^6.23.0", + "chai": "^4.0.2", + "chai-as-promised": "^7.0.0", + "chai-bignumber": "^2.0.0", "coveralls": "^2.13.1", "ethereumjs-testrpc": "^3.0.2", "mocha-lcov-reporter": "^1.3.0", + "moment": "^2.18.1", "solidity-coverage": "^0.1.0", "truffle": "3.2.2" } diff --git a/test/TokenTimelock.js b/test/TokenTimelock.js new file mode 100644 index 000000000..894ebae92 --- /dev/null +++ b/test/TokenTimelock.js @@ -0,0 +1,58 @@ +const BigNumber = web3.BigNumber + +require('chai') + .use(require('chai-as-promised')) + .use(require('chai-bignumber')(BigNumber)) + .should() + +import moment from 'moment' + +import latestTime from './helpers/latestTime' +import increaseTime from './helpers/increaseTime' + +const MintableToken = artifacts.require('MintableToken') +const TokenTimelock = artifacts.require('TokenTimelock') + +contract('TokenTimelock', function ([_, owner, beneficiary]) { + + const amount = new BigNumber(100) + + beforeEach(async function () { + this.token = await MintableToken.new({from: owner}) + this.releaseTime = latestTime().add(1, 'year').unix() + this.timelock = await TokenTimelock.new(this.token.address, beneficiary, this.releaseTime) + await this.token.mint(this.timelock.address, amount, {from: owner}) + }) + + it('cannot be claimed before time limit', async function () { + await this.timelock.claim({from: beneficiary}).should.be.rejected + }) + + it('cannot be claimed just before time limit', async function () { + await increaseTime(moment.duration(0.99, 'year')) + await this.timelock.claim({from: beneficiary}).should.be.rejected + }) + + it('can be claimed just after limit', async function () { + await increaseTime(moment.duration(1.01, 'year')) + await this.timelock.claim({from: beneficiary}).should.be.fulfilled + const balance = await this.token.balanceOf(beneficiary) + balance.should.be.bignumber.equal(amount) + }) + + it('can be claimed after time limit', async function () { + await increaseTime(moment.duration(2, 'year')) + await this.timelock.claim({from: beneficiary}).should.be.fulfilled + const balance = await this.token.balanceOf(beneficiary) + balance.should.be.bignumber.equal(amount) + }) + + it('cannot be claimed twice', async function () { + await increaseTime(moment.duration(2, 'year')) + await this.timelock.claim({from: beneficiary}).should.be.fulfilled + await this.timelock.claim({from: beneficiary}).should.be.rejected + const balance = await this.token.balanceOf(beneficiary) + balance.should.be.bignumber.equal(amount) + }) + +}) diff --git a/test/helpers/increaseTime.js b/test/helpers/increaseTime.js new file mode 100644 index 000000000..cd1a756fd --- /dev/null +++ b/test/helpers/increaseTime.js @@ -0,0 +1,23 @@ +// Increases testrpc time by the passed duration (a moment.js instance) +export default function increaseTime(duration) { + const id = Date.now() + + return new Promise((resolve, reject) => { + web3.currentProvider.sendAsync({ + jsonrpc: '2.0', + method: 'evm_increaseTime', + params: [duration.asSeconds()], + id: id, + }, err1 => { + if (err1) return reject(err1) + + web3.currentProvider.sendAsync({ + jsonrpc: '2.0', + method: 'evm_mine', + id: id+1, + }, (err2, res) => { + return err2 ? reject(err2) : resolve(res) + }) + }) + }) +} diff --git a/test/helpers/latestTime.js b/test/helpers/latestTime.js new file mode 100644 index 000000000..1461a227c --- /dev/null +++ b/test/helpers/latestTime.js @@ -0,0 +1,6 @@ +import moment from 'moment' + +// Returns a moment.js instance representing the time of the last mined block +export default function latestTime() { + return moment.unix(web3.eth.getBlock('latest').timestamp) +} From 5d847ed4d93da93039f9664f5ef17f0d6d30947e Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 30 Jun 2017 21:28:45 -0300 Subject: [PATCH 028/160] tweak TokenTimelock documentation --- contracts/token/TokenTimelock.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/token/TokenTimelock.sol b/contracts/token/TokenTimelock.sol index 5b661962d..595bf8d0b 100644 --- a/contracts/token/TokenTimelock.sol +++ b/contracts/token/TokenTimelock.sol @@ -6,7 +6,7 @@ import './ERC20Basic.sol'; /** * @title TokenTimelock * @dev TokenTimelock is a token holder contract that will allow a - * beneficiary to extract the tokens after a time has passed + * beneficiary to extract the tokens after a given release time */ contract TokenTimelock { @@ -16,7 +16,7 @@ contract TokenTimelock { // beneficiary of tokens after they are released address beneficiary; - // timestamp where token release is enabled + // timestamp when token release is enabled uint releaseTime; function TokenTimelock(ERC20Basic _token, address _beneficiary, uint _releaseTime) { From a66f5f8f033789f501e163ee3b2f185b6494911a Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sun, 2 Jul 2017 13:00:23 -0300 Subject: [PATCH 029/160] format SafeMath documentation as NatSpec --- contracts/{ => math}/SafeMath.sol | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) rename contracts/{ => math}/SafeMath.sol (93%) diff --git a/contracts/SafeMath.sol b/contracts/math/SafeMath.sol similarity index 93% rename from contracts/SafeMath.sol rename to contracts/math/SafeMath.sol index 76e46b784..4f6861c20 100644 --- a/contracts/SafeMath.sol +++ b/contracts/math/SafeMath.sol @@ -2,7 +2,8 @@ pragma solidity ^0.4.11; /** - * Math operations with safety checks + * @title SafeMath + * @dev Math operations with safety checks that throw on error */ library SafeMath { function mul(uint256 a, uint256 b) internal returns (uint256) { From ba383a6d204bba3e910d011e29b7ab4c5bb4fadf Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sun, 2 Jul 2017 13:01:55 -0300 Subject: [PATCH 030/160] refactor max and min out of SafeMath --- contracts/math/Math.sol | 24 ++++++++++++++++++++++++ contracts/math/SafeMath.sol | 17 ----------------- 2 files changed, 24 insertions(+), 17 deletions(-) create mode 100644 contracts/math/Math.sol diff --git a/contracts/math/Math.sol b/contracts/math/Math.sol new file mode 100644 index 000000000..fa89c371f --- /dev/null +++ b/contracts/math/Math.sol @@ -0,0 +1,24 @@ +pragma solidity ^0.4.11; + +/** + * @title Math + * @dev Assorted math operations + */ + +contract Math { + function max64(uint64 a, uint64 b) internal constant returns (uint64) { + return a >= b ? a : b; + } + + function min64(uint64 a, uint64 b) internal constant returns (uint64) { + return a < b ? a : b; + } + + function max256(uint256 a, uint256 b) internal constant returns (uint256) { + return a >= b ? a : b; + } + + function min256(uint256 a, uint256 b) internal constant returns (uint256) { + return a < b ? a : b; + } +} diff --git a/contracts/math/SafeMath.sol b/contracts/math/SafeMath.sol index 4f6861c20..dc05ba280 100644 --- a/contracts/math/SafeMath.sol +++ b/contracts/math/SafeMath.sol @@ -29,21 +29,4 @@ library SafeMath { assert(c >= a); return c; } - - function max64(uint64 a, uint64 b) internal constant returns (uint64) { - return a >= b ? a : b; - } - - function min64(uint64 a, uint64 b) internal constant returns (uint64) { - return a < b ? a : b; - } - - function max256(uint256 a, uint256 b) internal constant returns (uint256) { - return a >= b ? a : b; - } - - function min256(uint256 a, uint256 b) internal constant returns (uint256) { - return a < b ? a : b; - } - } From 46fe7ee76d63aa027d139e6f122ec8ebb9608be0 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sun, 2 Jul 2017 16:51:26 -0300 Subject: [PATCH 031/160] guard against beneficiary == 0x0 --- contracts/crowdsale/Crowdsale.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 7e071f11e..04244dca7 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -67,6 +67,7 @@ contract Crowdsale { // low level token purchase function function buyTokens(address beneficiary) payable { + require(beneficiary != 0x0); require(purchaseValid()); uint256 weiAmount = msg.value; From 070bcbcdbd7beaaec694265ef42c3f31867aa907 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sun, 2 Jul 2017 17:05:06 -0300 Subject: [PATCH 032/160] rename purchaseValid to validPurchase --- contracts/crowdsale/CappedCrowdsale.sol | 6 +++--- contracts/crowdsale/Crowdsale.sol | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/crowdsale/CappedCrowdsale.sol b/contracts/crowdsale/CappedCrowdsale.sol index 8b8ed82f8..9142efb37 100644 --- a/contracts/crowdsale/CappedCrowdsale.sol +++ b/contracts/crowdsale/CappedCrowdsale.sol @@ -16,11 +16,11 @@ contract CappedCrowdsale is Crowdsale { cap = _cap; } - // overriding Crowdsale#purchaseValid to add extra cap logic + // overriding Crowdsale#validPurchase to add extra cap logic // @return true if investors can buy at the moment - function purchaseValid() internal constant returns (bool) { + function validPurchase() internal constant returns (bool) { bool withinCap = weiRaised.add(msg.value) <= cap; - return super.purchaseValid() && withinCap; + return super.validPurchase() && withinCap; } // overriding Crowdsale#hasEnded to add cap logic diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 04244dca7..8c4a00395 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -68,7 +68,7 @@ contract Crowdsale { // low level token purchase function function buyTokens(address beneficiary) payable { require(beneficiary != 0x0); - require(purchaseValid()); + require(validPurchase()); uint256 weiAmount = msg.value; uint256 updatedWeiRaised = weiRaised.add(weiAmount); @@ -92,7 +92,7 @@ contract Crowdsale { } // @return true if the transaction can buy tokens - function purchaseValid() internal constant returns (bool) { + function validPurchase() internal constant returns (bool) { uint256 current = block.number; bool withinPeriod = current >= startBlock && current <= endBlock; bool nonZeroPurchase = msg.value != 0; From d2dd6e40b6e3de935905933f6a419c8beb396059 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sun, 2 Jul 2017 21:06:58 +0100 Subject: [PATCH 033/160] added new test for a day passed scenario to the DayLimit contract --- test/DayLimit.js | 27 ++++++++++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/test/DayLimit.js b/test/DayLimit.js index 99c565701..28c116df8 100644 --- a/test/DayLimit.js +++ b/test/DayLimit.js @@ -1,9 +1,11 @@ 'use strict'; const assertJump = require('./helpers/assertJump'); +const timer = require('./helpers/timer'); -var DayLimitMock = artifacts.require('helpers/DayLimitMock.sol'); +var DayLimitMock = artifacts.require('./helpers/DayLimitMock.sol'); contract('DayLimit', function(accounts) { + const day = 60 * 60 * 24; it('should construct with the passed daily limit', async function() { let initLimit = 10; @@ -84,4 +86,27 @@ contract('DayLimit', function(accounts) { assert.equal(spentToday, 3); }); + it('should allow spending if daily limit is reached and then the next has come', async function() { + let limit = 10; + let dayLimit = await DayLimitMock.new(limit); + + await dayLimit.attemptSpend(8); + let spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 8); + + try { + await dayLimit.attemptSpend(3); + } catch(error) { + assertJump(error); + } + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 8); + + await timer(day); + + await dayLimit.attemptSpend(3); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 3); + }); + }); From b961eea89dbeb37f4b5d5afe36fe2f05be130b46 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sun, 2 Jul 2017 17:10:11 -0300 Subject: [PATCH 034/160] fix claimRefund precondition --- contracts/crowdsale/RefundableCrowdsale.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/crowdsale/RefundableCrowdsale.sol b/contracts/crowdsale/RefundableCrowdsale.sol index ad5631495..6bf3b0e5b 100644 --- a/contracts/crowdsale/RefundableCrowdsale.sol +++ b/contracts/crowdsale/RefundableCrowdsale.sol @@ -35,7 +35,7 @@ contract RefundableCrowdsale is FinalizableCrowdsale { // if crowdsale is unsuccessful, investors can claim refunds here function claimRefund() { - require(hasEnded()); + require(isFinalized); require(!goalReached()); vault.refund(msg.sender); From 759f8de81f901a3cf544c1db7ba76c3111ceffee Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sun, 2 Jul 2017 17:52:44 -0300 Subject: [PATCH 035/160] fix import directories --- contracts/payment/PullPayment.sol | 2 +- contracts/token/BasicToken.sol | 2 +- test/helpers/SafeMathMock.sol | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/payment/PullPayment.sol b/contracts/payment/PullPayment.sol index 2c9210004..ba710b531 100644 --- a/contracts/payment/PullPayment.sol +++ b/contracts/payment/PullPayment.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.11; -import '../SafeMath.sol'; +import '../math/SafeMath.sol'; /** diff --git a/contracts/token/BasicToken.sol b/contracts/token/BasicToken.sol index 1f347a38a..5618227a1 100644 --- a/contracts/token/BasicToken.sol +++ b/contracts/token/BasicToken.sol @@ -2,7 +2,7 @@ pragma solidity ^0.4.11; import './ERC20Basic.sol'; -import '../SafeMath.sol'; +import '../math/SafeMath.sol'; /** diff --git a/test/helpers/SafeMathMock.sol b/test/helpers/SafeMathMock.sol index f2b6d81e9..a9edd02c4 100644 --- a/test/helpers/SafeMathMock.sol +++ b/test/helpers/SafeMathMock.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.11; -import '../../contracts/SafeMath.sol'; +import '../../contracts/math/SafeMath.sol'; contract SafeMathMock { From 0b1f08043b51a23680f091f182071c5e718d0f79 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sun, 2 Jul 2017 17:56:10 -0300 Subject: [PATCH 036/160] change Math to a library instead of a contract --- contracts/math/Math.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/math/Math.sol b/contracts/math/Math.sol index fa89c371f..3d016c0ac 100644 --- a/contracts/math/Math.sol +++ b/contracts/math/Math.sol @@ -5,7 +5,7 @@ pragma solidity ^0.4.11; * @dev Assorted math operations */ -contract Math { +library Math { function max64(uint64 a, uint64 b) internal constant returns (uint64) { return a >= b ? a : b; } From 421ed4f8ab8f7666da1ca52f61bd4b5785a5f7b9 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sun, 2 Jul 2017 17:56:34 -0300 Subject: [PATCH 037/160] fix references to max and min functions --- contracts/token/VestedToken.sol | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index df2d1f4b4..b7748b09e 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -1,5 +1,6 @@ pragma solidity ^0.4.11; +import "../math/Math.sol"; import "./StandardToken.sol"; import "./LimitedTransferToken.sol"; @@ -121,7 +122,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { // Return the minimum of how many vested can transfer and other value // in case there are other limiting transferability factors (default is balanceOf) - return SafeMath.min256(vestedTransferable, super.transferableTokens(holder, time)); + return Math.min256(vestedTransferable, super.transferableTokens(holder, time)); } /** @@ -241,7 +242,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { date = uint64(now); uint256 grantIndex = grants[holder].length; for (uint256 i = 0; i < grantIndex; i++) { - date = SafeMath.max64(grants[holder][i].vesting, date); + date = Math.max64(grants[holder][i].vesting, date); } } } From 981ec2dbdc7cda40dc4c8daf2f8cdb7c4681e7bf Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Sun, 2 Jul 2017 18:27:18 -0300 Subject: [PATCH 038/160] v1.1.0 --- ethpm.json | 2 +- package.json | 2 +- yarn.lock | 448 ++++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 431 insertions(+), 21 deletions(-) diff --git a/ethpm.json b/ethpm.json index c0e24b66f..2352f07fa 100644 --- a/ethpm.json +++ b/ethpm.json @@ -1,6 +1,6 @@ { "package_name": "zeppelin", - "version": "1.0.7", + "version": "1.1.0", "description": "Secure Smart Contract library for Solidity", "authors": [ "Manuel Araoz " diff --git a/package.json b/package.json index 520f56ef7..4bea234e2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zeppelin-solidity", - "version": "1.0.7", + "version": "1.1.0", "description": "Secure Smart Contract library for Solidity", "main": "truffle.js", "scripts": { diff --git a/yarn.lock b/yarn.lock index 342a753c2..ac6f2f2e8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -46,10 +46,24 @@ accepts@1.3.3: mime-types "~2.1.11" negotiator "0.6.1" +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + acorn@^1.0.3: version "1.2.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + adm-zip@~0.4.3: version "0.4.7" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" @@ -62,7 +76,11 @@ after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" -ajv@^4.9.1: +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0, ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" dependencies: @@ -94,10 +112,18 @@ ansi-align@^1.1.0: dependencies: string-width "^1.0.1" +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -252,7 +278,7 @@ babel-cli@*: optionalDependencies: chokidar "^1.6.1" -babel-code-frame@^6.22.0: +babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" dependencies: @@ -855,7 +881,11 @@ better-assert@~1.0.0: dependencies: callsite "1.0.0" -"bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", "bignumber.js@git+https://github.com/debris/bignumber.js.git#master": +"bignumber.js@git+https://github.com/debris/bignumber.js#master": + version "2.0.7" + resolved "git+https://github.com/debris/bignumber.js#c7a38de919ed75e6fb6ba38051986e294b328df9" + +"bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2": version "2.0.7" resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" @@ -1102,10 +1132,20 @@ call@3.x.x: boom "4.x.x" hoek "4.x.x" +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + camelcase@^1.0.2, camelcase@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" @@ -1151,6 +1191,17 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" +chai-as-promised@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.0.tgz#5bc1be34e39e8555785945dd1085222f720577e7" + dependencies: + check-error "^1.0.2" + eslint "^3.19.0" + +chai-bignumber@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chai-bignumber/-/chai-bignumber-2.0.0.tgz#0cbf9b81790801c3f24fb77f59fa1e17a9c6e3f2" + chai@^3.3.0, chai@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" @@ -1159,7 +1210,18 @@ chai@^3.3.0, chai@^3.5.0: deep-eql "^0.1.3" type-detect "^1.0.0" -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1: +chai@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.0.2.tgz#2f7327c4de6f385dd7787999e2ab02697a32b83b" + dependencies: + assertion-error "^1.0.1" + check-error "^1.0.1" + deep-eql "^2.0.1" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1169,6 +1231,10 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1: strip-ansi "^3.0.0" supports-color "^2.0.0" +check-error@^1.0.1, check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + checkpoint-store@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" @@ -1224,10 +1290,24 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: dependencies: inherits "^2.0.1" +circular-json@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" @@ -1419,6 +1499,12 @@ crypto-js@^3.1.9-1: version "3.1.9-1" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8" +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -1465,6 +1551,12 @@ deep-eql@^0.1.3: dependencies: type-detect "0.1.1" +deep-eql@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-2.0.2.tgz#b1bac06e56f0a76777686d50c9feb75c2ed7679a" + dependencies: + type-detect "^3.0.0" + deep-equal@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" @@ -1500,7 +1592,7 @@ defined@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" -del@^2.2.0: +del@^2.0.2, del@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: @@ -1561,6 +1653,13 @@ diff@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" @@ -1697,6 +1796,58 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.23" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.23.tgz#7578b51be974207a5487821b56538c224e4e7b38" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-symbol "^3.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -1705,7 +1856,7 @@ escape-string-regexp@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1739,6 +1890,62 @@ escodegen@~1.3.2: optionalDependencies: source-map "~0.1.33" +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint@^3.19.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.5.2" + debug "^2.1.1" + doctrine "^2.0.0" + escope "^3.6.0" + espree "^3.4.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.14.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.7.5" + strip-bom "^3.0.0" + strip-json-comments "~2.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espree@^3.4.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" + dependencies: + acorn "^5.0.1" + acorn-jsx "^3.0.0" + esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" @@ -1751,10 +1958,27 @@ esprima@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + estraverse@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + estraverse@~1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.3.2.tgz#37c2b893ef13d723f276d878d60d8535152a6c42" @@ -1814,9 +2038,9 @@ ethereumjs-block@~1.2.2: ethereumjs-util "^4.0.1" merkle-patricia-tree "^2.1.2" -"ethereumjs-testrpc-sc@git+https://github.com/sc-forks/testrpc-sc.git": +"ethereumjs-testrpc-sc@https://github.com/sc-forks/testrpc-sc.git": version "3.0.3" - resolved "git+https://github.com/sc-forks/testrpc-sc.git#15cc0fb8e031bee152c7b8e3f8df5f2ad33ca04f" + resolved "https://github.com/sc-forks/testrpc-sc.git#15cc0fb8e031bee152c7b8e3f8df5f2ad33ca04f" dependencies: async "~1.5.0" bignumber.js "~2.1.4" @@ -1972,12 +2196,23 @@ ethpm@0.0.10: semver "^5.3.0" wget-improved "^1.4.0" +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + evp_bytestokey@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" dependencies: create-hash "^1.1.1" +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -2031,6 +2266,20 @@ fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -2071,6 +2320,15 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +flat-cache@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + flatmap@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/flatmap/-/flatmap-0.0.3.tgz#1f18a4d938152d495965f9c958d923ab2dd669b4" @@ -2226,6 +2484,10 @@ get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -2314,7 +2576,7 @@ global@~4.3.0: min-document "^2.19.0" process "~0.5.1" -globals@^9.0.0: +globals@^9.0.0, globals@^9.14.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" @@ -2570,6 +2832,10 @@ ieee754@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" +ignore@^3.2.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" + immediate@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" @@ -2597,6 +2863,24 @@ ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + interface-connection@^0.3.0, interface-connection@~0.3.1, interface-connection@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/interface-connection/-/interface-connection-0.3.2.tgz#e4949883f6ea79fb7edd01ee3f4fca47a29fd2c4" @@ -2949,6 +3233,10 @@ is-fullwidth-code-point@^1.0.0: dependencies: number-is-nan "^1.0.0" +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + is-function@^1.0.1, is-function@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" @@ -2977,7 +3265,7 @@ is-ipfs@~0.3.0: bs58 "^4.0.0" multihashes "^0.3.2" -is-my-json-valid@^2.12.4: +is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: version "2.16.0" resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" dependencies: @@ -3048,6 +3336,12 @@ is-regex@^1.0.3: dependencies: has "^1.0.1" +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -3072,7 +3366,7 @@ isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" -isarray@1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3170,7 +3464,7 @@ js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" -js-yaml@3.6.1, js-yaml@3.x: +js-yaml@3.6.1, js-yaml@3.x, js-yaml@^3.5.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" dependencies: @@ -3201,7 +3495,7 @@ json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" -json-stable-stringify@^1.0.1: +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" dependencies: @@ -3422,7 +3716,7 @@ levelup@~0.19.0: semver "~5.1.0" xtend "~3.0.0" -levn@~0.3.0: +levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" dependencies: @@ -3754,7 +4048,7 @@ lodash.values@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" -lodash@^4.11.1, lodash@^4.11.2, lodash@^4.14.0, lodash@^4.17.1, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.5.1: +lodash@^4.0.0, lodash@^4.11.1, lodash@^4.11.2, lodash@^4.14.0, lodash@^4.17.1, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3955,7 +4249,7 @@ mocha@^3.2.0: mkdirp "0.5.1" supports-color "3.1.2" -moment@2.x.x: +moment@2.x.x, moment@^2.18.1: version "2.18.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" @@ -4073,10 +4367,18 @@ murmurhash3js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/murmurhash3js/-/murmurhash3js-3.0.1.tgz#3e983e5b47c2a06f43a713174e7e435ca044b998" +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + nan@^2.0.5, nan@^2.0.8, nan@^2.2.1, nan@^2.3.0, nan@^2.5.1, nan@~2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + ndjson@^1.4.3: version "1.5.0" resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-1.5.0.tgz#ae603b36b134bcec347b452422b0bf98d5832ec8" @@ -4274,6 +4576,10 @@ once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: dependencies: wrappy "1" +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -4287,7 +4593,7 @@ optimist@~0.3.5: dependencies: wordwrap "~0.0.2" -optionator@^0.8.1: +optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: @@ -4430,6 +4736,10 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +pathval@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + pbkdf2@^3.0.0, pbkdf2@^3.0.3, pbkdf2@^3.0.9: version "3.0.12" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2" @@ -4501,6 +4811,10 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + podium@^1.2.x: version "1.2.5" resolved "https://registry.yarnpkg.com/podium/-/podium-1.2.5.tgz#87c566c2f0365bcf0a1ec7602c4d01948cdd2ad5" @@ -4552,6 +4866,10 @@ process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + promise@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-1.3.0.tgz#e5cc9a4c8278e4664ffedc01c7da84842b040175" @@ -4869,6 +5187,14 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -5031,6 +5357,17 @@ require-nocache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/require-nocache/-/require-nocache-1.0.0.tgz#a665d0b60a07e8249875790a4d350219d3c85fa3" +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + resolve-from@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" @@ -5039,6 +5376,13 @@ resolve@1.1.x, resolve@^1.1.5, resolve@^1.1.6, resolve@~1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + resumer@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" @@ -5091,6 +5435,12 @@ rsa-unpack@0.0.6: dependencies: optimist "~0.3.5" +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + run-parallel-limit@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.0.3.tgz#6c3930cc7c0b47d35ae7420109f660aade2401e3" @@ -5099,6 +5449,10 @@ run-series@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.4.tgz#89a73ddc5e75c9ef8ab6320c0a1600d6a41179b9" +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + safe-buffer@^5.0.1, safe-buffer@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223" @@ -5221,7 +5575,7 @@ shallow-copy@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" -shelljs@^0.7.4: +shelljs@^0.7.4, shelljs@^0.7.5: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" dependencies: @@ -5276,6 +5630,10 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" @@ -5541,6 +5899,13 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +string-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.0.tgz#030664561fc146c9423ec7d978fe2457437fe6d0" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string.prototype.trim@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" @@ -5569,6 +5934,12 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -5619,6 +5990,17 @@ supports-color@^3.1.0: dependencies: has-flag "^1.0.0" +table@^3.7.8: + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + tape@^4.4.0: version "4.6.3" resolved "https://registry.yarnpkg.com/tape/-/tape-4.6.3.tgz#637e77581e9ab2ce17577e9bd4ce4f575806d8b6" @@ -5683,6 +6065,10 @@ temp@^0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" @@ -5697,7 +6083,7 @@ through2@~0.4.1: readable-stream "~1.0.17" xtend "~2.1.1" -through@~2.3.4, through@~2.3.8: +through@^2.3.6, through@~2.3.4, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -5958,6 +6344,10 @@ truffle@3.2.2: web3 "^0.18.0" yargs "^6.6.0" +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + tslib@^1.5.0: version "1.7.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.7.1.tgz#bc8004164691923a79fe8378bbeb3da2017538ec" @@ -5998,6 +6388,14 @@ type-detect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" +type-detect@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-3.0.0.tgz#46d0cc8553abb7b13a352b0d6dea2fd58f2d9b55" + +type-detect@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.3.tgz#0e3f2670b44099b0b46c284d136a7ef49c74c2ea" + typedarray-to-buffer@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz#1017b32d984ff556eba100f501589aba1ace2e04" @@ -6086,6 +6484,12 @@ user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" + utf8@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" @@ -6296,6 +6700,12 @@ write-file-atomic@^1.1.2: imurmurhash "^0.1.4" slide "^1.1.5" +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + ws@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" From c254d8703d0b2b04b3f44907fdad8348818c2aa3 Mon Sep 17 00:00:00 2001 From: Date: Sun, 2 Jul 2017 14:33:15 -0700 Subject: [PATCH 039/160] update according to changes in #288 --- docs/source/math.rst | 24 ++++++++++++++++++++++++ docs/source/safemath.rst | 8 ++++---- 2 files changed, 28 insertions(+), 4 deletions(-) create mode 100644 docs/source/math.rst diff --git a/docs/source/math.rst b/docs/source/math.rst new file mode 100644 index 000000000..30d67124c --- /dev/null +++ b/docs/source/math.rst @@ -0,0 +1,24 @@ +Math +============================================= + +Provides assorted low-level math operations. + +max64(uint64 a, uint64 b) internal constant returns (uint64) +""""""""""""""""""""""""""""""""""""""""""""""""" + +Returns the largest of two uint64 numbers. + +min64(uint64 a, uint64 b) internal constant returns (uint64) +""""""""""""""""""""""""""""""""""""""""""""""""" + +Returns the smallest of two uint64 numbers. + +max64(uint256 a, uint256 b) internal constant returns (uint256) +""""""""""""""""""""""""""""""""""""""""""""""""" + +Returns the largest of two uint256 numbers. + +min64(uint256 a, uint256 b) internal constant returns (uint256) +""""""""""""""""""""""""""""""""""""""""""""""""" + +Returns the smallest of two uint256 numbers. diff --git a/docs/source/safemath.rst b/docs/source/safemath.rst index c1f9cc18c..892c45a77 100644 --- a/docs/source/safemath.rst +++ b/docs/source/safemath.rst @@ -8,17 +8,17 @@ assert(bool assertion) internal Throws an error if the passed result is false. Used in this contract by checking mathematical expressions. -safeMul(uint a, uint b) internal returns (uint) +mul(uint256 a, uint256 b) internal returns (uint256) """"""""""""""""""""""""""""""""""""""""""""""""" Multiplies two unisgned integers. Asserts that dividing the product by the non-zero multiplicand results in the multiplier. -safeSub(uint a, uint b) internal returns (uint) +sub(uint256 a, uint256 b) internal returns (uint256) """"""""""""""""""""""""""""""""""""""""""""""""" Checks that b is not greater than a before subtracting. -safeAdd(uint a, uint b) internal returns (uint) +add(uint256 a, uint256 b) internal returns (uint256) """"""""""""""""""""""""""""""""""""""""""""""""" -Checks that the result is greater than both a and b. +Checks that the result is greater than both a and b. \ No newline at end of file From f507a0ea29f44bebb1e3d94fcc97ea5808915dab Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sun, 2 Jul 2017 18:39:51 -0300 Subject: [PATCH 040/160] fix references to SafeMath in crowdsale contracts --- contracts/crowdsale/CappedCrowdsale.sol | 2 +- contracts/crowdsale/Crowdsale.sol | 2 +- contracts/crowdsale/FinalizableCrowdsale.sol | 2 +- contracts/crowdsale/RefundVault.sol | 2 +- contracts/crowdsale/RefundableCrowdsale.sol | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/contracts/crowdsale/CappedCrowdsale.sol b/contracts/crowdsale/CappedCrowdsale.sol index 9142efb37..f04649f36 100644 --- a/contracts/crowdsale/CappedCrowdsale.sol +++ b/contracts/crowdsale/CappedCrowdsale.sol @@ -1,6 +1,6 @@ pragma solidity ^0.4.11; -import '../SafeMath.sol'; +import '../math/SafeMath.sol'; import './Crowdsale.sol'; /** diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 8c4a00395..bee1efd2e 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.11; import '../token/MintableToken.sol'; -import '../SafeMath.sol'; +import '../math/SafeMath.sol'; /** * @title Crowdsale diff --git a/contracts/crowdsale/FinalizableCrowdsale.sol b/contracts/crowdsale/FinalizableCrowdsale.sol index c769f0229..1a736083c 100644 --- a/contracts/crowdsale/FinalizableCrowdsale.sol +++ b/contracts/crowdsale/FinalizableCrowdsale.sol @@ -1,6 +1,6 @@ pragma solidity ^0.4.11; -import '../SafeMath.sol'; +import '../math/SafeMath.sol'; import '../ownership/Ownable.sol'; import './Crowdsale.sol'; diff --git a/contracts/crowdsale/RefundVault.sol b/contracts/crowdsale/RefundVault.sol index 13de5d98e..cc92ff9f9 100644 --- a/contracts/crowdsale/RefundVault.sol +++ b/contracts/crowdsale/RefundVault.sol @@ -1,6 +1,6 @@ pragma solidity ^0.4.11; -import '../SafeMath.sol'; +import '../math/SafeMath.sol'; import '../ownership/Ownable.sol'; /** diff --git a/contracts/crowdsale/RefundableCrowdsale.sol b/contracts/crowdsale/RefundableCrowdsale.sol index 6bf3b0e5b..f45df1d33 100644 --- a/contracts/crowdsale/RefundableCrowdsale.sol +++ b/contracts/crowdsale/RefundableCrowdsale.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.11; -import '../SafeMath.sol'; +import '../math/SafeMath.sol'; import './FinalizableCrowdsale.sol'; import './RefundVault.sol'; From 7434b3d6d2063e866be9908b06e254a9a80696d4 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Sun, 2 Jul 2017 18:53:32 -0300 Subject: [PATCH 041/160] v1.1.0 --- ethpm.json | 2 +- package.json | 2 +- yarn.lock | 448 ++++++++++++++++++++++++++++++++++++++++++++++++--- 3 files changed, 431 insertions(+), 21 deletions(-) diff --git a/ethpm.json b/ethpm.json index c0e24b66f..2352f07fa 100644 --- a/ethpm.json +++ b/ethpm.json @@ -1,6 +1,6 @@ { "package_name": "zeppelin", - "version": "1.0.7", + "version": "1.1.0", "description": "Secure Smart Contract library for Solidity", "authors": [ "Manuel Araoz " diff --git a/package.json b/package.json index 520f56ef7..4bea234e2 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zeppelin-solidity", - "version": "1.0.7", + "version": "1.1.0", "description": "Secure Smart Contract library for Solidity", "main": "truffle.js", "scripts": { diff --git a/yarn.lock b/yarn.lock index 342a753c2..ac6f2f2e8 100644 --- a/yarn.lock +++ b/yarn.lock @@ -46,10 +46,24 @@ accepts@1.3.3: mime-types "~2.1.11" negotiator "0.6.1" +acorn-jsx@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" + dependencies: + acorn "^3.0.4" + acorn@^1.0.3: version "1.2.2" resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" +acorn@^3.0.4: + version "3.3.0" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" + +acorn@^5.0.1: + version "5.0.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" + adm-zip@~0.4.3: version "0.4.7" resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" @@ -62,7 +76,11 @@ after@0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" -ajv@^4.9.1: +ajv-keywords@^1.0.0: + version "1.5.1" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" + +ajv@^4.7.0, ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" dependencies: @@ -94,10 +112,18 @@ ansi-align@^1.1.0: dependencies: string-width "^1.0.1" +ansi-escapes@^1.1.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" + ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" +ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" @@ -252,7 +278,7 @@ babel-cli@*: optionalDependencies: chokidar "^1.6.1" -babel-code-frame@^6.22.0: +babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" dependencies: @@ -855,7 +881,11 @@ better-assert@~1.0.0: dependencies: callsite "1.0.0" -"bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", "bignumber.js@git+https://github.com/debris/bignumber.js.git#master": +"bignumber.js@git+https://github.com/debris/bignumber.js#master": + version "2.0.7" + resolved "git+https://github.com/debris/bignumber.js#c7a38de919ed75e6fb6ba38051986e294b328df9" + +"bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2": version "2.0.7" resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" @@ -1102,10 +1132,20 @@ call@3.x.x: boom "4.x.x" hoek "4.x.x" +caller-path@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" + dependencies: + callsites "^0.2.0" + callsite@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" +callsites@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" + camelcase@^1.0.2, camelcase@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" @@ -1151,6 +1191,17 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" +chai-as-promised@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.0.tgz#5bc1be34e39e8555785945dd1085222f720577e7" + dependencies: + check-error "^1.0.2" + eslint "^3.19.0" + +chai-bignumber@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/chai-bignumber/-/chai-bignumber-2.0.0.tgz#0cbf9b81790801c3f24fb77f59fa1e17a9c6e3f2" + chai@^3.3.0, chai@^3.5.0: version "3.5.0" resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" @@ -1159,7 +1210,18 @@ chai@^3.3.0, chai@^3.5.0: deep-eql "^0.1.3" type-detect "^1.0.0" -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1: +chai@^4.0.2: + version "4.0.2" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.0.2.tgz#2f7327c4de6f385dd7787999e2ab02697a32b83b" + dependencies: + assertion-error "^1.0.1" + check-error "^1.0.1" + deep-eql "^2.0.1" + get-func-name "^2.0.0" + pathval "^1.0.0" + type-detect "^4.0.0" + +chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1169,6 +1231,10 @@ chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1: strip-ansi "^3.0.0" supports-color "^2.0.0" +check-error@^1.0.1, check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + checkpoint-store@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/checkpoint-store/-/checkpoint-store-1.1.0.tgz#04e4cb516b91433893581e6d4601a78e9552ea06" @@ -1224,10 +1290,24 @@ cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: dependencies: inherits "^2.0.1" +circular-json@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" + cli-boxes@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" +cli-cursor@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" + dependencies: + restore-cursor "^1.0.1" + +cli-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + cliui@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" @@ -1419,6 +1499,12 @@ crypto-js@^3.1.9-1: version "3.1.9-1" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8" +d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + dashdash@^1.12.0: version "1.14.1" resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" @@ -1465,6 +1551,12 @@ deep-eql@^0.1.3: dependencies: type-detect "0.1.1" +deep-eql@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-2.0.2.tgz#b1bac06e56f0a76777686d50c9feb75c2ed7679a" + dependencies: + type-detect "^3.0.0" + deep-equal@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" @@ -1500,7 +1592,7 @@ defined@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" -del@^2.2.0: +del@^2.0.2, del@^2.2.0: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: @@ -1561,6 +1653,13 @@ diff@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" +doctrine@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" + dependencies: + esutils "^2.0.2" + isarray "^1.0.0" + dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" @@ -1697,6 +1796,58 @@ es-to-primitive@^1.1.1: is-date-object "^1.0.1" is-symbol "^1.0.1" +es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.23" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.23.tgz#7578b51be974207a5487821b56538c224e4e7b38" + dependencies: + es6-iterator "2" + es6-symbol "~3.1" + +es6-iterator@2, es6-iterator@^2.0.1, es6-iterator@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.1.tgz#8e319c9f0453bf575d374940a655920e59ca5512" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-symbol "^3.1" + +es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + +es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + +es6-symbol@3.1.1, es6-symbol@^3.1, es6-symbol@^3.1.1, es6-symbol@~3.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + +es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + escape-html@~1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" @@ -1705,7 +1856,7 @@ escape-string-regexp@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1739,6 +1890,62 @@ escodegen@~1.3.2: optionalDependencies: source-map "~0.1.33" +escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + +eslint@^3.19.0: + version "3.19.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" + dependencies: + babel-code-frame "^6.16.0" + chalk "^1.1.3" + concat-stream "^1.5.2" + debug "^2.1.1" + doctrine "^2.0.0" + escope "^3.6.0" + espree "^3.4.0" + esquery "^1.0.0" + estraverse "^4.2.0" + esutils "^2.0.2" + file-entry-cache "^2.0.0" + glob "^7.0.3" + globals "^9.14.0" + ignore "^3.2.0" + imurmurhash "^0.1.4" + inquirer "^0.12.0" + is-my-json-valid "^2.10.0" + is-resolvable "^1.0.0" + js-yaml "^3.5.1" + json-stable-stringify "^1.0.0" + levn "^0.3.0" + lodash "^4.0.0" + mkdirp "^0.5.0" + natural-compare "^1.4.0" + optionator "^0.8.2" + path-is-inside "^1.0.1" + pluralize "^1.2.1" + progress "^1.1.8" + require-uncached "^1.0.2" + shelljs "^0.7.5" + strip-bom "^3.0.0" + strip-json-comments "~2.0.1" + table "^3.7.8" + text-table "~0.2.0" + user-home "^2.0.0" + +espree@^3.4.0: + version "3.4.3" + resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" + dependencies: + acorn "^5.0.1" + acorn-jsx "^3.0.0" + esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" @@ -1751,10 +1958,27 @@ esprima@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" +esquery@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" + dependencies: + estraverse "^4.0.0" + +esrecurse@^4.1.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" + dependencies: + estraverse "^4.1.0" + object-assign "^4.0.1" + estraverse@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" +estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + estraverse@~1.3.0: version "1.3.2" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.3.2.tgz#37c2b893ef13d723f276d878d60d8535152a6c42" @@ -1814,9 +2038,9 @@ ethereumjs-block@~1.2.2: ethereumjs-util "^4.0.1" merkle-patricia-tree "^2.1.2" -"ethereumjs-testrpc-sc@git+https://github.com/sc-forks/testrpc-sc.git": +"ethereumjs-testrpc-sc@https://github.com/sc-forks/testrpc-sc.git": version "3.0.3" - resolved "git+https://github.com/sc-forks/testrpc-sc.git#15cc0fb8e031bee152c7b8e3f8df5f2ad33ca04f" + resolved "https://github.com/sc-forks/testrpc-sc.git#15cc0fb8e031bee152c7b8e3f8df5f2ad33ca04f" dependencies: async "~1.5.0" bignumber.js "~2.1.4" @@ -1972,12 +2196,23 @@ ethpm@0.0.10: semver "^5.3.0" wget-improved "^1.4.0" +event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + evp_bytestokey@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" dependencies: create-hash "^1.1.1" +exit-hook@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" + expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -2031,6 +2266,20 @@ fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" +figures@^1.3.5: + version "1.7.0" + resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" + dependencies: + escape-string-regexp "^1.0.5" + object-assign "^4.1.0" + +file-entry-cache@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" + dependencies: + flat-cache "^1.2.1" + object-assign "^4.0.1" + filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -2071,6 +2320,15 @@ find-up@^2.0.0, find-up@^2.1.0: dependencies: locate-path "^2.0.0" +flat-cache@^1.2.1: + version "1.2.2" + resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" + dependencies: + circular-json "^0.3.1" + del "^2.0.2" + graceful-fs "^4.1.2" + write "^0.2.1" + flatmap@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/flatmap/-/flatmap-0.0.3.tgz#1f18a4d938152d495965f9c958d923ab2dd669b4" @@ -2226,6 +2484,10 @@ get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -2314,7 +2576,7 @@ global@~4.3.0: min-document "^2.19.0" process "~0.5.1" -globals@^9.0.0: +globals@^9.0.0, globals@^9.14.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" @@ -2570,6 +2832,10 @@ ieee754@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" +ignore@^3.2.0: + version "3.3.3" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" + immediate@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" @@ -2597,6 +2863,24 @@ ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" +inquirer@^0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" + dependencies: + ansi-escapes "^1.1.0" + ansi-regex "^2.0.0" + chalk "^1.0.0" + cli-cursor "^1.0.1" + cli-width "^2.0.0" + figures "^1.3.5" + lodash "^4.3.0" + readline2 "^1.0.1" + run-async "^0.1.0" + rx-lite "^3.1.2" + string-width "^1.0.1" + strip-ansi "^3.0.0" + through "^2.3.6" + interface-connection@^0.3.0, interface-connection@~0.3.1, interface-connection@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/interface-connection/-/interface-connection-0.3.2.tgz#e4949883f6ea79fb7edd01ee3f4fca47a29fd2c4" @@ -2949,6 +3233,10 @@ is-fullwidth-code-point@^1.0.0: dependencies: number-is-nan "^1.0.0" +is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + is-function@^1.0.1, is-function@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" @@ -2977,7 +3265,7 @@ is-ipfs@~0.3.0: bs58 "^4.0.0" multihashes "^0.3.2" -is-my-json-valid@^2.12.4: +is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: version "2.16.0" resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" dependencies: @@ -3048,6 +3336,12 @@ is-regex@^1.0.3: dependencies: has "^1.0.1" +is-resolvable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" + dependencies: + tryit "^1.0.1" + is-retry-allowed@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" @@ -3072,7 +3366,7 @@ isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" -isarray@1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3170,7 +3464,7 @@ js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" -js-yaml@3.6.1, js-yaml@3.x: +js-yaml@3.6.1, js-yaml@3.x, js-yaml@^3.5.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" dependencies: @@ -3201,7 +3495,7 @@ json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" -json-stable-stringify@^1.0.1: +json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" dependencies: @@ -3422,7 +3716,7 @@ levelup@~0.19.0: semver "~5.1.0" xtend "~3.0.0" -levn@~0.3.0: +levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" dependencies: @@ -3754,7 +4048,7 @@ lodash.values@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" -lodash@^4.11.1, lodash@^4.11.2, lodash@^4.14.0, lodash@^4.17.1, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.5.1: +lodash@^4.0.0, lodash@^4.11.1, lodash@^4.11.2, lodash@^4.14.0, lodash@^4.17.1, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.1: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -3955,7 +4249,7 @@ mocha@^3.2.0: mkdirp "0.5.1" supports-color "3.1.2" -moment@2.x.x: +moment@2.x.x, moment@^2.18.1: version "2.18.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" @@ -4073,10 +4367,18 @@ murmurhash3js@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/murmurhash3js/-/murmurhash3js-3.0.1.tgz#3e983e5b47c2a06f43a713174e7e435ca044b998" +mute-stream@0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" + nan@^2.0.5, nan@^2.0.8, nan@^2.2.1, nan@^2.3.0, nan@^2.5.1, nan@~2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" +natural-compare@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" + ndjson@^1.4.3: version "1.5.0" resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-1.5.0.tgz#ae603b36b134bcec347b452422b0bf98d5832ec8" @@ -4274,6 +4576,10 @@ once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: dependencies: wrappy "1" +onetime@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" + optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -4287,7 +4593,7 @@ optimist@~0.3.5: dependencies: wordwrap "~0.0.2" -optionator@^0.8.1: +optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: @@ -4430,6 +4736,10 @@ path-type@^2.0.0: dependencies: pify "^2.0.0" +pathval@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" + pbkdf2@^3.0.0, pbkdf2@^3.0.3, pbkdf2@^3.0.9: version "3.0.12" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2" @@ -4501,6 +4811,10 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" +pluralize@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" + podium@^1.2.x: version "1.2.5" resolved "https://registry.yarnpkg.com/podium/-/podium-1.2.5.tgz#87c566c2f0365bcf0a1ec7602c4d01948cdd2ad5" @@ -4552,6 +4866,10 @@ process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" +progress@^1.1.8: + version "1.1.8" + resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" + promise@~1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/promise/-/promise-1.3.0.tgz#e5cc9a4c8278e4664ffedc01c7da84842b040175" @@ -4869,6 +5187,14 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" +readline2@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + mute-stream "0.0.5" + rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -5031,6 +5357,17 @@ require-nocache@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/require-nocache/-/require-nocache-1.0.0.tgz#a665d0b60a07e8249875790a4d350219d3c85fa3" +require-uncached@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" + dependencies: + caller-path "^0.1.0" + resolve-from "^1.0.0" + +resolve-from@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" + resolve-from@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" @@ -5039,6 +5376,13 @@ resolve@1.1.x, resolve@^1.1.5, resolve@^1.1.6, resolve@~1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" +restore-cursor@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" + dependencies: + exit-hook "^1.0.0" + onetime "^1.0.0" + resumer@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/resumer/-/resumer-0.0.0.tgz#f1e8f461e4064ba39e82af3cdc2a8c893d076759" @@ -5091,6 +5435,12 @@ rsa-unpack@0.0.6: dependencies: optimist "~0.3.5" +run-async@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" + dependencies: + once "^1.3.0" + run-parallel-limit@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.0.3.tgz#6c3930cc7c0b47d35ae7420109f660aade2401e3" @@ -5099,6 +5449,10 @@ run-series@^1.1.4: version "1.1.4" resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.4.tgz#89a73ddc5e75c9ef8ab6320c0a1600d6a41179b9" +rx-lite@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" + safe-buffer@^5.0.1, safe-buffer@^5.1.0: version "5.1.0" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223" @@ -5221,7 +5575,7 @@ shallow-copy@~0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" -shelljs@^0.7.4: +shelljs@^0.7.4, shelljs@^0.7.5: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" dependencies: @@ -5276,6 +5630,10 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" +slice-ansi@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" + slide@^1.1.5: version "1.1.6" resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" @@ -5541,6 +5899,13 @@ string-width@^1.0.1, string-width@^1.0.2: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" +string-width@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.0.tgz#030664561fc146c9423ec7d978fe2457437fe6d0" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + string.prototype.trim@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz#d04de2c89e137f4d7d206f086b5ed2fae6be8cea" @@ -5569,6 +5934,12 @@ strip-ansi@^3.0.0, strip-ansi@^3.0.1: dependencies: ansi-regex "^2.0.0" +strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + strip-bom@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" @@ -5619,6 +5990,17 @@ supports-color@^3.1.0: dependencies: has-flag "^1.0.0" +table@^3.7.8: + version "3.8.3" + resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" + dependencies: + ajv "^4.7.0" + ajv-keywords "^1.0.0" + chalk "^1.1.1" + lodash "^4.0.0" + slice-ansi "0.0.4" + string-width "^2.0.0" + tape@^4.4.0: version "4.6.3" resolved "https://registry.yarnpkg.com/tape/-/tape-4.6.3.tgz#637e77581e9ab2ce17577e9bd4ce4f575806d8b6" @@ -5683,6 +6065,10 @@ temp@^0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" +text-table@~0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" + through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" @@ -5697,7 +6083,7 @@ through2@~0.4.1: readable-stream "~1.0.17" xtend "~2.1.1" -through@~2.3.4, through@~2.3.8: +through@^2.3.6, through@~2.3.4, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -5958,6 +6344,10 @@ truffle@3.2.2: web3 "^0.18.0" yargs "^6.6.0" +tryit@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" + tslib@^1.5.0: version "1.7.1" resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.7.1.tgz#bc8004164691923a79fe8378bbeb3da2017538ec" @@ -5998,6 +6388,14 @@ type-detect@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" +type-detect@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-3.0.0.tgz#46d0cc8553abb7b13a352b0d6dea2fd58f2d9b55" + +type-detect@^4.0.0: + version "4.0.3" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.3.tgz#0e3f2670b44099b0b46c284d136a7ef49c74c2ea" + typedarray-to-buffer@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz#1017b32d984ff556eba100f501589aba1ace2e04" @@ -6086,6 +6484,12 @@ user-home@^1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" +user-home@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" + dependencies: + os-homedir "^1.0.0" + utf8@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" @@ -6296,6 +6700,12 @@ write-file-atomic@^1.1.2: imurmurhash "^0.1.4" slide "^1.1.5" +write@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" + dependencies: + mkdirp "^0.5.1" + ws@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" From 6eac859781b3668441faa58c9ca3b9146133a52a Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Mon, 3 Jul 2017 17:06:47 +0100 Subject: [PATCH 042/160] Test if unpause prevents events allowed in paused state --- test/Pausable.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/Pausable.js b/test/Pausable.js index 2614b3af3..e96b683da 100644 --- a/test/Pausable.js +++ b/test/Pausable.js @@ -62,4 +62,18 @@ contract('Pausable', function(accounts) { assert.equal(count0, 1); }); + it('should prevent drastic measure after pause is over', async function() { + let Pausable = await PausableMock.new(); + await Pausable.pause(); + await Pausable.unpause(); + try { + await Pausable.drasticMeasure(); + } catch(error) { + assertJump(error); + } + + const drasticMeasureTaken = await Pausable.drasticMeasureTaken(); + assert.isFalse(drasticMeasureTaken); + }); + }); From 5e423bc353f853786eb8a25edda27e0cc0c1d368 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Wed, 5 Jul 2017 11:24:59 -0300 Subject: [PATCH 043/160] add release function, deprecate claim --- contracts/token/TokenTimelock.sol | 10 +++++++++- test/TokenTimelock.js | 22 +++++++++++----------- 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/contracts/token/TokenTimelock.sol b/contracts/token/TokenTimelock.sol index 595bf8d0b..7c85063c5 100644 --- a/contracts/token/TokenTimelock.sol +++ b/contracts/token/TokenTimelock.sol @@ -27,10 +27,18 @@ contract TokenTimelock { } /** - * @dev beneficiary claims tokens held by time lock + * @notice Transfers tokens held by timelock to beneficiary. + * Deprecated: please use TokenTimelock#release instead. */ function claim() { require(msg.sender == beneficiary); + release(); + } + + /** + * @notice Transfers tokens held by timelock to beneficiary. + */ + function release() { require(now >= releaseTime); uint amount = token.balanceOf(this); diff --git a/test/TokenTimelock.js b/test/TokenTimelock.js index 894ebae92..318cec98b 100644 --- a/test/TokenTimelock.js +++ b/test/TokenTimelock.js @@ -24,33 +24,33 @@ contract('TokenTimelock', function ([_, owner, beneficiary]) { await this.token.mint(this.timelock.address, amount, {from: owner}) }) - it('cannot be claimed before time limit', async function () { - await this.timelock.claim({from: beneficiary}).should.be.rejected + it('cannot be released before time limit', async function () { + await this.timelock.release().should.be.rejected }) - it('cannot be claimed just before time limit', async function () { + it('cannot be released just before time limit', async function () { await increaseTime(moment.duration(0.99, 'year')) - await this.timelock.claim({from: beneficiary}).should.be.rejected + await this.timelock.release().should.be.rejected }) - it('can be claimed just after limit', async function () { + it('can be released just after limit', async function () { await increaseTime(moment.duration(1.01, 'year')) - await this.timelock.claim({from: beneficiary}).should.be.fulfilled + await this.timelock.release().should.be.fulfilled const balance = await this.token.balanceOf(beneficiary) balance.should.be.bignumber.equal(amount) }) - it('can be claimed after time limit', async function () { + it('can be released after time limit', async function () { await increaseTime(moment.duration(2, 'year')) - await this.timelock.claim({from: beneficiary}).should.be.fulfilled + await this.timelock.release().should.be.fulfilled const balance = await this.token.balanceOf(beneficiary) balance.should.be.bignumber.equal(amount) }) - it('cannot be claimed twice', async function () { + it('cannot be released twice', async function () { await increaseTime(moment.duration(2, 'year')) - await this.timelock.claim({from: beneficiary}).should.be.fulfilled - await this.timelock.claim({from: beneficiary}).should.be.rejected + await this.timelock.release().should.be.fulfilled + await this.timelock.release().should.be.rejected const balance = await this.token.balanceOf(beneficiary) balance.should.be.bignumber.equal(amount) }) From 5afbdf00dba439078e696bddbce7daccb8ce43e0 Mon Sep 17 00:00:00 2001 From: cgewecke Date: Mon, 10 Jul 2017 15:45:12 -0700 Subject: [PATCH 044/160] Fix coverage --- .solcover.js | 5 +++++ .travis.yml | 2 +- package.json | 2 +- scripts/coverage.sh | 24 +++++++++++++++++++++++- yarn.lock | 39 +++++++++++++++++++++------------------ 5 files changed, 51 insertions(+), 21 deletions(-) create mode 100644 .solcover.js diff --git a/.solcover.js b/.solcover.js new file mode 100644 index 000000000..0fbd9dc86 --- /dev/null +++ b/.solcover.js @@ -0,0 +1,5 @@ +module.exports = { + norpc: true, + testCommand: 'node --max-old-space-size=4096 ../node_modules/.bin/truffle test --network coverage', + skipFiles: ['lifecycle/Migrations.sol'] +} \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 33ea9aae1..af96e468c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,5 +1,5 @@ dist: trusty -sudo: false +sudo: required group: beta language: node_js node_js: diff --git a/package.json b/package.json index 4bea234e2..ce5498d49 100644 --- a/package.json +++ b/package.json @@ -42,7 +42,7 @@ "ethereumjs-testrpc": "^3.0.2", "mocha-lcov-reporter": "^1.3.0", "moment": "^2.18.1", - "solidity-coverage": "^0.1.0", + "solidity-coverage": "^0.1.7", "truffle": "3.2.2" } } diff --git a/scripts/coverage.sh b/scripts/coverage.sh index 9257d8a36..327e8a476 100755 --- a/scripts/coverage.sh +++ b/scripts/coverage.sh @@ -1,3 +1,25 @@ #! /bin/bash -SOLIDITY_COVERAGE=true ./node_modules/.bin/solidity-coverage + + +output=$(nc -z localhost 8555; echo $?) +[ $output -eq "0" ] && trpc_running=true +if [ ! $trpc_running ]; then + echo "Starting testrpc-sc to generate coverage" + # we give each account 1M ether, needed for high-value tests + ./node_modules/ethereumjs-testrpc-sc/bin/testrpc --gasLimit 0xfffffffffff --port 8555 \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501200,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501201,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501202,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501203,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501204,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501205,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501206,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501207,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501208,1000000000000000000000000" \ + --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501209,1000000000000000000000000" \ + > /dev/null & + trpc_pid=$! +fi +SOLIDITY_COVERAGE=true && ./node_modules/.bin/solidity-coverage + diff --git a/yarn.lock b/yarn.lock index ac6f2f2e8..1775b5221 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2038,9 +2038,9 @@ ethereumjs-block@~1.2.2: ethereumjs-util "^4.0.1" merkle-patricia-tree "^2.1.2" -"ethereumjs-testrpc-sc@https://github.com/sc-forks/testrpc-sc.git": +"ethereumjs-testrpc-sc@git+https://github.com/sc-forks/testrpc-sc.git": version "3.0.3" - resolved "https://github.com/sc-forks/testrpc-sc.git#15cc0fb8e031bee152c7b8e3f8df5f2ad33ca04f" + resolved "git+https://github.com/sc-forks/testrpc-sc.git#2b7cad404a2b82023d2c8f5656b34e3cc44f2d08" dependencies: async "~1.5.0" bignumber.js "~2.1.4" @@ -2058,7 +2058,7 @@ ethereumjs-block@~1.2.2: merkle-patricia-tree "~2.1.2" seedrandom "~2.4.2" shelljs "~0.6.0" - solc "0.4.6" + solc "0.4.8" temp "^0.8.3" tmp "0.0.31" web3 "~0.16.0" @@ -5702,18 +5702,19 @@ solc@0.4.11, solc@^0.4.2: semver "^5.3.0" yargs "^4.7.1" -solc@0.4.6: - version "0.4.6" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.6.tgz#afa929a1ceafc0252cfbb4217c8e2b1dab139db7" +solc@0.4.8: + version "0.4.8" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.8.tgz#96abbee1266341ae97fb4bdc3abcc9bc1b5052ab" dependencies: fs-extra "^0.30.0" memorystream "^0.3.1" require-from-string "^1.1.0" + semver "^5.3.0" yargs "^4.7.1" -solidity-coverage@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.1.0.tgz#e0f30319399dfe3a346f612e4f2a10361fe9e9c8" +solidity-coverage@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.1.7.tgz#dd83d0685fc3bb107355da3b7da2db576bbc7374" dependencies: commander "^2.9.0" ethereumjs-testrpc-sc "https://github.com/sc-forks/testrpc-sc.git" @@ -5723,9 +5724,9 @@ solidity-coverage@^0.1.0: req-cwd "^1.0.1" shelljs "^0.7.4" sol-explore "^1.6.2" - solidity-parser "0.3.0" + solidity-parser "git+https://github.com/sc-forks/solidity-parser.git" -solidity-parser@0.3.0, solidity-parser@^0.3.0: +solidity-parser@^0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/solidity-parser/-/solidity-parser-0.3.0.tgz#cab04f8e406bdc1f3c16512eec6aa87a1072f8b9" dependencies: @@ -5733,6 +5734,14 @@ solidity-parser@0.3.0, solidity-parser@^0.3.0: pegjs "^0.10.0" yargs "^4.6.0" +"solidity-parser@git+https://github.com/sc-forks/solidity-parser.git": + version "0.3.0" + resolved "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0" + dependencies: + mocha "^2.4.5" + pegjs "^0.10.0" + yargs "^4.6.0" + solidity-sha3@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/solidity-sha3/-/solidity-sha3-0.4.1.tgz#17577e93f6cfd58489c4ec7f2da3047530329ec1" @@ -5974,7 +5983,7 @@ supports-color@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" -supports-color@3.1.2: +supports-color@3.1.2, supports-color@^3.1.0: version "3.1.2" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: @@ -5984,12 +5993,6 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" -supports-color@^3.1.0: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - dependencies: - has-flag "^1.0.0" - table@^3.7.8: version "3.8.3" resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" From 6331dd125d8e8429480b2630f49781f3e1ed49cd Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Thu, 13 Jul 2017 12:05:45 -0300 Subject: [PATCH 045/160] fix ERC20 to conform to standard --- contracts/token/BasicToken.sol | 3 ++- contracts/token/ERC20.sol | 4 ++-- contracts/token/ERC20Basic.sol | 4 ++-- contracts/token/LimitedTransferToken.sol | 8 ++++---- contracts/token/PausableToken.sol | 8 ++++---- contracts/token/StandardToken.sol | 6 ++++-- 6 files changed, 18 insertions(+), 15 deletions(-) diff --git a/contracts/token/BasicToken.sol b/contracts/token/BasicToken.sol index 5618227a1..ef35a37a8 100644 --- a/contracts/token/BasicToken.sol +++ b/contracts/token/BasicToken.sol @@ -19,10 +19,11 @@ contract BasicToken is ERC20Basic { * @param _to The address to transfer to. * @param _value The amount to be transferred. */ - function transfer(address _to, uint256 _value) { + function transfer(address _to, uint256 _value) returns (bool) { balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); + return true; } /** diff --git a/contracts/token/ERC20.sol b/contracts/token/ERC20.sol index 1045ac357..9516ba82d 100644 --- a/contracts/token/ERC20.sol +++ b/contracts/token/ERC20.sol @@ -10,7 +10,7 @@ import './ERC20Basic.sol'; */ contract ERC20 is ERC20Basic { function allowance(address owner, address spender) constant returns (uint256); - function transferFrom(address from, address to, uint256 value); - function approve(address spender, uint256 value); + function transferFrom(address from, address to, uint256 value) returns (bool); + function approve(address spender, uint256 value) returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } diff --git a/contracts/token/ERC20Basic.sol b/contracts/token/ERC20Basic.sol index 0e98779e3..07ab02f0b 100644 --- a/contracts/token/ERC20Basic.sol +++ b/contracts/token/ERC20Basic.sol @@ -4,11 +4,11 @@ pragma solidity ^0.4.11; /** * @title ERC20Basic * @dev Simpler version of ERC20 interface - * @dev see https://github.com/ethereum/EIPs/issues/20 + * @dev see https://github.com/ethereum/EIPs/issues/179 */ contract ERC20Basic { uint256 public totalSupply; function balanceOf(address who) constant returns (uint256); - function transfer(address to, uint256 value); + function transfer(address to, uint256 value) returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } diff --git a/contracts/token/LimitedTransferToken.sol b/contracts/token/LimitedTransferToken.sol index ee5032c9b..427d09395 100644 --- a/contracts/token/LimitedTransferToken.sol +++ b/contracts/token/LimitedTransferToken.sol @@ -32,8 +32,8 @@ contract LimitedTransferToken is ERC20 { * @param _to The address that will recieve the tokens. * @param _value The amount of tokens to be transferred. */ - function transfer(address _to, uint256 _value) canTransfer(msg.sender, _value) { - super.transfer(_to, _value); + function transfer(address _to, uint256 _value) canTransfer(msg.sender, _value) returns (bool) { + return super.transfer(_to, _value); } /** @@ -42,8 +42,8 @@ contract LimitedTransferToken is ERC20 { * @param _to The address that will recieve the tokens. * @param _value The amount of tokens to be transferred. */ - function transferFrom(address _from, address _to, uint256 _value) canTransfer(_from, _value) { - super.transferFrom(_from, _to, _value); + function transferFrom(address _from, address _to, uint256 _value) canTransfer(_from, _value) returns (bool) { + return super.transferFrom(_from, _to, _value); } /** diff --git a/contracts/token/PausableToken.sol b/contracts/token/PausableToken.sol index 8ee114e1d..301b04f37 100644 --- a/contracts/token/PausableToken.sol +++ b/contracts/token/PausableToken.sol @@ -11,11 +11,11 @@ import '../lifecycle/Pausable.sol'; contract PausableToken is StandardToken, Pausable { - function transfer(address _to, uint _value) whenNotPaused { - super.transfer(_to, _value); + function transfer(address _to, uint _value) whenNotPaused returns (bool) { + return super.transfer(_to, _value); } - function transferFrom(address _from, address _to, uint _value) whenNotPaused { - super.transferFrom(_from, _to, _value); + function transferFrom(address _from, address _to, uint _value) whenNotPaused returns (bool) { + return super.transferFrom(_from, _to, _value); } } diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index b1b49fe3b..8cec77781 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -23,7 +23,7 @@ contract StandardToken is ERC20, BasicToken { * @param _to address The address which you want to transfer to * @param _value uint256 the amout of tokens to be transfered */ - function transferFrom(address _from, address _to, uint256 _value) { + function transferFrom(address _from, address _to, uint256 _value) returns (bool) { var _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met @@ -33,6 +33,7 @@ contract StandardToken is ERC20, BasicToken { balances[_from] = balances[_from].sub(_value); allowed[_from][msg.sender] = _allowance.sub(_value); Transfer(_from, _to, _value); + return true; } /** @@ -40,7 +41,7 @@ contract StandardToken is ERC20, BasicToken { * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ - function approve(address _spender, uint256 _value) { + function approve(address _spender, uint256 _value) returns (bool) { // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender, 0)` if it is not @@ -50,6 +51,7 @@ contract StandardToken is ERC20, BasicToken { allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); + return true; } /** From a56bcbf8fdb35db611de1669be143d0d0a24ecd1 Mon Sep 17 00:00:00 2001 From: Adam Dossa Date: Thu, 13 Jul 2017 22:52:18 +0100 Subject: [PATCH 046/160] Correctly call super.transferableTokens Fix #307 --- contracts/token/VestedToken.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index b7748b09e..08c84482f 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -109,7 +109,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { function transferableTokens(address holder, uint64 time) constant public returns (uint256) { uint256 grantIndex = tokenGrantsCount(holder); - if (grantIndex == 0) return balanceOf(holder); // shortcut for holder without grants + if (grantIndex == 0) return super.transferableTokens(holder, time); // shortcut for holder without grants // Iterate through all the grants the holder has, and add all non-vested tokens uint256 nonVested = 0; @@ -226,7 +226,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @dev Calculate the amount of non vested tokens at a specific time. * @param grant TokenGrant The grant to be checked. * @param time uint64 The time to be checked - * @return An uint256 representing the amount of non vested tokens of a specifc grant on the + * @return An uint256 representing the amount of non vested tokens of a specifc grant on the * passed time frame. */ function nonVestedTokens(TokenGrant grant, uint64 time) private constant returns (uint256) { From 353285e5d96477b4abb86f7cde9187e84ed251ac Mon Sep 17 00:00:00 2001 From: Joseph Krug Date: Sat, 15 Jul 2017 11:37:35 -0700 Subject: [PATCH 047/160] Added Constant to SafeMath functions as they don't modify storage --- contracts/math/SafeMath.sol | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/math/SafeMath.sol b/contracts/math/SafeMath.sol index dc05ba280..47b7db51b 100644 --- a/contracts/math/SafeMath.sol +++ b/contracts/math/SafeMath.sol @@ -6,25 +6,25 @@ pragma solidity ^0.4.11; * @dev Math operations with safety checks that throw on error */ library SafeMath { - function mul(uint256 a, uint256 b) internal returns (uint256) { + function mul(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a * b; assert(a == 0 || c / a == b); return c; } - function div(uint256 a, uint256 b) internal returns (uint256) { + function div(uint256 a, uint256 b) internal constant returns (uint256) { // assert(b > 0); // Solidity automatically throws when dividing by 0 uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } - function sub(uint256 a, uint256 b) internal returns (uint256) { + function sub(uint256 a, uint256 b) internal constant returns (uint256) { assert(b <= a); return a - b; } - function add(uint256 a, uint256 b) internal returns (uint256) { + function add(uint256 a, uint256 b) internal constant returns (uint256) { uint256 c = a + b; assert(c >= a); return c; From 18581f138fb5afba36d598bd559e5261164ddd2b Mon Sep 17 00:00:00 2001 From: Peter Murray Date: Sun, 9 Jul 2017 13:57:43 -0400 Subject: [PATCH 048/160] converted if() throw convention to require()/assert()/revert() --- contracts/Bounty.sol | 22 ++++++--------- contracts/DayLimit.sol | 4 +-- contracts/LimitBalance.sol | 6 ++-- contracts/MultisigWallet.sol | 36 +++++++++++------------- contracts/ReentrancyGuard.sol | 13 ++++----- contracts/lifecycle/Pausable.sol | 4 +-- contracts/ownership/Claimable.sol | 12 ++++---- contracts/ownership/DelayedClaimable.sol | 16 +++++------ contracts/ownership/HasNoEther.sol | 16 ++++------- contracts/ownership/HasNoTokens.sol | 6 ++-- contracts/ownership/Ownable.sol | 14 ++++----- contracts/ownership/Shareable.sol | 24 ++++++---------- contracts/payment/PullPayment.sol | 13 ++------- contracts/token/LimitedTransferToken.sol | 12 ++++---- contracts/token/MintableToken.sol | 2 +- contracts/token/StandardToken.sol | 4 +-- contracts/token/VestedToken.sol | 15 +++------- 17 files changed, 87 insertions(+), 132 deletions(-) diff --git a/contracts/Bounty.sol b/contracts/Bounty.sol index 4425b7a54..7648d729f 100644 --- a/contracts/Bounty.sol +++ b/contracts/Bounty.sol @@ -19,13 +19,11 @@ contract Bounty is PullPayment, Destructible { * @dev Fallback function allowing the contract to recieve funds, if they haven't already been claimed. */ function() payable { - if (claimed) { - throw; - } + require(!claimed); } /** - * @dev Create and deploy the target contract (extension of Target contract), and sets the + * @dev Create and deploy the target contract (extension of Target contract), and sets the * msg.sender as a researcher * @return A target contract */ @@ -48,13 +46,9 @@ contract Bounty is PullPayment, Destructible { */ function claim(Target target) { address researcher = researchers[target]; - if (researcher == 0) { - throw; - } + require(researcher != 0); // Check Target contract invariants - if (target.checkInvariant()) { - throw; - } + require(!target.checkInvariant()); asyncSend(researcher, this.balance); claimed = true; } @@ -69,10 +63,10 @@ contract Bounty is PullPayment, Destructible { contract Target { /** - * @dev Checks all values a contract assumes to be true all the time. If this function returns - * false, the contract is broken in some way and is in an inconsistent state. - * In order to win the bounty, security researchers will try to cause this broken state. - * @return True if all invariant values are correct, false otherwise. + * @dev Checks all values a contract assumes to be true all the time. If this function returns + * false, the contract is broken in some way and is in an inconsistent state. + * In order to win the bounty, security researchers will try to cause this broken state. + * @return True if all invariant values are correct, false otherwise. */ function checkInvariant() returns(bool); } diff --git a/contracts/DayLimit.sol b/contracts/DayLimit.sol index 3c8d5b0ce..bbadcaabd 100644 --- a/contracts/DayLimit.sol +++ b/contracts/DayLimit.sol @@ -67,9 +67,7 @@ contract DayLimit { * @dev Simple modifier for daily limit. */ modifier limitedDaily(uint256 _value) { - if (!underLimit(_value)) { - throw; - } + require(underLimit(_value)); _; } } diff --git a/contracts/LimitBalance.sol b/contracts/LimitBalance.sol index 57477c749..32ec46d1f 100644 --- a/contracts/LimitBalance.sol +++ b/contracts/LimitBalance.sol @@ -12,7 +12,7 @@ contract LimitBalance { uint256 public limit; /** - * @dev Constructor that sets the passed value as a limit. + * @dev Constructor that sets the passed value as a limit. * @param _limit uint256 to represent the limit. */ function LimitBalance(uint256 _limit) { @@ -23,9 +23,7 @@ contract LimitBalance { * @dev Checks if limit was reached. Case true, it throws. */ modifier limitedPayable() { - if (this.balance > limit) { - throw; - } + require(this.balance <= limit); _; } diff --git a/contracts/MultisigWallet.sol b/contracts/MultisigWallet.sol index 939e70f2c..129164d0e 100644 --- a/contracts/MultisigWallet.sol +++ b/contracts/MultisigWallet.sol @@ -25,19 +25,19 @@ contract MultisigWallet is Multisig, Shareable, DayLimit { * @param _owners A list of owners. * @param _required The amount required for a transaction to be approved. */ - function MultisigWallet(address[] _owners, uint256 _required, uint256 _daylimit) - Shareable(_owners, _required) + function MultisigWallet(address[] _owners, uint256 _required, uint256 _daylimit) + Shareable(_owners, _required) DayLimit(_daylimit) { } - /** - * @dev destroys the contract sending everything to `_to`. + /** + * @dev destroys the contract sending everything to `_to`. */ function destroy(address _to) onlymanyowners(keccak256(msg.data)) external { selfdestruct(_to); } - /** - * @dev Fallback function, receives value and emits a deposit event. + /** + * @dev Fallback function, receives value and emits a deposit event. */ function() payable { // just being sent some cash? @@ -46,10 +46,10 @@ contract MultisigWallet is Multisig, Shareable, DayLimit { } /** - * @dev Outside-visible transaction entry point. Executes transaction immediately if below daily - * spending limit. If not, goes into multisig process. We provide a hash on return to allow the - * sender to provide shortcuts for the other confirmations (allowing them to avoid replicating - * the _to, _value, and _data arguments). They still get the option of using them if they want, + * @dev Outside-visible transaction entry point. Executes transaction immediately if below daily + * spending limit. If not, goes into multisig process. We provide a hash on return to allow the + * sender to provide shortcuts for the other confirmations (allowing them to avoid replicating + * the _to, _value, and _data arguments). They still get the option of using them if they want, * anyways. * @param _to The receiver address * @param _value The value to send @@ -61,7 +61,7 @@ contract MultisigWallet is Multisig, Shareable, DayLimit { SingleTransact(msg.sender, _value, _to, _data); // yes - just execute the call. if (!_to.call.value(_value)(_data)) { - throw; + revert(); } return 0; } @@ -76,30 +76,28 @@ contract MultisigWallet is Multisig, Shareable, DayLimit { } /** - * @dev Confirm a transaction by providing just the hash. We use the previous transactions map, + * @dev Confirm a transaction by providing just the hash. We use the previous transactions map, * txs, in order to determine the body of the transaction from the hash provided. * @param _h The transaction hash to approve. */ function confirm(bytes32 _h) onlymanyowners(_h) returns (bool) { if (txs[_h].to != 0) { - if (!txs[_h].to.call.value(txs[_h].value)(txs[_h].data)) { - throw; - } + assert(txs[_h].to.call.value(txs[_h].value)(txs[_h].data)); MultiTransact(msg.sender, _h, txs[_h].value, txs[_h].to, txs[_h].data); delete txs[_h]; return true; } } - /** - * @dev Updates the daily limit value. + /** + * @dev Updates the daily limit value. * @param _newLimit uint256 to represent the new limit. */ function setDailyLimit(uint256 _newLimit) onlymanyowners(keccak256(msg.data)) external { _setDailyLimit(_newLimit); } - /** + /** * @dev Resets the value spent to enable more spending */ function resetSpentToday() onlymanyowners(keccak256(msg.data)) external { @@ -108,7 +106,7 @@ contract MultisigWallet is Multisig, Shareable, DayLimit { // INTERNAL METHODS - /** + /** * @dev Clears the list of transactions pending approval. */ function clearPending() internal { diff --git a/contracts/ReentrancyGuard.sol b/contracts/ReentrancyGuard.sol index ca8b643bc..fa9e7d52e 100644 --- a/contracts/ReentrancyGuard.sol +++ b/contracts/ReentrancyGuard.sol @@ -9,7 +9,7 @@ pragma solidity ^0.4.11; contract ReentrancyGuard { /** - * @dev We use a single lock for the whole contract. + * @dev We use a single lock for the whole contract. */ bool private rentrancy_lock = false; @@ -22,13 +22,10 @@ contract ReentrancyGuard { * wrapper marked as `nonReentrant`. */ modifier nonReentrant() { - if(rentrancy_lock == false) { - rentrancy_lock = true; - _; - rentrancy_lock = false; - } else { - throw; - } + require(!rentrancy_lock); + rentrancy_lock = true; + _; + rentrancy_lock = false; } } diff --git a/contracts/lifecycle/Pausable.sol b/contracts/lifecycle/Pausable.sol index b14f87678..9f2e719cd 100644 --- a/contracts/lifecycle/Pausable.sol +++ b/contracts/lifecycle/Pausable.sol @@ -19,7 +19,7 @@ contract Pausable is Ownable { * @dev modifier to allow actions only when the contract IS paused */ modifier whenNotPaused() { - if (paused) throw; + require(!paused); _; } @@ -27,7 +27,7 @@ contract Pausable is Ownable { * @dev modifier to allow actions only when the contract IS NOT paused */ modifier whenPaused { - if (!paused) throw; + require(paused); _; } diff --git a/contracts/ownership/Claimable.sol b/contracts/ownership/Claimable.sol index d063502d1..59c2158a2 100644 --- a/contracts/ownership/Claimable.sol +++ b/contracts/ownership/Claimable.sol @@ -6,25 +6,23 @@ import './Ownable.sol'; /** * @title Claimable - * @dev Extension for the Ownable contract, where the ownership needs to be claimed. + * @dev Extension for the Ownable contract, where the ownership needs to be claimed. * This allows the new owner to accept the transfer. */ contract Claimable is Ownable { address public pendingOwner; /** - * @dev Modifier throws if called by any account other than the pendingOwner. + * @dev Modifier throws if called by any account other than the pendingOwner. */ modifier onlyPendingOwner() { - if (msg.sender != pendingOwner) { - throw; - } + require(msg.sender == pendingOwner); _; } /** - * @dev Allows the current owner to set the pendingOwner address. - * @param newOwner The address to transfer ownership to. + * @dev Allows the current owner to set the pendingOwner address. + * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner { pendingOwner = newOwner; diff --git a/contracts/ownership/DelayedClaimable.sol b/contracts/ownership/DelayedClaimable.sol index f5fee6146..f83ed5046 100644 --- a/contracts/ownership/DelayedClaimable.sol +++ b/contracts/ownership/DelayedClaimable.sol @@ -15,26 +15,24 @@ contract DelayedClaimable is Claimable { uint256 public start; /** - * @dev Used to specify the time period during which a pending - * owner can claim ownership. + * @dev Used to specify the time period during which a pending + * owner can claim ownership. * @param _start The earliest time ownership can be claimed. - * @param _end The latest time ownership can be claimed. + * @param _end The latest time ownership can be claimed. */ function setLimits(uint256 _start, uint256 _end) onlyOwner { - if (_start > _end) - throw; + require(_start <= _end); end = _end; start = _start; } /** - * @dev Allows the pendingOwner address to finalize the transfer, as long as it is called within - * the specified start and end time. + * @dev Allows the pendingOwner address to finalize the transfer, as long as it is called within + * the specified start and end time. */ function claimOwnership() onlyPendingOwner { - if ((block.number > end) || (block.number < start)) - throw; + require((block.number <= end) && (block.number >= start)); owner = pendingOwner; pendingOwner = 0x0; end = 0; diff --git a/contracts/ownership/HasNoEther.sol b/contracts/ownership/HasNoEther.sol index 2bcaf1b83..63b4ef65c 100644 --- a/contracts/ownership/HasNoEther.sol +++ b/contracts/ownership/HasNoEther.sol @@ -2,7 +2,7 @@ pragma solidity ^0.4.11; import "./Ownable.sol"; -/** +/** * @title Contracts that should not own Ether * @author Remco Bloemen * @dev This tries to block incoming ether to prevent accidental loss of Ether. Should Ether end up @@ -16,15 +16,13 @@ contract HasNoEther is Ownable { /** * @dev Constructor that rejects incoming Ether - * @dev The `payable` flag is added so we can access `msg.value` without compiler warning. If we - * leave out payable, then Solidity will allow inheriting contracts to implement a payable - * constructor. By doing it this way we prevent a payable constructor from working. Alternatively + * @dev The `payable` flag is added so we can access `msg.value` without compiler warning. If we + * leave out payable, then Solidity will allow inheriting contracts to implement a payable + * constructor. By doing it this way we prevent a payable constructor from working. Alternatively * we could use assembly to access msg.value. */ function HasNoEther() payable { - if(msg.value > 0) { - throw; - } + require(msg.value == 0); } /** @@ -37,8 +35,6 @@ contract HasNoEther is Ownable { * @dev Transfer all Ether held by the contract to the owner. */ function reclaimEther() external onlyOwner { - if(!owner.send(this.balance)) { - throw; - } + assert(owner.send(this.balance)); } } diff --git a/contracts/ownership/HasNoTokens.sol b/contracts/ownership/HasNoTokens.sol index d1dc4b3e9..85c209e76 100644 --- a/contracts/ownership/HasNoTokens.sol +++ b/contracts/ownership/HasNoTokens.sol @@ -3,7 +3,7 @@ pragma solidity ^0.4.11; import "./Ownable.sol"; import "../token/ERC20Basic.sol"; -/** +/** * @title Contracts that should not own Tokens * @author Remco Bloemen * @dev This blocks incoming ERC23 tokens to prevent accidental loss of tokens. @@ -12,14 +12,14 @@ import "../token/ERC20Basic.sol"; */ contract HasNoTokens is Ownable { - /** + /** * @dev Reject all ERC23 compatible tokens * @param from_ address The address that is transferring the tokens * @param value_ uint256 the amount of the specified token * @param data_ Bytes The data passed from the caller. */ function tokenFallback(address from_, uint256 value_, bytes data_) external { - throw; + revert(); } /** diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index f16284540..d6366479f 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -3,14 +3,14 @@ pragma solidity ^0.4.11; /** * @title Ownable - * @dev The Ownable contract has an owner address, and provides basic authorization control - * functions, this simplifies the implementation of "user permissions". + * @dev The Ownable contract has an owner address, and provides basic authorization control + * functions, this simplifies the implementation of "user permissions". */ contract Ownable { address public owner; - /** + /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. */ @@ -20,19 +20,17 @@ contract Ownable { /** - * @dev Throws if called by any account other than the owner. + * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { - if (msg.sender != owner) { - throw; - } + require(msg.sender == owner); _; } /** * @dev Allows the current owner to transfer control of the contract to a newOwner. - * @param newOwner The address to transfer ownership to. + * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner { if (newOwner != address(0)) { diff --git a/contracts/ownership/Shareable.sol b/contracts/ownership/Shareable.sol index 9fdaccfd5..899b8f31f 100644 --- a/contracts/ownership/Shareable.sol +++ b/contracts/ownership/Shareable.sol @@ -3,7 +3,7 @@ pragma solidity ^0.4.11; /** * @title Shareable - * @dev inheritable "property" contract that enables methods to be protected by requiring the + * @dev inheritable "property" contract that enables methods to be protected by requiring the * acquiescence of either a single, or, crucially, each of a number of, designated owners. * @dev Usage: use modifiers onlyowner (just own owned) or onlymanyowners(hash), whereby the same hash must be provided by some number (specified in constructor) of the set of owners (specified in the constructor) before the interior is executed. */ @@ -36,14 +36,12 @@ contract Shareable { // simple single-sig function modifier. modifier onlyOwner { - if (!isOwner(msg.sender)) { - throw; - } + require(isOwner(msg.sender)); _; } - - /** - * @dev Modifier for multisig functions. + + /** + * @dev Modifier for multisig functions. * @param _operation The operation must have an intrinsic hash in order that later attempts can be * realised as the same underlying operation and thus count as confirmations. */ @@ -53,8 +51,8 @@ contract Shareable { } } - /** - * @dev Constructor is given the number of sigs required to do protected "onlymanyowners" + /** + * @dev Constructor is given the number of sigs required to do protected "onlymanyowners" * transactions as well as the selection of addresses capable of confirming them. * @param _owners A list of owners. * @param _required The amount required for a transaction to be approved. @@ -67,9 +65,7 @@ contract Shareable { ownerIndex[_owners[i]] = 2 + i; } required = _required; - if (required > owners.length) { - throw; - } + require(required <= owners.length); } /** @@ -138,9 +134,7 @@ contract Shareable { // determine what index the present sender is: uint256 index = ownerIndex[msg.sender]; // make sure they're an owner - if (index == 0) { - throw; - } + require(index != 0); var pending = pendings[_operation]; // if we're not yet working on this operation, switch over and reset the confirmation status. diff --git a/contracts/payment/PullPayment.sol b/contracts/payment/PullPayment.sol index ba710b531..d85f0a576 100644 --- a/contracts/payment/PullPayment.sol +++ b/contracts/payment/PullPayment.sol @@ -32,19 +32,12 @@ contract PullPayment { address payee = msg.sender; uint256 payment = payments[payee]; - if (payment == 0) { - throw; - } - - if (this.balance < payment) { - throw; - } + require(payment != 0); + require(this.balance >= payment); totalPayments = totalPayments.sub(payment); payments[payee] = 0; - if (!payee.send(payment)) { - throw; - } + assert(payee.send(payment)); } } diff --git a/contracts/token/LimitedTransferToken.sol b/contracts/token/LimitedTransferToken.sol index 427d09395..c08976b80 100644 --- a/contracts/token/LimitedTransferToken.sol +++ b/contracts/token/LimitedTransferToken.sol @@ -4,11 +4,11 @@ import "./ERC20.sol"; /** * @title LimitedTransferToken - * @dev LimitedTransferToken defines the generic interface and the implementation to limit token - * transferability for different events. It is intended to be used as a base class for other token - * contracts. + * @dev LimitedTransferToken defines the generic interface and the implementation to limit token + * transferability for different events. It is intended to be used as a base class for other token + * contracts. * LimitedTransferToken has been designed to allow for different limiting factors, - * this can be achieved by recursively calling super.transferableTokens() until the base class is + * this can be achieved by recursively calling super.transferableTokens() until the base class is * hit. For example: * function transferableTokens(address holder, uint64 time) constant public returns (uint256) { * return min256(unlockedTokens, super.transferableTokens(holder, time)); @@ -23,7 +23,7 @@ contract LimitedTransferToken is ERC20 { * @dev Checks whether it can transfer or otherwise throws. */ modifier canTransfer(address _sender, uint256 _value) { - if (_value > transferableTokens(_sender, uint64(now))) throw; + require(_value <= transferableTokens(_sender, uint64(now))); _; } @@ -48,7 +48,7 @@ contract LimitedTransferToken is ERC20 { /** * @dev Default transferable tokens function returns all tokens for a holder (no limit). - * @dev Overwriting transferableTokens(address holder, uint64 time) is the way to provide the + * @dev Overwriting transferableTokens(address holder, uint64 time) is the way to provide the * specific logic for limiting token transferability for a holder over time. */ function transferableTokens(address holder, uint64 time) constant public returns (uint256) { diff --git a/contracts/token/MintableToken.sol b/contracts/token/MintableToken.sol index 505d13c33..e2854d56a 100644 --- a/contracts/token/MintableToken.sol +++ b/contracts/token/MintableToken.sol @@ -21,7 +21,7 @@ contract MintableToken is StandardToken, Ownable { modifier canMint() { - if(mintingFinished) throw; + require(!mintingFinished); _; } diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 8cec77781..3a488f1e4 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -27,7 +27,7 @@ contract StandardToken is ERC20, BasicToken { var _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met - // if (_value > _allowance) throw; + // require (_value <= _allowance); balances[_to] = balances[_to].add(_value); balances[_from] = balances[_from].sub(_value); @@ -47,7 +47,7 @@ contract StandardToken is ERC20, BasicToken { // allowance to zero by calling `approve(_spender, 0)` if it is not // already 0 to mitigate the race condition described here: // https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 - if ((_value != 0) && (allowed[msg.sender][_spender] != 0)) throw; + require((_value == 0) || (allowed[msg.sender][_spender] == 0)); allowed[msg.sender][_spender] = _value; Approval(msg.sender, _spender, _value); diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index 08c84482f..82ca9875b 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -45,11 +45,9 @@ contract VestedToken is StandardToken, LimitedTransferToken { ) public { // Check for date inconsistencies that may cause unexpected behavior - if (_cliff < _start || _vesting < _cliff) { - throw; - } + require(_cliff >= _start && _vesting >= _cliff); - if (tokenGrantsCount(_to) > MAX_GRANTS_PER_ADDRESS) throw; // To prevent a user being spammed and have his balance locked (out of gas attack when calculating vesting). + require(tokenGrantsCount(_to) <= MAX_GRANTS_PER_ADDRESS); // To prevent a user being spammed and have his balance locked (out of gas attack when calculating vesting). uint256 count = grants[_to].push( TokenGrant( @@ -76,13 +74,8 @@ contract VestedToken is StandardToken, LimitedTransferToken { function revokeTokenGrant(address _holder, uint256 _grantId) public { TokenGrant grant = grants[_holder][_grantId]; - if (!grant.revokable) { // Check if grant was revokable - throw; - } - - if (grant.granter != msg.sender) { // Only granter can revoke it - throw; - } + require(grant.revokable); + require(grant.granter == msg.sender); // Only granter can revoke it address receiver = grant.burnsOnRevoke ? 0xdead : msg.sender; From b8884687dfa4feccea3d26eec189fca7453dbc27 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sat, 15 Jul 2017 02:44:33 -0300 Subject: [PATCH 049/160] fix off by one error in VestedToken --- contracts/token/VestedToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index 82ca9875b..5a3087723 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -47,7 +47,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { // Check for date inconsistencies that may cause unexpected behavior require(_cliff >= _start && _vesting >= _cliff); - require(tokenGrantsCount(_to) <= MAX_GRANTS_PER_ADDRESS); // To prevent a user being spammed and have his balance locked (out of gas attack when calculating vesting). + require(tokenGrantsCount(_to) < MAX_GRANTS_PER_ADDRESS); // To prevent a user being spammed and have his balance locked (out of gas attack when calculating vesting). uint256 count = grants[_to].push( TokenGrant( From 6035bd522b72111acf343e9b03a4dbf513877683 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Fri, 14 Jul 2017 15:21:01 +0100 Subject: [PATCH 050/160] simplify crowdsale weiRaised update --- contracts/crowdsale/Crowdsale.sol | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index bee1efd2e..eb9e2c99c 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -70,17 +70,14 @@ contract Crowdsale { require(beneficiary != 0x0); require(validPurchase()); - uint256 weiAmount = msg.value; - uint256 updatedWeiRaised = weiRaised.add(weiAmount); - // calculate token amount to be created - uint256 tokens = weiAmount.mul(rate); + uint256 tokens = msg.value.mul(rate); // update state - weiRaised = updatedWeiRaised; + weiRaised = weiRaised.add(msg.value); token.mint(beneficiary, tokens); - TokenPurchase(msg.sender, beneficiary, weiAmount, tokens); + TokenPurchase(msg.sender, beneficiary, msg.value, tokens); forwardFunds(); } From db40fd314a1085471c5c5a74a0b2b2603d072f9a Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Fri, 14 Jul 2017 16:06:09 +0100 Subject: [PATCH 051/160] sanity check for CappedCrowdsale: cap > 0 --- contracts/crowdsale/CappedCrowdsale.sol | 1 + test/CappedCrowdsale.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/contracts/crowdsale/CappedCrowdsale.sol b/contracts/crowdsale/CappedCrowdsale.sol index f04649f36..f4f864e93 100644 --- a/contracts/crowdsale/CappedCrowdsale.sol +++ b/contracts/crowdsale/CappedCrowdsale.sol @@ -13,6 +13,7 @@ contract CappedCrowdsale is Crowdsale { uint256 public cap; function CappedCrowdsale(uint256 _cap) { + require(_cap > 0); cap = _cap; } diff --git a/test/CappedCrowdsale.js b/test/CappedCrowdsale.js index 0a24800b4..753da5c18 100644 --- a/test/CappedCrowdsale.js +++ b/test/CappedCrowdsale.js @@ -19,6 +19,15 @@ contract('CappedCrowdsale', function ([_, wallet]) { const cap = ether(300) const lessThanCap = ether(60) + describe('creating a valid crowdsale', function () { + + it('should fail with zero cap', async function () { + await CappedCrowdsale.new(this.startBlock, this.endBlock, rate, wallet, 0).should.be.rejectedWith(EVMThrow); + }) + + }); + + beforeEach(async function () { this.startBlock = web3.eth.blockNumber + 10 this.endBlock = web3.eth.blockNumber + 20 From 950b6a5e568310380a8a4aaafd4edf9339a63658 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Fri, 14 Jul 2017 16:14:56 +0100 Subject: [PATCH 052/160] sanity check for RefundableCrowdsale: goal > 0 --- contracts/crowdsale/RefundableCrowdsale.sol | 1 + test/RefundableCrowdsale.js | 9 +++++++++ 2 files changed, 10 insertions(+) diff --git a/contracts/crowdsale/RefundableCrowdsale.sol b/contracts/crowdsale/RefundableCrowdsale.sol index f45df1d33..f5b44cda4 100644 --- a/contracts/crowdsale/RefundableCrowdsale.sol +++ b/contracts/crowdsale/RefundableCrowdsale.sol @@ -22,6 +22,7 @@ contract RefundableCrowdsale is FinalizableCrowdsale { RefundVault public vault; function RefundableCrowdsale(uint256 _goal) { + require(_goal > 0); vault = new RefundVault(wallet); goal = _goal; } diff --git a/test/RefundableCrowdsale.js b/test/RefundableCrowdsale.js index 76f2e22c3..f1d6fda68 100644 --- a/test/RefundableCrowdsale.js +++ b/test/RefundableCrowdsale.js @@ -17,6 +17,15 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { const goal = ether(800) const lessThanGoal = ether(750) + describe('creating a valid crowdsale', function () { + + it('should fail with zero goal', async function () { + await RefundableCrowdsale.new(this.startBlock, this.endBlock, rate, wallet, 0, {from: owner}).should.be.rejectedWith(EVMThrow); + }) + + }); + + beforeEach(async function () { this.startBlock = web3.eth.blockNumber + 10 this.endBlock = web3.eth.blockNumber + 20 From 67d3a759a77f22116d8bf9c908ba856fa1fae5d4 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Mon, 17 Jul 2017 12:07:46 +0100 Subject: [PATCH 053/160] leave weiAmount after PR comments --- contracts/crowdsale/Crowdsale.sol | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index eb9e2c99c..4c1e526ff 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -70,14 +70,16 @@ contract Crowdsale { require(beneficiary != 0x0); require(validPurchase()); + uint256 weiAmount = msg.value; + // calculate token amount to be created - uint256 tokens = msg.value.mul(rate); + uint256 tokens = weiAmount.mul(rate); // update state - weiRaised = weiRaised.add(msg.value); + weiRaised = weiRaised.add(weiAmount); token.mint(beneficiary, tokens); - TokenPurchase(msg.sender, beneficiary, msg.value, tokens); + TokenPurchase(msg.sender, beneficiary, weiAmount, tokens); forwardFunds(); } From 91fc295a420a40379e0c00e4f3a5fd043a929dbc Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Tue, 11 Jul 2017 10:32:16 -0500 Subject: [PATCH 054/160] Updated reference to Ownable contract. --- docs/source/getting-started.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/getting-started.rst b/docs/source/getting-started.rst index 4419fa34b..9b8de0a11 100644 --- a/docs/source/getting-started.rst +++ b/docs/source/getting-started.rst @@ -13,7 +13,7 @@ To install the Zeppelin library, run:: After that, you'll get all the library's contracts in the contracts/zeppelin folder. You can use the contracts in the library like so:: - import "./zeppelin/Ownable.sol"; + import "zeppelin-solidty/contracts/Ownable.sol"; contract MyContract is Ownable { ... From 4f34d4152320ddb2d96b22062750c35fba82145b Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Tue, 11 Jul 2017 10:48:55 -0500 Subject: [PATCH 055/160] Fixing typo. --- docs/source/getting-started.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/getting-started.rst b/docs/source/getting-started.rst index 9b8de0a11..6f84f870a 100644 --- a/docs/source/getting-started.rst +++ b/docs/source/getting-started.rst @@ -13,7 +13,7 @@ To install the Zeppelin library, run:: After that, you'll get all the library's contracts in the contracts/zeppelin folder. You can use the contracts in the library like so:: - import "zeppelin-solidty/contracts/Ownable.sol"; + import "zeppelin-solidity/contracts/Ownable.sol"; contract MyContract is Ownable { ... From b05fb9c200d9d1aff9c432f646731260465bdeee Mon Sep 17 00:00:00 2001 From: Mauro Velazquez Date: Mon, 17 Jul 2017 21:02:00 -0300 Subject: [PATCH 056/160] Update ownable.rst Change the name of the function in the docs to the actual name in the contract source To prevent misunderstandings. --- docs/source/ownable.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/ownable.rst b/docs/source/ownable.rst index 43a088517..30daaab61 100644 --- a/docs/source/ownable.rst +++ b/docs/source/ownable.rst @@ -11,6 +11,6 @@ modifier onlyOwner( ) """""""""""""""""""""""""""""""""""""" Prevents function from running if it is called by anyone other than the owner. -transfer(address newOwner) onlyOwner +transferOwnership(address newOwner) onlyOwner """""""""""""""""""""""""""""""""""""" -Transfers ownership of the contract to the passed address. \ No newline at end of file +Transfers ownership of the contract to the passed address. From 4201d50dcfc0c21cf1999fed975292dabccfb242 Mon Sep 17 00:00:00 2001 From: Augusto Date: Wed, 14 Jun 2017 15:57:35 -0300 Subject: [PATCH 057/160] ECRecovery library added with test and docs --- contracts/ECRecovery.sol | 68 +++++++++++++++++++++++++++++++++ docs/source/ecrecovery.rst | 14 +++++++ test/ECRecovery.js | 51 +++++++++++++++++++++++++ test/helpers/ECRecoveryMock.sol | 20 ++++++++++ 4 files changed, 153 insertions(+) create mode 100644 contracts/ECRecovery.sol create mode 100644 docs/source/ecrecovery.rst create mode 100644 test/ECRecovery.js create mode 100644 test/helpers/ECRecoveryMock.sol diff --git a/contracts/ECRecovery.sol b/contracts/ECRecovery.sol new file mode 100644 index 000000000..2e846fc11 --- /dev/null +++ b/contracts/ECRecovery.sol @@ -0,0 +1,68 @@ +pragma solidity ^0.4.11; + + +/** + * Eliptic curve signature operations + * Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d + */ +library ECRecovery { + + // Duplicate Solidity's ecrecover, but catching the CALL return value + function safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal returns (bool, address) { + // We do our own memory management here. Solidity uses memory offset + // 0x40 to store the current end of memory. We write past it (as + // writes are memory extensions), but don't update the offset so + // Solidity will reuse it. The memory used here is only needed for + // this context. + + bool ret; + address addr; + + assembly { + let size := mload(0x40) + mstore(size, hash) + mstore(add(size, 32), v) + mstore(add(size, 64), r) + mstore(add(size, 96), s) + + // NOTE: we can reuse the request memory because we deal with + // the return code + ret := call(3000, 1, 0, size, 128, size, 32) + addr := mload(size) + } + + return (ret, addr); + } + + function recover(bytes32 hash, bytes sig) internal returns (address) { + bytes32 r; + bytes32 s; + uint8 v; + + if (sig.length != 65) + return (address(0)); + + assembly { + r := mload(add(sig, 32)) + s := mload(add(sig, 64)) + v := byte(0, mload(add(sig, 96))) + } + + // albeit non-transactional signatures are not specified by the YP, one would expect it + // to match the YP range of [27, 28] + // + // geth uses [0, 1] and some clients have followed. This might change, see: + // https://github.com/ethereum/go-ethereum/issues/2053 + if (v < 27) + v += 27; + + if (v != 27 && v != 28) + return (address(0)); + + bool ret; + address addr; + (ret, addr) = safeRecover(hash, v, r, s); + return addr; + } + +} diff --git a/docs/source/ecrecovery.rst b/docs/source/ecrecovery.rst new file mode 100644 index 000000000..0e96819c9 --- /dev/null +++ b/docs/source/ecrecovery.rst @@ -0,0 +1,14 @@ +ECReovery +============================================= + +Recover the signer address of messages using elliptic curve signatures. + +safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal returns (bool, address) +""""""""""""""""""""""""""""""""""""""""""""""""" + +Returns the signer of the the hash using the signature divided in v, r, and s values. + +recover(bytes32 hash, bytes sig) internal returns (address) +""""""""""""""""""""""""""""""""""""""""""""""""" + +Returns the signer of the the hash using the signature that provides the web3.sign() method. diff --git a/test/ECRecovery.js b/test/ECRecovery.js new file mode 100644 index 000000000..d412e2085 --- /dev/null +++ b/test/ECRecovery.js @@ -0,0 +1,51 @@ +var ECRecoveryMock = artifacts.require("./helpers/ECRecoveryMock.sol"); + +contract('ECRecovery', function(accounts) { + + let ecrecovery; + + before(async function() { + ecrecovery = await ECRecoveryMock.new(); + }); + + it("recover v0", async function() { + let signer = '0x2cc1166f6212628a0deef2b33befb2187d35b86c'; + let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') + let signature = '0x5d99b6f7f6d1f73d1a26497f2b1c89b24c0993913f86e9a2d02cd69887d9c94f3c880358579d811b21dd1b7fd9bb01c1d81d10e69f0384e675c32b39643be89200'; + await ecrecovery.recover(message, signature); + assert.equal(signer, await ecrecovery.signer()); + }); + + it("recover v1", async function() { + let signer = '0x1e318623ab09fe6de3c9b8672098464aeda9100e'; + let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') + let signature = '0x331fe75a821c982f9127538858900d87d3ec1f9f737338ad67cad133fa48feff48e6fa0c18abc62e42820f05943e47af3e9fbe306ce74d64094bdf1691ee53e001'; + await ecrecovery.recover(message, signature); + assert.equal(signer, await ecrecovery.signer()); + }); + + it("safeRecover v0", async function() { + let signer = '0x58d5f9f841bcf9e502b438cc81d1ea3ba3f8f7f3'; + let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') + let signature = '3690f285f30200dfacd35b9ee9af4beaf2c2f4b7880d93dd9bdf776e8fdbec6a095d00c80e20e95a68c8effc038707dd740aabf94a6ca37c09733874f772d6e000'; + let v = (signature.substring(128,130) == '01') ? 28 : 27; + let r = '0x'+signature.substring(0,64); + let s = '0x'+signature.substring(64,128); + await ecrecovery.safeRecover(message, v, r, s); + assert.equal(signer, await ecrecovery.signer()); + assert.equal(true, await ecrecovery.result()); + }); + + it("safeRecover v1", async function() { + let signer = '0x0b8124c2429c44e8ca31e7db6f85845abf146415'; + let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') + let signature = '7696f87b3f14e2f1c408c552c0005479bfe35df3a9efb493a2ad2bdf25d95c8c605b6f83699faca9bcbc3c665b434ed8d9c717aa71a1916f054fc41671dd38ad01'; + let v = (signature.substring(128,130) == '01') ? 28 : 27; + let r = '0x'+signature.substring(0,64); + let s = '0x'+signature.substring(64,128); + await ecrecovery.safeRecover(message, v, r, s); + assert.equal(signer, await ecrecovery.signer()); + assert.equal(true, await ecrecovery.result()); + }); + +}); diff --git a/test/helpers/ECRecoveryMock.sol b/test/helpers/ECRecoveryMock.sol new file mode 100644 index 000000000..95ed0dcec --- /dev/null +++ b/test/helpers/ECRecoveryMock.sol @@ -0,0 +1,20 @@ +pragma solidity ^0.4.11; + + +import '../../contracts/ECRecovery.sol'; + + +contract ECRecoveryMock { + + bool public result; + address public signer; + + function safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) { + (result, signer) = ECRecovery.safeRecover(hash, v, r, s); + } + + function recover(bytes32 hash, bytes sig) { + signer = ECRecovery.recover(hash, sig); + } + +} From 641b751385cea1a9459ee8934d680c47c9762ec3 Mon Sep 17 00:00:00 2001 From: Augusto Date: Thu, 15 Jun 2017 12:04:54 -0300 Subject: [PATCH 058/160] Fix ECRecovery contract indentation Fix ident on github Fix ident github Fix ident on github --- contracts/ECRecovery.sol | 102 +++++++++++++++++++-------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/contracts/ECRecovery.sol b/contracts/ECRecovery.sol index 2e846fc11..580e5a66d 100644 --- a/contracts/ECRecovery.sol +++ b/contracts/ECRecovery.sol @@ -2,67 +2,67 @@ pragma solidity ^0.4.11; /** - * Eliptic curve signature operations - * Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d - */ +* Eliptic curve signature operations +* Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d +*/ library ECRecovery { - // Duplicate Solidity's ecrecover, but catching the CALL return value - function safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal returns (bool, address) { - // We do our own memory management here. Solidity uses memory offset - // 0x40 to store the current end of memory. We write past it (as - // writes are memory extensions), but don't update the offset so - // Solidity will reuse it. The memory used here is only needed for - // this context. + // Duplicate Solidity's ecrecover, but catching the CALL return value + function safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal returns (bool, address) { + // We do our own memory management here. Solidity uses memory offset + // 0x40 to store the current end of memory. We write past it (as + // writes are memory extensions), but don't update the offset so + // Solidity will reuse it. The memory used here is only needed for + // this context. - bool ret; - address addr; + bool ret; + address addr; - assembly { - let size := mload(0x40) - mstore(size, hash) - mstore(add(size, 32), v) - mstore(add(size, 64), r) - mstore(add(size, 96), s) + assembly { + let size := mload(0x40) + mstore(size, hash) + mstore(add(size, 32), v) + mstore(add(size, 64), r) + mstore(add(size, 96), s) - // NOTE: we can reuse the request memory because we deal with - // the return code - ret := call(3000, 1, 0, size, 128, size, 32) - addr := mload(size) - } + // NOTE: we can reuse the request memory because we deal with + // the return code + ret := call(3000, 1, 0, size, 128, size, 32) + addr := mload(size) + } - return (ret, addr); - } + return (ret, addr); + } + + function recover(bytes32 hash, bytes sig) internal returns (address) { + bytes32 r; + bytes32 s; + uint8 v; - function recover(bytes32 hash, bytes sig) internal returns (address) { - bytes32 r; - bytes32 s; - uint8 v; + if (sig.length != 65) + return (address(0)); - if (sig.length != 65) - return (address(0)); + assembly { + r := mload(add(sig, 32)) + s := mload(add(sig, 64)) + v := byte(0, mload(add(sig, 96))) + } - assembly { - r := mload(add(sig, 32)) - s := mload(add(sig, 64)) - v := byte(0, mload(add(sig, 96))) - } + // albeit non-transactional signatures are not specified by the YP, one would expect it + // to match the YP range of [27, 28] + // + // geth uses [0, 1] and some clients have followed. This might change, see: + // https://github.com/ethereum/go-ethereum/issues/2053 + if (v < 27) + v += 27; - // albeit non-transactional signatures are not specified by the YP, one would expect it - // to match the YP range of [27, 28] - // - // geth uses [0, 1] and some clients have followed. This might change, see: - // https://github.com/ethereum/go-ethereum/issues/2053 - if (v < 27) - v += 27; + if (v != 27 && v != 28) + return (address(0)); - if (v != 27 && v != 28) - return (address(0)); - - bool ret; - address addr; - (ret, addr) = safeRecover(hash, v, r, s); - return addr; - } + bool ret; + address addr; + (ret, addr) = safeRecover(hash, v, r, s); + return addr; + } } From 227c7aae0f9d9779d5dbf7b5f962013ae3f7c465 Mon Sep 17 00:00:00 2001 From: Augusto Date: Thu, 15 Jun 2017 20:24:17 -0300 Subject: [PATCH 059/160] added check to ret boolean on ECRecovery --- contracts/ECRecovery.sol | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/contracts/ECRecovery.sol b/contracts/ECRecovery.sol index 580e5a66d..bd4b162ee 100644 --- a/contracts/ECRecovery.sol +++ b/contracts/ECRecovery.sol @@ -62,7 +62,11 @@ library ECRecovery { bool ret; address addr; (ret, addr) = safeRecover(hash, v, r, s); - return addr; + + if (!ret) + return address(0); + else + return addr; } } From 635c04378d81f614533aeb32a0b9d80e7db2aee9 Mon Sep 17 00:00:00 2001 From: Augusto Date: Thu, 15 Jun 2017 20:25:29 -0300 Subject: [PATCH 060/160] Removed ECRecovery mock contract, ECRecovery funcions are public constants --- contracts/ECRecovery.sol | 6 +++--- test/ECRecovery.js | 30 ++++++++++++++---------------- test/helpers/ECRecoveryMock.sol | 20 -------------------- 3 files changed, 17 insertions(+), 39 deletions(-) delete mode 100644 test/helpers/ECRecoveryMock.sol diff --git a/contracts/ECRecovery.sol b/contracts/ECRecovery.sol index bd4b162ee..e216840a7 100644 --- a/contracts/ECRecovery.sol +++ b/contracts/ECRecovery.sol @@ -8,7 +8,7 @@ pragma solidity ^0.4.11; library ECRecovery { // Duplicate Solidity's ecrecover, but catching the CALL return value - function safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal returns (bool, address) { + function safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) constant returns (bool, address) { // We do our own memory management here. Solidity uses memory offset // 0x40 to store the current end of memory. We write past it (as // writes are memory extensions), but don't update the offset so @@ -33,8 +33,8 @@ library ECRecovery { return (ret, addr); } - - function recover(bytes32 hash, bytes sig) internal returns (address) { + + function recover(bytes32 hash, bytes sig) constant returns (address) { bytes32 r; bytes32 s; uint8 v; diff --git a/test/ECRecovery.js b/test/ECRecovery.js index d412e2085..28c1a7a3e 100644 --- a/test/ECRecovery.js +++ b/test/ECRecovery.js @@ -1,51 +1,49 @@ -var ECRecoveryMock = artifacts.require("./helpers/ECRecoveryMock.sol"); +var ECRecovery = artifacts.require("../contracts/ECRecovery.sol"); contract('ECRecovery', function(accounts) { let ecrecovery; before(async function() { - ecrecovery = await ECRecoveryMock.new(); + ecrecovery = await ECRecovery.new(); }); - it("recover v0", async function() { + it.only("recover v0", async function() { let signer = '0x2cc1166f6212628a0deef2b33befb2187d35b86c'; let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') let signature = '0x5d99b6f7f6d1f73d1a26497f2b1c89b24c0993913f86e9a2d02cd69887d9c94f3c880358579d811b21dd1b7fd9bb01c1d81d10e69f0384e675c32b39643be89200'; - await ecrecovery.recover(message, signature); - assert.equal(signer, await ecrecovery.signer()); + assert.equal(signer, await ecrecovery.recover(message, signature)); }); - it("recover v1", async function() { + it.only("recover v1", async function() { let signer = '0x1e318623ab09fe6de3c9b8672098464aeda9100e'; let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') let signature = '0x331fe75a821c982f9127538858900d87d3ec1f9f737338ad67cad133fa48feff48e6fa0c18abc62e42820f05943e47af3e9fbe306ce74d64094bdf1691ee53e001'; - await ecrecovery.recover(message, signature); - assert.equal(signer, await ecrecovery.signer()); + assert.equal(signer, await ecrecovery.recover(message, signature)); }); - it("safeRecover v0", async function() { + it.only("safeRecover v0", async function() { let signer = '0x58d5f9f841bcf9e502b438cc81d1ea3ba3f8f7f3'; let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') let signature = '3690f285f30200dfacd35b9ee9af4beaf2c2f4b7880d93dd9bdf776e8fdbec6a095d00c80e20e95a68c8effc038707dd740aabf94a6ca37c09733874f772d6e000'; let v = (signature.substring(128,130) == '01') ? 28 : 27; let r = '0x'+signature.substring(0,64); let s = '0x'+signature.substring(64,128); - await ecrecovery.safeRecover(message, v, r, s); - assert.equal(signer, await ecrecovery.signer()); - assert.equal(true, await ecrecovery.result()); + let result = await ecrecovery.safeRecover(message, v, r, s); + assert.equal(signer, result[1]); + assert.equal(true, result[0]); }); - it("safeRecover v1", async function() { + it.only("safeRecover v1", async function() { let signer = '0x0b8124c2429c44e8ca31e7db6f85845abf146415'; let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') let signature = '7696f87b3f14e2f1c408c552c0005479bfe35df3a9efb493a2ad2bdf25d95c8c605b6f83699faca9bcbc3c665b434ed8d9c717aa71a1916f054fc41671dd38ad01'; let v = (signature.substring(128,130) == '01') ? 28 : 27; let r = '0x'+signature.substring(0,64); let s = '0x'+signature.substring(64,128); - await ecrecovery.safeRecover(message, v, r, s); - assert.equal(signer, await ecrecovery.signer()); - assert.equal(true, await ecrecovery.result()); + let result = await ecrecovery.safeRecover(message, v, r, s); + assert.equal(signer, result[1]); + assert.equal(true, result[0]); }); }); diff --git a/test/helpers/ECRecoveryMock.sol b/test/helpers/ECRecoveryMock.sol deleted file mode 100644 index 95ed0dcec..000000000 --- a/test/helpers/ECRecoveryMock.sol +++ /dev/null @@ -1,20 +0,0 @@ -pragma solidity ^0.4.11; - - -import '../../contracts/ECRecovery.sol'; - - -contract ECRecoveryMock { - - bool public result; - address public signer; - - function safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) { - (result, signer) = ECRecovery.safeRecover(hash, v, r, s); - } - - function recover(bytes32 hash, bytes sig) { - signer = ECRecovery.recover(hash, sig); - } - -} From 68c2bcb9dd113b06b616d8c6888d84bfc7e71636 Mon Sep 17 00:00:00 2001 From: AugustoL Date: Fri, 30 Jun 2017 00:05:38 -0300 Subject: [PATCH 061/160] Removed .only on ECRecovery tests --- test/ECRecovery.js | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/test/ECRecovery.js b/test/ECRecovery.js index 28c1a7a3e..e1b0be493 100644 --- a/test/ECRecovery.js +++ b/test/ECRecovery.js @@ -8,21 +8,21 @@ contract('ECRecovery', function(accounts) { ecrecovery = await ECRecovery.new(); }); - it.only("recover v0", async function() { + it("recover v0", async function() { let signer = '0x2cc1166f6212628a0deef2b33befb2187d35b86c'; let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') let signature = '0x5d99b6f7f6d1f73d1a26497f2b1c89b24c0993913f86e9a2d02cd69887d9c94f3c880358579d811b21dd1b7fd9bb01c1d81d10e69f0384e675c32b39643be89200'; assert.equal(signer, await ecrecovery.recover(message, signature)); }); - it.only("recover v1", async function() { + it("recover v1", async function() { let signer = '0x1e318623ab09fe6de3c9b8672098464aeda9100e'; let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') let signature = '0x331fe75a821c982f9127538858900d87d3ec1f9f737338ad67cad133fa48feff48e6fa0c18abc62e42820f05943e47af3e9fbe306ce74d64094bdf1691ee53e001'; assert.equal(signer, await ecrecovery.recover(message, signature)); }); - it.only("safeRecover v0", async function() { + it("safeRecover v0", async function() { let signer = '0x58d5f9f841bcf9e502b438cc81d1ea3ba3f8f7f3'; let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') let signature = '3690f285f30200dfacd35b9ee9af4beaf2c2f4b7880d93dd9bdf776e8fdbec6a095d00c80e20e95a68c8effc038707dd740aabf94a6ca37c09733874f772d6e000'; @@ -34,7 +34,7 @@ contract('ECRecovery', function(accounts) { assert.equal(true, result[0]); }); - it.only("safeRecover v1", async function() { + it("safeRecover v1", async function() { let signer = '0x0b8124c2429c44e8ca31e7db6f85845abf146415'; let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') let signature = '7696f87b3f14e2f1c408c552c0005479bfe35df3a9efb493a2ad2bdf25d95c8c605b6f83699faca9bcbc3c665b434ed8d9c717aa71a1916f054fc41671dd38ad01'; From a68eaa4e2d3cbf3a05d223918c81122366bc4f66 Mon Sep 17 00:00:00 2001 From: AugustoL Date: Sun, 2 Jul 2017 00:12:44 -0300 Subject: [PATCH 062/160] Added NatSpec documentation on ECRecovery contract --- contracts/ECRecovery.sol | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/contracts/ECRecovery.sol b/contracts/ECRecovery.sol index e216840a7..a1aa2e43f 100644 --- a/contracts/ECRecovery.sol +++ b/contracts/ECRecovery.sol @@ -2,12 +2,20 @@ pragma solidity ^0.4.11; /** -* Eliptic curve signature operations -* Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d -*/ + * @title Eliptic curve signature operations + * + * @dev Based on https://gist.github.com/axic/5b33912c6f61ae6fd96d6c4a47afde6d + */ + library ECRecovery { - // Duplicate Solidity's ecrecover, but catching the CALL return value + /** + * @dev Duplicate Solidity's ecrecover, but catching the CALL return value + * @param hash bytes32 messahe hash from which the signature will be recovered + * @param v uint8 signature version + * @param r bytes32 signature r value + * @param s bytes32 signature s value + */ function safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) constant returns (bool, address) { // We do our own memory management here. Solidity uses memory offset // 0x40 to store the current end of memory. We write past it (as @@ -34,6 +42,11 @@ library ECRecovery { return (ret, addr); } + /** + * @dev Recover signer address from a message by using his signature + * @param hash bytes32 messahe hash from which the signature will be recovered + * @param sig bytes signature + */ function recover(bytes32 hash, bytes sig) constant returns (address) { bytes32 r; bytes32 s; From 478d1b1a9331263d93b850a5549780470c53775d Mon Sep 17 00:00:00 2001 From: Augusto Date: Fri, 14 Jul 2017 10:10:06 -0300 Subject: [PATCH 063/160] Removed safeRecover, using ecrecover method instead, recovering signature from entire hash --- allFiredEvents | 862 +++++++++++++++++++++++++++++++++++++ contracts/ECRecovery.sol | 55 +-- docs/source/ecrecovery.rst | 7 +- test/ECRecovery.js | 28 +- 4 files changed, 878 insertions(+), 74 deletions(-) create mode 100644 allFiredEvents diff --git a/allFiredEvents b/allFiredEvents new file mode 100644 index 000000000..a31b2a17b --- /dev/null +++ b/allFiredEvents @@ -0,0 +1,862 @@ +{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"82d9f12304305445a831ef0f88a2c7ec22cc5312","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000aa4d1f1d2b5726752f32f4709d95e23311dfcc17"} +{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000195b000ba8a8ffeb6a4c0ae7fe8adc7e82d30e28"} +{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","00000000000000000000000062897318f5a64072705a17a9ab03bb530c53bf3f"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","00000000000000000000000062897318f5a64072705a17a9ab03bb530c53bf3f"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"82d9f12304305445a831ef0f88a2c7ec22cc5312","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","00000000000000000000000084463f555f4b40501561b0fd97ad560d1e4b53eb"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"82d9f12304305445a831ef0f88a2c7ec22cc5312","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000084463f555f4b40501561b0fd97ad560d1e4b53eb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"c8dfffd09a52c2a40154c59ffde9bedcc00df2c0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"55a59be58222085bdc19a7c6bf4257b963f85d18","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104f2e470480daefb4d0fa70eb8f75d55acd2ea5aea5a0b8deb063b1d4c2cb4bc9"} +{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b99644f2e470480daefb4d0fa70eb8f75d55acd2ea5aea5a0b8deb063b1d4c2cb4bc9"} +{"address":"84463f555f4b40501561b0fd97ad560d1e4b53eb","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae1000000000000000000000000000000000000000000000000000000000000000090000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc83000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae1000000000000000000000000000000000000000000000000000000000000000090000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc83000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10649788d493a4b35bd8f7a48faf841166c63222ee16435c9916c0f6cc21e218e5"} +{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"649788d493a4b35bd8f7a48faf841166c63222ee16435c9916c0f6cc21e218e500000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae1000000000000000000000000000000000000000000000000000000000000000020000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc8300000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} +{"address":"fc4eee287aefe63b64e1cd04c356eb305c7d6bed","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10dbc3123797a4b2cc9de4ff4548302436d3aebe5663132b2b61268dc0328ba11c"} +{"address":"fc4eee287aefe63b64e1cd04c356eb305c7d6bed","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"dbc3123797a4b2cc9de4ff4548302436d3aebe5663132b2b61268dc0328ba11c00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc8300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"fc4eee287aefe63b64e1cd04c356eb305c7d6bed","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae1000000000000000000000000000000000000000000000000000000000000000020000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc83000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"55a59be58222085bdc19a7c6bf4257b963f85d18","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"f764ee7864bcbc51ed076bcbac45fdcb8a1d4b49","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"f764ee7864bcbc51ed076bcbac45fdcb8a1d4b49","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"2d0df5b85e9d818cb679a65c5d342330163a566f","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"4453c0e244ead75f69e81768f4cd0a9f1fbd509d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b99644d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc834d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f764ee7864bcbc51ed076bcbac45fdcb8a1d4b49","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b99644d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc834d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000004ef7ce6cc8a5698cddb2c3767b1c6e27c2169b604d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b99644d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc834d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000004ef7ce6cc8a5698cddb2c3767b1c6e27c2169b604d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b99644d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc834d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"f764ee7864bcbc51ed076bcbac45fdcb8a1d4b49","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc83"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"c8dfffd09a52c2a40154c59ffde9bedcc00df2c0","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} +{"address":"62897318f5a64072705a17a9ab03bb530c53bf3f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"55a59be58222085bdc19a7c6bf4257b963f85d18","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"55a59be58222085bdc19a7c6bf4257b963f85d18","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"84463f555f4b40501561b0fd97ad560d1e4b53eb","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"84463f555f4b40501561b0fd97ad560d1e4b53eb","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} +{"address":"2d0df5b85e9d818cb679a65c5d342330163a566f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"2d0df5b85e9d818cb679a65c5d342330163a566f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"2d0df5b85e9d818cb679a65c5d342330163a566f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4453c0e244ead75f69e81768f4cd0a9f1fbd509d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4453c0e244ead75f69e81768f4cd0a9f1fbd509d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"fa1087bac02bad49cf56855d3d1dcf9225d3d529","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"fa1087bac02bad49cf56855d3d1dcf9225d3d529","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"fa1087bac02bad49cf56855d3d1dcf9225d3d529","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"5c3659c6908bb08e3d79e1a3ef2d526c02b41698","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"5c3659c6908bb08e3d79e1a3ef2d526c02b41698","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"5c3659c6908bb08e3d79e1a3ef2d526c02b41698","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"d9e3952fcce8c3db1cb859ca0baa1351dd7f074a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"d9e3952fcce8c3db1cb859ca0baa1351dd7f074a","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"d9e3952fcce8c3db1cb859ca0baa1351dd7f074a","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"d9e3952fcce8c3db1cb859ca0baa1351dd7f074a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} +{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} +{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} +{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} +{"address":"8681d39ed567fb83c6a012d58a2d36d49304790a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"8681d39ed567fb83c6a012d58a2d36d49304790a","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"75e5a5bedfdc6d31e60b8383157b0c646876bad0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"75e5a5bedfdc6d31e60b8383157b0c646876bad0","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"6974a421de4374dc55020f11dde813e7531475d1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"6974a421de4374dc55020f11dde813e7531475d1","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"5f29c05f7a99d70af2c024bc04a7c79d18374b0f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"5f29c05f7a99d70af2c024bc04a7c79d18374b0f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"5f29c05f7a99d70af2c024bc04a7c79d18374b0f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4978e8fd892c9e7dbd67a8e9e0af4e93fb78fa50","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4978e8fd892c9e7dbd67a8e9e0af4e93fb78fa50","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1144c0c6f524554ffd329f63bcf3512f149822c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f1144c0c6f524554ffd329f63bcf3512f149822c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1144c0c6f524554ffd329f63bcf3512f149822c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"f764ee7864bcbc51ed076bcbac45fdcb8a1d4b49","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000055a59be58222085bdc19a7c6bf4257b963f85d18","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"971f3f4fcaa10958219f8390a2ac6eb40d1eaf83","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000613386c9e4acfad7e3b59019403c8cc108985341"} +{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"00000000000000000000000050536f9ba86e3c7017931c930b2cddd318198d48"} +{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000f786c8a84d0c763618417cf824d1729f24d3b4f1"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000f786c8a84d0c763618417cf824d1729f24d3b4f1"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"971f3f4fcaa10958219f8390a2ac6eb40d1eaf83","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000ca269af251c5fce88a845bf796d72c9abf5457a8"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"971f3f4fcaa10958219f8390a2ac6eb40d1eaf83","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000ca269af251c5fce88a845bf796d72c9abf5457a8","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"83fefb30fdc7d637d5098a4bb63fd37fd6eca735","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","0000000000000000000000005775fd524967d0fd2c612c9ca72daf344ceaf4b6"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"9c7d8d0fe42598256a5dea696779b1d8b4d310d6","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258a2f40ad5b852188fb150c01c34926f201070261434de8eed7e3a997e0c6dc2b5"} +{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59a2f40ad5b852188fb150c01c34926f201070261434de8eed7e3a997e0c6dc2b5"} +{"address":"ca269af251c5fce88a845bf796d72c9abf5457a8","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2580000000000000000000000000000000000000000000000000000000000000009000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2580000000000000000000000000000000000000000000000000000000000000009000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258b486a494a702eceb00a06919652cb6a14b15a554fbd1a559b6db9a474e30f7ae"} +{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"b486a494a702eceb00a06919652cb6a14b15a554fbd1a559b6db9a474e30f7ae000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2580000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} +{"address":"5648da6b841482c69930365f43641e401287503e","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2586253a6a7f6d903b1ac1d69f135a27c189738113ba8f6ab3c328244883982a955"} +{"address":"5648da6b841482c69930365f43641e401287503e","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"6253a6a7f6d903b1ac1d69f135a27c189738113ba8f6ab3c328244883982a955000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"5648da6b841482c69930365f43641e401287503e","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2580000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"9c7d8d0fe42598256a5dea696779b1d8b4d310d6","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"38b303dd297d8f0a17ebad1def8104fcaf97bcff","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"38b303dd297d8f0a17ebad1def8104fcaf97bcff","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"5775fd524967d0fd2c612c9ca72daf344ceaf4b6","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"5775fd524967d0fd2c612c9ca72daf344ceaf4b6","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"5775fd524967d0fd2c612c9ca72daf344ceaf4b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"bbf9c301f744e066b0da0e5538e0bca2b587c4cc","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"2c2f9229c9e2df353fcf512025a087f82009247e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f594d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"38b303dd297d8f0a17ebad1def8104fcaf97bcff","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f594d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a2617e6934554f5ad30ebc392d79b77fa9e8beb74d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f594d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a2617e6934554f5ad30ebc392d79b77fa9e8beb74d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f594d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"38b303dd297d8f0a17ebad1def8104fcaf97bcff","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"83fefb30fdc7d637d5098a4bb63fd37fd6eca735","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} +{"address":"38b303dd297d8f0a17ebad1def8104fcaf97bcff","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000009c7d8d0fe42598256a5dea696779b1d8b4d310d6","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"f786c8a84d0c763618417cf824d1729f24d3b4f1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"9c7d8d0fe42598256a5dea696779b1d8b4d310d6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"9c7d8d0fe42598256a5dea696779b1d8b4d310d6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"ca269af251c5fce88a845bf796d72c9abf5457a8","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"ca269af251c5fce88a845bf796d72c9abf5457a8","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"5775fd524967d0fd2c612c9ca72daf344ceaf4b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"5775fd524967d0fd2c612c9ca72daf344ceaf4b6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} +{"address":"bbf9c301f744e066b0da0e5538e0bca2b587c4cc","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"bbf9c301f744e066b0da0e5538e0bca2b587c4cc","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"bbf9c301f744e066b0da0e5538e0bca2b587c4cc","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"2c2f9229c9e2df353fcf512025a087f82009247e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"2c2f9229c9e2df353fcf512025a087f82009247e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f91843c32ae1bd96af02764bd38bb3df634d748c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f91843c32ae1bd96af02764bd38bb3df634d748c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f91843c32ae1bd96af02764bd38bb3df634d748c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"f30f0f7e5c20c5209612b98a92cd3b4cb92a44f3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f30f0f7e5c20c5209612b98a92cd3b4cb92a44f3","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f30f0f7e5c20c5209612b98a92cd3b4cb92a44f3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"2de15f58ff160a60dcb5be643c8d3ef8ecbec51f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"2de15f58ff160a60dcb5be643c8d3ef8ecbec51f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"2de15f58ff160a60dcb5be643c8d3ef8ecbec51f","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"2de15f58ff160a60dcb5be643c8d3ef8ecbec51f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} +{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} +{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} +{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} +{"address":"83f3a23a37591134c95fb1c9083850741daa978b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"83f3a23a37591134c95fb1c9083850741daa978b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"79a0643e1b4ba84f08993d48ee75621178cd7929","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"79a0643e1b4ba84f08993d48ee75621178cd7929","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"25653f09a42bef86dc0e6d8cf0c2bad07277f4a6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"25653f09a42bef86dc0e6d8cf0c2bad07277f4a6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"e74329a7e18888ef28edf5728806e584b0eada93","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"e74329a7e18888ef28edf5728806e584b0eada93","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"e74329a7e18888ef28edf5728806e584b0eada93","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"35c514018f470c3e466cd43925fab1b396bcd867","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"35c514018f470c3e466cd43925fab1b396bcd867","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"d6dfb027fc643746c001acbbb573335d72733c04","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"d6dfb027fc643746c001acbbb573335d72733c04","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"d6dfb027fc643746c001acbbb573335d72733c04","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"d6b58d286c65ecd1076d4e80aef53ac4b2bceaef","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"0000000000000000000000008883a07aa2dfd77006bcb1bc7724c289f9aaeb80"} +{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000b478afa24337b06fd8be6fdf9b41323a279131f6"} +{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000659fe89c8e908c5d78fb2ae1ac2ce2486cb5ec6f"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000659fe89c8e908c5d78fb2ae1ac2ce2486cb5ec6f"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"d6b58d286c65ecd1076d4e80aef53ac4b2bceaef","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","0000000000000000000000005a2ef6587ec757eb095dba88be6ecba2d83d8a72"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"d6b58d286c65ecd1076d4e80aef53ac4b2bceaef","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a2ef6587ec757eb095dba88be6ecba2d83d8a72","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"d1b3e6c6008669863378d082b25116bbb2b4684f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000010d475a4cea44876d4296cc6c0fa628ceebd185"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"b60de24ccde71272d057461a3caef49beaf4ba91","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4e27422f2c6a2c681d86a13bc9aeb63114bed93fbd2326602c1d911d914001f36"} +{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670ee27422f2c6a2c681d86a13bc9aeb63114bed93fbd2326602c1d911d914001f36"} +{"address":"5a2ef6587ec757eb095dba88be6ecba2d83d8a72","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a400000000000000000000000000000000000000000000000000000000000000090000000000000000000000001186b4143a4da37ee58448f397683e04274d320d000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a400000000000000000000000000000000000000000000000000000000000000090000000000000000000000001186b4143a4da37ee58448f397683e04274d320d000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a49aca0e2063424c30734582e38f37e56cbef4fdf5ac6f90bf279759257529ec36"} +{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"9aca0e2063424c30734582e38f37e56cbef4fdf5ac6f90bf279759257529ec360000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a400000000000000000000000000000000000000000000000000000000000000020000000000000000000000001186b4143a4da37ee58448f397683e04274d320d00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} +{"address":"0a56550bc4d6aa084f3a4174c82a8b18adba3c5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a46d87f7405664965d53077f4e17c909ec451f04c05277fd0da012501215264e48"} +{"address":"0a56550bc4d6aa084f3a4174c82a8b18adba3c5d","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"6d87f7405664965d53077f4e17c909ec451f04c05277fd0da012501215264e480000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"0a56550bc4d6aa084f3a4174c82a8b18adba3c5d","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a400000000000000000000000000000000000000000000000000000000000000020000000000000000000000001186b4143a4da37ee58448f397683e04274d320d000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"b60de24ccde71272d057461a3caef49beaf4ba91","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"769f0e90da389f26e1b6b7d86f57eaf593bdbe7b","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"769f0e90da389f26e1b6b7d86f57eaf593bdbe7b","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"010d475a4cea44876d4296cc6c0fa628ceebd185","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"010d475a4cea44876d4296cc6c0fa628ceebd185","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"010d475a4cea44876d4296cc6c0fa628ceebd185","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"3205fc3effc7727dbe0b8d41cbe85dfce6ad5489","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"643338bdcff7253d64f46d925d607f8e47e5d88f","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"769f0e90da389f26e1b6b7d86f57eaf593bdbe7b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000006e71b2a87b6170dac213cdf0b1e65b8673700e154d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000006e71b2a87b6170dac213cdf0b1e65b8673700e154d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"769f0e90da389f26e1b6b7d86f57eaf593bdbe7b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"d1b3e6c6008669863378d082b25116bbb2b4684f","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} +{"address":"769f0e90da389f26e1b6b7d86f57eaf593bdbe7b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000b60de24ccde71272d057461a3caef49beaf4ba91","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"659fe89c8e908c5d78fb2ae1ac2ce2486cb5ec6f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"b60de24ccde71272d057461a3caef49beaf4ba91","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"b60de24ccde71272d057461a3caef49beaf4ba91","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"5a2ef6587ec757eb095dba88be6ecba2d83d8a72","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"5a2ef6587ec757eb095dba88be6ecba2d83d8a72","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"010d475a4cea44876d4296cc6c0fa628ceebd185","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"010d475a4cea44876d4296cc6c0fa628ceebd185","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} +{"address":"3205fc3effc7727dbe0b8d41cbe85dfce6ad5489","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"3205fc3effc7727dbe0b8d41cbe85dfce6ad5489","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"3205fc3effc7727dbe0b8d41cbe85dfce6ad5489","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"643338bdcff7253d64f46d925d607f8e47e5d88f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"643338bdcff7253d64f46d925d607f8e47e5d88f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"17a7af37bc2c63bb9a919317e61720769640bc87","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"17a7af37bc2c63bb9a919317e61720769640bc87","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"17a7af37bc2c63bb9a919317e61720769640bc87","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"a003c072e7dda4adaa9ac2fd3fd5758423dc9716","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a003c072e7dda4adaa9ac2fd3fd5758423dc9716","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a003c072e7dda4adaa9ac2fd3fd5758423dc9716","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"e787c67dbba574a6d8d9b7233fa543b700413252","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"e787c67dbba574a6d8d9b7233fa543b700413252","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"e787c67dbba574a6d8d9b7233fa543b700413252","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"e787c67dbba574a6d8d9b7233fa543b700413252","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} +{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} +{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} +{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} +{"address":"8de9d434fa29d4f1d51d7952c9b9c708e158654b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"8de9d434fa29d4f1d51d7952c9b9c708e158654b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"31dd34f5eba23ca434a642a211c03112bc7353af","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"31dd34f5eba23ca434a642a211c03112bc7353af","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f8f3d5a40e41df7fee3e0ba2b07a196dbf0174b0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f8f3d5a40e41df7fee3e0ba2b07a196dbf0174b0","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"debdac9cf398acb482e0c53df2ee0c78ab756cc1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"debdac9cf398acb482e0c53df2ee0c78ab756cc1","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"debdac9cf398acb482e0c53df2ee0c78ab756cc1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"04d4a11de7fd5507a45b8de76a01b7732750f393","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"04d4a11de7fd5507a45b8de76a01b7732750f393","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"57f5a8d2424398a4a1d4c6a25176303d22fc45b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"57f5a8d2424398a4a1d4c6a25176303d22fc45b6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"57f5a8d2424398a4a1d4c6a25176303d22fc45b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","00000000000000000000000004eee06dca15b8eef8a9974dd1529ecd154100bc"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"efddee9b2134fd5e557e5fd34d99556f85115b6a","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000470161a28d16e508399e6bac2233952f2ea84ae6"} +{"address":"96e107e5c1e55011f6b6a8b4bb09a5aae1308e6d","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000048d0f24f25b154fb26505441c1da351259c1b32"} +{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","000000000000000000000000dc3719efd9f35de3d40029dc5d895882b005db65"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","000000000000000000000000dc3719efd9f35de3d40029dc5d895882b005db65"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"efddee9b2134fd5e557e5fd34d99556f85115b6a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","0000000000000000000000001e008608163a87892c9ed42c4303f6500e706d03"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"efddee9b2134fd5e557e5fd34d99556f85115b6a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001e008608163a87892c9ed42c4303f6500e706d03","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"5b5629b224e8c382ec5464ec4e438525dec7953a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","00000000000000000000000019deb94a1bda9a72dca37adac2aa42aa2c38856e"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"18ad568185549fb89acc285dc2518532eb33018e","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157b27f90807c883698983e1fd35f0e6603575d2602f56a4be43e402dee08bbd3f1"} +{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000004eee06dca15b8eef8a9974dd1529ecd154100bcb27f90807c883698983e1fd35f0e6603575d2602f56a4be43e402dee08bbd3f1"} +{"address":"1e008608163a87892c9ed42c4303f6500e706d03","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001570000000000000000000000000000000000000000000000000000000000000009000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"96e107e5c1e55011f6b6a8b4bb09a5aae1308e6d","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001570000000000000000000000000000000000000000000000000000000000000009000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"96e107e5c1e55011f6b6a8b4bb09a5aae1308e6d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001578287eee7810aa93c7e23638d6511f581ef1670ec68f44cc95562776e88a627d9"} +{"address":"96e107e5c1e55011f6b6a8b4bb09a5aae1308e6d","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"8287eee7810aa93c7e23638d6511f581ef1670ec68f44cc95562776e88a627d900000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001570000000000000000000000000000000000000000000000000000000000000002000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} +{"address":"cd6c389eb80e85813b26750e49ebcfe84c471857","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157206ff9ae02a6ede41551cfb93d772767fc3a65ee99fb72a4a3e4d1f57379bb3e"} +{"address":"cd6c389eb80e85813b26750e49ebcfe84c471857","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"206ff9ae02a6ede41551cfb93d772767fc3a65ee99fb72a4a3e4d1f57379bb3e00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"cd6c389eb80e85813b26750e49ebcfe84c471857","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001570000000000000000000000000000000000000000000000000000000000000002000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"18ad568185549fb89acc285dc2518532eb33018e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"96e107e5c1e55011f6b6a8b4bb09a5aae1308e6d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"c0be2c3daf7429d960d9b7de1c6842c591daab03","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"c0be2c3daf7429d960d9b7de1c6842c591daab03","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"597f7d3c869dc79c3bd99a1be18e26678d8038f9","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"597f7d3c869dc79c3bd99a1be18e26678d8038f9","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"d24bb1edd81430cead459546ab9c1c277fa01f5e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","00000000000000000000000004eee06dca15b8eef8a9974dd1529ecd154100bc"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"19deb94a1bda9a72dca37adac2aa42aa2c38856e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"19deb94a1bda9a72dca37adac2aa42aa2c38856e","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"19deb94a1bda9a72dca37adac2aa42aa2c38856e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","00000000000000000000000004eee06dca15b8eef8a9974dd1529ecd154100bc"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"47116d9c482edd77995f3b6e10dd6492d48275f5","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"cde8a71e537bb0ccbac44ac88469b927e59609c0","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001574d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000004eee06dca15b8eef8a9974dd1529ecd154100bc4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"597f7d3c869dc79c3bd99a1be18e26678d8038f9","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001574d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"60a9d56d3059b2afed86fc8ae3b3660305f119d5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c","0000000000000000000000006b34157689f18e4514a68a0d8af8ab992e262571"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"9b42f0b60d30cf34a462f8228600e2bf583ba0c5","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000d315d5c94319d2e9907627e542046d3c7a561352"} +{"address":"0c230fcdef72761c4976c3dfb3ec4d24195547f3","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000ec52c56d98ab795ccd6bc0f6129d7beae5b3592b"} +{"address":"60a9d56d3059b2afed86fc8ae3b3660305f119d5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c","000000000000000000000000b68b4909d83b7cd3237cd6f7b2750f5c49ec063a"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"60a9d56d3059b2afed86fc8ae3b3660305f119d5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c","000000000000000000000000b68b4909d83b7cd3237cd6f7b2750f5c49ec063a"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"9b42f0b60d30cf34a462f8228600e2bf583ba0c5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c","000000000000000000000000934165a93d5b0cde936c51efce123b9e1d1e20c5"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"9b42f0b60d30cf34a462f8228600e2bf583ba0c5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000934165a93d5b0cde936c51efce123b9e1d1e20c5","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"a15f9fd21c157cd8964ea75261c2415002bfce48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c","000000000000000000000000f433f34a114dff8876f20479857c70d809f27c1a"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"aa22e8ac330e641d3a842c03806bdb8ee1846712","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"60a9d56d3059b2afed86fc8ae3b3660305f119d5","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c7f143b9b6bed1a89206902eb5f73967ecd9eed6896f22385c69f0137cafaf160"} +{"address":"60a9d56d3059b2afed86fc8ae3b3660305f119d5","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000006b34157689f18e4514a68a0d8af8ab992e2625717f143b9b6bed1a89206902eb5f73967ecd9eed6896f22385c69f0137cafaf160"} +{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"ab381c4137becbec91bbe341648311e48a9be63e","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000bdc22e9fa6e194dc0ec6092fc4028f13fd51052b"} +{"address":"18baef07e314588448986d072701b22b901c5613","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000c14bf3f95b2076ef6411a080ac6398a01a1b7caf"} +{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000c8d120617859a450139aeceafb660a4e1cbec8e0"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000c8d120617859a450139aeceafb660a4e1cbec8e0"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"ab381c4137becbec91bbe341648311e48a9be63e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","0000000000000000000000008da875ea54274c00dbedef7c4e7872ca49053e08"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"ab381c4137becbec91bbe341648311e48a9be63e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008da875ea54274c00dbedef7c4e7872ca49053e08","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"2d99e516ffd00862bedc96808063a5ef61717be5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","00000000000000000000000090845948988300fe5c320e6b2130166ff6d2e54c"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"db8a6c502f2a32eee73d2bd4578693f109037d5d","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e546755822c8cc38d56c874f1350391658c1d124ac8f33b043a5f6174610625c9eb51"} +{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a55822c8cc38d56c874f1350391658c1d124ac8f33b043a5f6174610625c9eb51"} +{"address":"8da875ea54274c00dbedef7c4e7872ca49053e08","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467000000000000000000000000000000000000000000000000000000000000000900000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"18baef07e314588448986d072701b22b901c5613","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467000000000000000000000000000000000000000000000000000000000000000900000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"18baef07e314588448986d072701b22b901c5613","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54675930ca6a167eebdac715c86b5c7ed23888ddb5108eb53773dc20d07b3df34b32"} +{"address":"18baef07e314588448986d072701b22b901c5613","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"5930ca6a167eebdac715c86b5c7ed23888ddb5108eb53773dc20d07b3df34b3200000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467000000000000000000000000000000000000000000000000000000000000000200000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} +{"address":"a658c2b32d4a8d25add1c433002233c63a4933b1","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54679ff4e064c5661374f76befdd80d77967705b06a65486f9261f1c108cede4fa51"} +{"address":"a658c2b32d4a8d25add1c433002233c63a4933b1","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"9ff4e064c5661374f76befdd80d77967705b06a65486f9261f1c108cede4fa5100000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"a658c2b32d4a8d25add1c433002233c63a4933b1","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467000000000000000000000000000000000000000000000000000000000000000200000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"db8a6c502f2a32eee73d2bd4578693f109037d5d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"18baef07e314588448986d072701b22b901c5613","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"a00c71a6a59eab0444538fe534040222fd40199e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"a00c71a6a59eab0444538fe534040222fd40199e","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"90845948988300fe5c320e6b2130166ff6d2e54c","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"90845948988300fe5c320e6b2130166ff6d2e54c","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"90845948988300fe5c320e6b2130166ff6d2e54c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"e779444c5ec8a2e1a33ad1319eee9549282ea16b","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"d3ea16e567e9f33c4a7aafee4d7d89d944126275","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"a00c71a6a59eab0444538fe534040222fd40199e","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000009b257351d0a6d861560e8024890a95403dfc41da4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000009b257351d0a6d861560e8024890a95403dfc41da4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"a00c71a6a59eab0444538fe534040222fd40199e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"18baef07e314588448986d072701b22b901c5613","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"18baef07e314588448986d072701b22b901c5613","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"2d99e516ffd00862bedc96808063a5ef61717be5","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} +{"address":"a00c71a6a59eab0444538fe534040222fd40199e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db8a6c502f2a32eee73d2bd4578693f109037d5d","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"c8d120617859a450139aeceafb660a4e1cbec8e0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"db8a6c502f2a32eee73d2bd4578693f109037d5d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"db8a6c502f2a32eee73d2bd4578693f109037d5d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"8da875ea54274c00dbedef7c4e7872ca49053e08","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"8da875ea54274c00dbedef7c4e7872ca49053e08","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"90845948988300fe5c320e6b2130166ff6d2e54c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"90845948988300fe5c320e6b2130166ff6d2e54c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} +{"address":"e779444c5ec8a2e1a33ad1319eee9549282ea16b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"e779444c5ec8a2e1a33ad1319eee9549282ea16b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"e779444c5ec8a2e1a33ad1319eee9549282ea16b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"d3ea16e567e9f33c4a7aafee4d7d89d944126275","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"d3ea16e567e9f33c4a7aafee4d7d89d944126275","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"0eeac8f5729516fb3c2a9c7a219e305e5be6d72a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"0eeac8f5729516fb3c2a9c7a219e305e5be6d72a","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"0eeac8f5729516fb3c2a9c7a219e305e5be6d72a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"fc03ecc32645eb19b1d02bd2bb90568480d5c228","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"fc03ecc32645eb19b1d02bd2bb90568480d5c228","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"fc03ecc32645eb19b1d02bd2bb90568480d5c228","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a1dc7d13616c20ceeaa4dd9537a559e7a204b268","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a1dc7d13616c20ceeaa4dd9537a559e7a204b268","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a1dc7d13616c20ceeaa4dd9537a559e7a204b268","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a1dc7d13616c20ceeaa4dd9537a559e7a204b268","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} +{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} +{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} +{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} +{"address":"dc2883461df64b1569a79de2a649709472cf1538","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"dc2883461df64b1569a79de2a649709472cf1538","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"dde27236c3c218494b716c78a827ae456acb6861","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"dde27236c3c218494b716c78a827ae456acb6861","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"02a8b18eeb0baba202cf85714dc542e571ff7129","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"02a8b18eeb0baba202cf85714dc542e571ff7129","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"817256731c00f51587e09fb8bbf2625f82cc1496","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"817256731c00f51587e09fb8bbf2625f82cc1496","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"817256731c00f51587e09fb8bbf2625f82cc1496","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f92d41b4fc2a6b6574f36e43c77d81923c2469a3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f92d41b4fc2a6b6574f36e43c77d81923c2469a3","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f85776f5971c872f4cfb5053c55f5865c68cd0bf","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f85776f5971c872f4cfb5053c55f5865c68cd0bf","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f85776f5971c872f4cfb5053c55f5865c68cd0bf","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"b35f4ea29c412f20d362216f7e5a416a97465dce","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"0000000000000000000000003ad3291347e779337e2488f5b101e729c2988531"} +{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000b660f2a87d7469c1cee13108939c768627d80738"} +{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","000000000000000000000000e7a4a0027de85aff816b88fcbea8212eaf30a562"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","000000000000000000000000e7a4a0027de85aff816b88fcbea8212eaf30a562"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"b35f4ea29c412f20d362216f7e5a416a97465dce","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000063622723ba468472d9b37b0fbdb11d3b337a554f"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"b35f4ea29c412f20d362216f7e5a416a97465dce","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000063622723ba468472d9b37b0fbdb11d3b337a554f","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"4da22cf678345808c1eea7205f84e672f7ec0b9a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","000000000000000000000000c8a1b6f3c07850b303925c6f8bcfdca34455a9cb"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"27aff37df87ea18170c77cd5552c8158092d3eae","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578913fe22881e423bc626a2e074b01f11b4b6a7e5833d8f81306e97e50b71e53855a"} +{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c413fe22881e423bc626a2e074b01f11b4b6a7e5833d8f81306e97e50b71e53855a"} +{"address":"63622723ba468472d9b37b0fbdb11d3b337a554f","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578910000000000000000000000000000000000000000000000000000000000000009000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578910000000000000000000000000000000000000000000000000000000000000009000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891610770262379e306955972ac72aeb33b39c70bb83175756aec784b62b30d8a98"} +{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"610770262379e306955972ac72aeb33b39c70bb83175756aec784b62b30d8a980000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578910000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} +{"address":"231985d109167f4421a1fdd39ece87db901f3a4b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a5789144144fc225a1ca02dd49cdfc0fa24fc266bb5ae54bcac37fd93ceb770794910f"} +{"address":"231985d109167f4421a1fdd39ece87db901f3a4b","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"44144fc225a1ca02dd49cdfc0fa24fc266bb5ae54bcac37fd93ceb770794910f0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"231985d109167f4421a1fdd39ece87db901f3a4b","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578910000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"27aff37df87ea18170c77cd5552c8158092d3eae","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"6e389549363a8188c62e7653ce6cc27f62352a79","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"6e389549363a8188c62e7653ce6cc27f62352a79","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"c8a1b6f3c07850b303925c6f8bcfdca34455a9cb","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"c8a1b6f3c07850b303925c6f8bcfdca34455a9cb","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"c8a1b6f3c07850b303925c6f8bcfdca34455a9cb","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"c53ce319252f8e8cc5fd0d291ac6c684844abbe3","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"025a6bdcfa4b33874d0868eb4bd34dd7f687f6c6","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c414d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"6e389549363a8188c62e7653ce6cc27f62352a79","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c414d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000d184098a549b9385e0953a34801c9f4a8733b22a4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c414d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000d184098a549b9385e0953a34801c9f4a8733b22a4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c414d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"6e389549363a8188c62e7653ce6cc27f62352a79","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"4da22cf678345808c1eea7205f84e672f7ec0b9a","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} +{"address":"6e389549363a8188c62e7653ce6cc27f62352a79","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000027aff37df87ea18170c77cd5552c8158092d3eae","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"e7a4a0027de85aff816b88fcbea8212eaf30a562","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"27aff37df87ea18170c77cd5552c8158092d3eae","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"27aff37df87ea18170c77cd5552c8158092d3eae","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"63622723ba468472d9b37b0fbdb11d3b337a554f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"63622723ba468472d9b37b0fbdb11d3b337a554f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8a1b6f3c07850b303925c6f8bcfdca34455a9cb","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"c8a1b6f3c07850b303925c6f8bcfdca34455a9cb","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} +{"address":"c53ce319252f8e8cc5fd0d291ac6c684844abbe3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"c53ce319252f8e8cc5fd0d291ac6c684844abbe3","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"c53ce319252f8e8cc5fd0d291ac6c684844abbe3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"025a6bdcfa4b33874d0868eb4bd34dd7f687f6c6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"025a6bdcfa4b33874d0868eb4bd34dd7f687f6c6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a4e6cf2c2d7934ff5f1b423018ce124bf10836d1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a4e6cf2c2d7934ff5f1b423018ce124bf10836d1","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a4e6cf2c2d7934ff5f1b423018ce124bf10836d1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"98016e6d3ff3607d8e20cd29f96299b1526f903e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"98016e6d3ff3607d8e20cd29f96299b1526f903e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"98016e6d3ff3607d8e20cd29f96299b1526f903e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"bc64020cbd8158c5e2c347df3905e209955a21f5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"bc64020cbd8158c5e2c347df3905e209955a21f5","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"bc64020cbd8158c5e2c347df3905e209955a21f5","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"bc64020cbd8158c5e2c347df3905e209955a21f5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} +{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} +{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} +{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} +{"address":"45fd24016f72722f65a40dd6f68971a37942664b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"45fd24016f72722f65a40dd6f68971a37942664b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"2d1c240985cf4e46f2718572e4f9b0c6276c5e8b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"2d1c240985cf4e46f2718572e4f9b0c6276c5e8b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"30d67737d3985288a77a9044286603642dbc3db5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"30d67737d3985288a77a9044286603642dbc3db5","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"80fe7ba5a17f6766f332f790bd17947c45b5104e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"80fe7ba5a17f6766f332f790bd17947c45b5104e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"80fe7ba5a17f6766f332f790bd17947c45b5104e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"6034e14337143b2706e08bc8d83755bfc8e2d7fe","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"6034e14337143b2706e08bc8d83755bfc8e2d7fe","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f33f8a5dc16209a75a0c9e5b3aab8f208d5123b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f33f8a5dc16209a75a0c9e5b3aab8f208d5123b6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f33f8a5dc16209a75a0c9e5b3aab8f208d5123b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"9991f0eceac53f5731cbc3fbfe52c773cb012aa9","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"0000000000000000000000009806b8fff1cc75ff57d9e09dea5b7951363a5ce3"} +{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"0000000000000000000000007b5b78e47d4cca3dec34ba7bffbf3c02ed21be58"} +{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","000000000000000000000000c65d93945b75553d7fc63ff6f6b0973347c79503"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","000000000000000000000000c65d93945b75553d7fc63ff6f6b0973347c79503"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"9991f0eceac53f5731cbc3fbfe52c773cb012aa9","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","000000000000000000000000ccdb8529c6185c9fb36f0d69427128baab0f1260"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"9991f0eceac53f5731cbc3fbfe52c773cb012aa9","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000ccdb8529c6185c9fb36f0d69427128baab0f1260","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"c5c6f2dddd9c599970b9b4a012609ef9f00ca6c1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000002e15d9aaa45ba56ea74e04a4b5090f44afecf983"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"3585684e0f8414b2d43e4e2d7e3e2f503b1bb2a6","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa3de43e002053a488bb0d44a726b2f7834f0d7ce2cd7efff54760a9406b8753b6"} +{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e3de43e002053a488bb0d44a726b2f7834f0d7ce2cd7efff54760a9406b8753b6"} +{"address":"ccdb8529c6185c9fb36f0d69427128baab0f1260","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa0000000000000000000000000000000000000000000000000000000000000009000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed35631000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa0000000000000000000000000000000000000000000000000000000000000009000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed35631000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa7939729a1d0ffdadc4126765ecf33428b8497bf2b3002e8c7f33e0e354cef272"} +{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"7939729a1d0ffdadc4126765ecf33428b8497bf2b3002e8c7f33e0e354cef272000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed3563100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} +{"address":"3d38dccaa84eb043fde7c0c74287da10c37c1245","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa0e4805a1b9e9c14878b54dbfd45932678ab8be6d35366391a2c431826322688e"} +{"address":"3d38dccaa84eb043fde7c0c74287da10c37c1245","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"0e4805a1b9e9c14878b54dbfd45932678ab8be6d35366391a2c431826322688e000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed3563100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"3d38dccaa84eb043fde7c0c74287da10c37c1245","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed35631000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"3585684e0f8414b2d43e4e2d7e3e2f503b1bb2a6","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"b83d2641177d1bbfdcfa361b283dbed2d6aad3ac","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"b83d2641177d1bbfdcfa361b283dbed2d6aad3ac","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"2e15d9aaa45ba56ea74e04a4b5090f44afecf983","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"2e15d9aaa45ba56ea74e04a4b5090f44afecf983","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"2e15d9aaa45ba56ea74e04a4b5090f44afecf983","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"874e40a56878f1a6c05096e0ab76b5bd027d5480","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"5b3b035b11a07268e19e7745a32bb8c0e0fb38d1","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed356314d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"b83d2641177d1bbfdcfa361b283dbed2d6aad3ac","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed356314d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000711e73189783360a4b672613662641667052d0394d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed356314d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000711e73189783360a4b672613662641667052d0394d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed356314d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"b83d2641177d1bbfdcfa361b283dbed2d6aad3ac","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed35631"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"c5c6f2dddd9c599970b9b4a012609ef9f00ca6c1","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} +{"address":"b83d2641177d1bbfdcfa361b283dbed2d6aad3ac","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003585684e0f8414b2d43e4e2d7e3e2f503b1bb2a6","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"c65d93945b75553d7fc63ff6f6b0973347c79503","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"3585684e0f8414b2d43e4e2d7e3e2f503b1bb2a6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"3585684e0f8414b2d43e4e2d7e3e2f503b1bb2a6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"ccdb8529c6185c9fb36f0d69427128baab0f1260","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"ccdb8529c6185c9fb36f0d69427128baab0f1260","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"2e15d9aaa45ba56ea74e04a4b5090f44afecf983","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"2e15d9aaa45ba56ea74e04a4b5090f44afecf983","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} +{"address":"874e40a56878f1a6c05096e0ab76b5bd027d5480","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"874e40a56878f1a6c05096e0ab76b5bd027d5480","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"874e40a56878f1a6c05096e0ab76b5bd027d5480","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"5b3b035b11a07268e19e7745a32bb8c0e0fb38d1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"5b3b035b11a07268e19e7745a32bb8c0e0fb38d1","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a0022ba6077f6648b3b18644640db46c372b8107","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a0022ba6077f6648b3b18644640db46c372b8107","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a0022ba6077f6648b3b18644640db46c372b8107","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"da8bb76b886690395358a64c1fc005f2a916608c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"da8bb76b886690395358a64c1fc005f2a916608c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"da8bb76b886690395358a64c1fc005f2a916608c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"3e581cc65141e14472da1b536e67fff3585e105e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"3e581cc65141e14472da1b536e67fff3585e105e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"3e581cc65141e14472da1b536e67fff3585e105e","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"3e581cc65141e14472da1b536e67fff3585e105e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} +{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} +{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} +{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} +{"address":"1b3b8e8afeaf99fa42d5953376deea177d679af8","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"1b3b8e8afeaf99fa42d5953376deea177d679af8","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"ca5ad57b403abf2a443b9ccd1f0c3864699f903c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"ca5ad57b403abf2a443b9ccd1f0c3864699f903c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"7f112945cbd677ac88dea4bc60aa65ebde9eb81c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"7f112945cbd677ac88dea4bc60aa65ebde9eb81c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"4590107dad850d9b0519a3e7a5ce61782df6d52e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4590107dad850d9b0519a3e7a5ce61782df6d52e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"4590107dad850d9b0519a3e7a5ce61782df6d52e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"b7d08ca706f9f57b328f9e254a590b6a4cf59099","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"b7d08ca706f9f57b328f9e254a590b6a4cf59099","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"1c6f29cdc402111daa8767d0de8c85d66d58b187","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"1c6f29cdc402111daa8767d0de8c85d66d58b187","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"1c6f29cdc402111daa8767d0de8c85d66d58b187","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"c0a11e6ea249c259ac8e630dbbadf0de1fe265dc","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"0000000000000000000000001c08b96c6e0fbf8a8454f687743f4e4974f9a8e0"} +{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"00000000000000000000000003b9e317e39f0452df5a4befbd96303e39bcdd1b"} +{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a94be4c7e40ef8b9c48d5330b24c8985520a1d06"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a94be4c7e40ef8b9c48d5330b24c8985520a1d06"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"c0a11e6ea249c259ac8e630dbbadf0de1fe265dc","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000b04f70f677247cb1dcb3b2f2e030d09751847b7b"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"c0a11e6ea249c259ac8e630dbbadf0de1fe265dc","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000b04f70f677247cb1dcb3b2f2e030d09751847b7b","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"07add5c2313d34d1dd47dc5d34d8ecd3e9855359","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","0000000000000000000000001670358b5d1d329790ac8173fe73e3df0e8eafff"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"25a5ad6c45bea7bbf06ca83c0c24a3dcbd3fc423","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a154082ccce93c359681b416bae5b0dfe24f2835cd17e4cb7e9cc68e9f066f244b65d"} +{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f82ccce93c359681b416bae5b0dfe24f2835cd17e4cb7e9cc68e9f066f244b65d"} +{"address":"b04f70f677247cb1dcb3b2f2e030d09751847b7b","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15400000000000000000000000000000000000000000000000000000000000000009000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15400000000000000000000000000000000000000000000000000000000000000009000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15402dc03487c51cbfb1053fb2de11574a2bc087396d34fddac244599f451996be80"} +{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"2dc03487c51cbfb1053fb2de11574a2bc087396d34fddac244599f451996be800000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} +{"address":"9944d8c3b44a3a5e95fb24c6705a88f25cbdecfd","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540600ea688eaaf29d350e6b6cf6a70b90007f9f6dd89301b284dfe8159b4349bfe"} +{"address":"9944d8c3b44a3a5e95fb24c6705a88f25cbdecfd","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"600ea688eaaf29d350e6b6cf6a70b90007f9f6dd89301b284dfe8159b4349bfe0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"9944d8c3b44a3a5e95fb24c6705a88f25cbdecfd","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"25a5ad6c45bea7bbf06ca83c0c24a3dcbd3fc423","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"71af46fb409415d1440d87840034836ad7736f3a","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"71af46fb409415d1440d87840034836ad7736f3a","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"1670358b5d1d329790ac8173fe73e3df0e8eafff","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"1670358b5d1d329790ac8173fe73e3df0e8eafff","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"1670358b5d1d329790ac8173fe73e3df0e8eafff","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"0394ee871d7eb0fb28bba907a62c9b57c891e9ed","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"49e6276ec4e4b61f5613e4f12494f09c7dafa517","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"71af46fb409415d1440d87840034836ad7736f3a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a2fc9b86b9aec4c6cc780171113e83a4e15e85934d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a2fc9b86b9aec4c6cc780171113e83a4e15e85934d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb4d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"71af46fb409415d1440d87840034836ad7736f3a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"07add5c2313d34d1dd47dc5d34d8ecd3e9855359","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} +{"address":"71af46fb409415d1440d87840034836ad7736f3a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000025a5ad6c45bea7bbf06ca83c0c24a3dcbd3fc423","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"a94be4c7e40ef8b9c48d5330b24c8985520a1d06","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"25a5ad6c45bea7bbf06ca83c0c24a3dcbd3fc423","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"25a5ad6c45bea7bbf06ca83c0c24a3dcbd3fc423","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"b04f70f677247cb1dcb3b2f2e030d09751847b7b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"b04f70f677247cb1dcb3b2f2e030d09751847b7b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"1670358b5d1d329790ac8173fe73e3df0e8eafff","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"1670358b5d1d329790ac8173fe73e3df0e8eafff","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} +{"address":"0394ee871d7eb0fb28bba907a62c9b57c891e9ed","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"0394ee871d7eb0fb28bba907a62c9b57c891e9ed","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"0394ee871d7eb0fb28bba907a62c9b57c891e9ed","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"49e6276ec4e4b61f5613e4f12494f09c7dafa517","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"49e6276ec4e4b61f5613e4f12494f09c7dafa517","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"73173c6512d21e16573eea5b4c38dcc5dd198200","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"73173c6512d21e16573eea5b4c38dcc5dd198200","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"73173c6512d21e16573eea5b4c38dcc5dd198200","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"1ece701e4d61594bf2891392ad5dfce8680798b2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"1ece701e4d61594bf2891392ad5dfce8680798b2","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"1ece701e4d61594bf2891392ad5dfce8680798b2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"17008e86b36b8bdf9a94793e2c26a75407c18e8a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"17008e86b36b8bdf9a94793e2c26a75407c18e8a","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"17008e86b36b8bdf9a94793e2c26a75407c18e8a","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"17008e86b36b8bdf9a94793e2c26a75407c18e8a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} +{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} +{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} +{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} +{"address":"14a954ea996d7278137d4422012111a6b6ea743f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"14a954ea996d7278137d4422012111a6b6ea743f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"1e18c56b23d5140ad51ae414ddb8e9c4dac3ec40","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"1e18c56b23d5140ad51ae414ddb8e9c4dac3ec40","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"c6c8a709a51ea86d74378cff78a267fc2732d02d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"c6c8a709a51ea86d74378cff78a267fc2732d02d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"2326c52ce0d4b5b97b79d7854f3171c0b4ad065d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"2326c52ce0d4b5b97b79d7854f3171c0b4ad065d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"2326c52ce0d4b5b97b79d7854f3171c0b4ad065d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"7353fac039478974adf794f22f035e2e39cce688","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"7353fac039478974adf794f22f035e2e39cce688","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"4e40ede835101f7a724c504fb5446b13a75d6169","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4e40ede835101f7a724c504fb5446b13a75d6169","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"4e40ede835101f7a724c504fb5446b13a75d6169","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"d8342619a987e670671f5c9c1ed391feac515234","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000f15b0c0a2b16a6d6cd7ebe58d044683b48ee1492"} +{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"00000000000000000000000014d0d94d43082bb7cdabd076334c7d1e07fe5c9d"} +{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","000000000000000000000000189fa0dd6b172ff72504369a60e36d9ddf93e107"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","000000000000000000000000189fa0dd6b172ff72504369a60e36d9ddf93e107"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"d8342619a987e670671f5c9c1ed391feac515234","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","00000000000000000000000090afc188718c7b0d7eb9f04a2d7f3e4f341627b7"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"d8342619a987e670671f5c9c1ed391feac515234","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000090afc188718c7b0d7eb9f04a2d7f3e4f341627b7","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"05fdb95469df3d2f73f489d8d086ea103edbbf90","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000001c182116a7caee069f68c62d8eb49cabd65f5a2d"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} +{"address":"287b6f57f4e17e0352be601220d2a7d27299c1f4","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf50733f7fa64f337ba0f5c261bb06f144c52fee8477d1b457924af55eef0aab118"} +{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb8500733f7fa64f337ba0f5c261bb06f144c52fee8477d1b457924af55eef0aab118"} +{"address":"90afc188718c7b0d7eb9f04a2d7f3e4f341627b7","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf50000000000000000000000000000000000000000000000000000000000000009000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d0403000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf50000000000000000000000000000000000000000000000000000000000000009000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d0403000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf59597d21295525dcfbc440f239603f0b4d995be8f552d2a60afe0f9c249b363a4"} +{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"9597d21295525dcfbc440f239603f0b4d995be8f552d2a60afe0f9c249b363a40000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf50000000000000000000000000000000000000000000000000000000000000002000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d040300000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} +{"address":"25490678deb787a9faec84986af53f3bfd0a975e","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54111b00473925f76788c15a26b76892cfd3f963b260e8e444d988195a12f69fd"} +{"address":"25490678deb787a9faec84986af53f3bfd0a975e","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"4111b00473925f76788c15a26b76892cfd3f963b260e8e444d988195a12f69fd0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d040300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"25490678deb787a9faec84986af53f3bfd0a975e","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf50000000000000000000000000000000000000000000000000000000000000002000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d0403000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} +{"address":"287b6f57f4e17e0352be601220d2a7d27299c1f4","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"430323a23670bf794cc7de3485643ca6fbc80ad3","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"430323a23670bf794cc7de3485643ca6fbc80ad3","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"1c182116a7caee069f68c62d8eb49cabd65f5a2d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"1c182116a7caee069f68c62d8eb49cabd65f5a2d","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} +{"address":"1c182116a7caee069f68c62d8eb49cabd65f5a2d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"f817a41a57b1ecb608133864664310fdc27f1dde","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"ee4a19381711a0eacaac03af6201094562e94f9e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} +{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb8504d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d04034d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"430323a23670bf794cc7de3485643ca6fbc80ad3","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb8504d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d04034d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000009aa0038595afc7f10ab9a2c705dcb4510f3122174d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb8504d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d04034d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000009aa0038595afc7f10ab9a2c705dcb4510f3122174d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb8504d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d04034d20000000000000000000000000000000000000000000000000000000000000"} +{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"430323a23670bf794cc7de3485643ca6fbc80ad3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d0403"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"05fdb95469df3d2f73f489d8d086ea103edbbf90","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} +{"address":"430323a23670bf794cc7de3485643ca6fbc80ad3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000287b6f57f4e17e0352be601220d2a7d27299c1f4","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} +{"address":"189fa0dd6b172ff72504369a60e36d9ddf93e107","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"287b6f57f4e17e0352be601220d2a7d27299c1f4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"287b6f57f4e17e0352be601220d2a7d27299c1f4","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"90afc188718c7b0d7eb9f04a2d7f3e4f341627b7","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"90afc188718c7b0d7eb9f04a2d7f3e4f341627b7","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"1c182116a7caee069f68c62d8eb49cabd65f5a2d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"1c182116a7caee069f68c62d8eb49cabd65f5a2d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} +{"address":"f817a41a57b1ecb608133864664310fdc27f1dde","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f817a41a57b1ecb608133864664310fdc27f1dde","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f817a41a57b1ecb608133864664310fdc27f1dde","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"ee4a19381711a0eacaac03af6201094562e94f9e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"ee4a19381711a0eacaac03af6201094562e94f9e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a589b8d6346a3a1453d65af01f4c2ac2442e0877","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"a589b8d6346a3a1453d65af01f4c2ac2442e0877","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"a589b8d6346a3a1453d65af01f4c2ac2442e0877","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} +{"address":"b7fa9f16653321fa13c27059f7ce9cd76ecb404d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"b7fa9f16653321fa13c27059f7ce9cd76ecb404d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"b7fa9f16653321fa13c27059f7ce9cd76ecb404d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"7f49a4b83a40f66248aa076c70c8ac45c4a77137","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"7f49a4b83a40f66248aa076c70c8ac45c4a77137","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"7f49a4b83a40f66248aa076c70c8ac45c4a77137","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"7f49a4b83a40f66248aa076c70c8ac45c4a77137","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} +{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} +{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} +{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} +{"address":"eb677365eb5ba925c6a6d07acb88062a2b1c38de","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"eb677365eb5ba925c6a6d07acb88062a2b1c38de","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"f61c937341244e193ac8086e27eccf59a1fa6446","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"f61c937341244e193ac8086e27eccf59a1fa6446","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"9e1fcd8b972e29579e82628e73620292a629783d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"9e1fcd8b972e29579e82628e73620292a629783d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"1a43f97c40bb8f8f44cee64fbfa140ef42dbdb21","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"1a43f97c40bb8f8f44cee64fbfa140ef42dbdb21","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"1a43f97c40bb8f8f44cee64fbfa140ef42dbdb21","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"9bcaaa6b7de0e8a24bfb3167419ea88b901bc312","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"9bcaaa6b7de0e8a24bfb3167419ea88b901bc312","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"0880dfaf5b7813a990767c964fe08386e098f1c4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} +{"address":"0880dfaf5b7813a990767c964fe08386e098f1c4","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} +{"address":"0880dfaf5b7813a990767c964fe08386e098f1c4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} diff --git a/contracts/ECRecovery.sol b/contracts/ECRecovery.sol index a1aa2e43f..9f8ea3ec5 100644 --- a/contracts/ECRecovery.sol +++ b/contracts/ECRecovery.sol @@ -9,77 +9,36 @@ pragma solidity ^0.4.11; library ECRecovery { - /** - * @dev Duplicate Solidity's ecrecover, but catching the CALL return value - * @param hash bytes32 messahe hash from which the signature will be recovered - * @param v uint8 signature version - * @param r bytes32 signature r value - * @param s bytes32 signature s value - */ - function safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) constant returns (bool, address) { - // We do our own memory management here. Solidity uses memory offset - // 0x40 to store the current end of memory. We write past it (as - // writes are memory extensions), but don't update the offset so - // Solidity will reuse it. The memory used here is only needed for - // this context. - - bool ret; - address addr; - - assembly { - let size := mload(0x40) - mstore(size, hash) - mstore(add(size, 32), v) - mstore(add(size, 64), r) - mstore(add(size, 96), s) - - // NOTE: we can reuse the request memory because we deal with - // the return code - ret := call(3000, 1, 0, size, 128, size, 32) - addr := mload(size) - } - - return (ret, addr); - } - /** * @dev Recover signer address from a message by using his signature - * @param hash bytes32 messahe hash from which the signature will be recovered - * @param sig bytes signature + * @param hash bytes32 message hash from which the signature will be recovered + * @param sig bytes signature, the siganture is generated using web3.eth.sign() */ function recover(bytes32 hash, bytes sig) constant returns (address) { bytes32 r; bytes32 s; uint8 v; + //Check the signature length if (sig.length != 65) return (address(0)); + // Divide the signature in r, s and v variables assembly { r := mload(add(sig, 32)) s := mload(add(sig, 64)) v := byte(0, mload(add(sig, 96))) } - // albeit non-transactional signatures are not specified by the YP, one would expect it - // to match the YP range of [27, 28] - // - // geth uses [0, 1] and some clients have followed. This might change, see: - // https://github.com/ethereum/go-ethereum/issues/2053 + // Version of signature should be 27 or 28, but 0 and 1 are also possible versions if (v < 27) v += 27; + // If the version is correct return the signer address if (v != 27 && v != 28) return (address(0)); - - bool ret; - address addr; - (ret, addr) = safeRecover(hash, v, r, s); - - if (!ret) - return address(0); else - return addr; + return ecrecover(hash, v, r, s); } } diff --git a/docs/source/ecrecovery.rst b/docs/source/ecrecovery.rst index 0e96819c9..dea50f8a8 100644 --- a/docs/source/ecrecovery.rst +++ b/docs/source/ecrecovery.rst @@ -1,14 +1,9 @@ ECReovery ============================================= -Recover the signer address of messages using elliptic curve signatures. - -safeRecover(bytes32 hash, uint8 v, bytes32 r, bytes32 s) internal returns (bool, address) -""""""""""""""""""""""""""""""""""""""""""""""""" - Returns the signer of the the hash using the signature divided in v, r, and s values. recover(bytes32 hash, bytes sig) internal returns (address) """"""""""""""""""""""""""""""""""""""""""""""""" -Returns the signer of the the hash using the signature that provides the web3.sign() method. +Returns the signer of the the hash using the signature that provides the web3.eth.sign() method. diff --git a/test/ECRecovery.js b/test/ECRecovery.js index e1b0be493..21be10a90 100644 --- a/test/ECRecovery.js +++ b/test/ECRecovery.js @@ -22,28 +22,16 @@ contract('ECRecovery', function(accounts) { assert.equal(signer, await ecrecovery.recover(message, signature)); }); - it("safeRecover v0", async function() { - let signer = '0x58d5f9f841bcf9e502b438cc81d1ea3ba3f8f7f3'; - let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') - let signature = '3690f285f30200dfacd35b9ee9af4beaf2c2f4b7880d93dd9bdf776e8fdbec6a095d00c80e20e95a68c8effc038707dd740aabf94a6ca37c09733874f772d6e000'; - let v = (signature.substring(128,130) == '01') ? 28 : 27; - let r = '0x'+signature.substring(0,64); - let s = '0x'+signature.substring(64,128); - let result = await ecrecovery.safeRecover(message, v, r, s); - assert.equal(signer, result[1]); - assert.equal(true, result[0]); + it("recover using web3.eth.sign()", async function() { + let message = web3.sha3('OpenZeppelin'); + let signature = web3.eth.sign(web3.eth.accounts[0], 'OpenZeppelin'); + assert.equal(web3.eth.accounts[0], await ecrecovery.recover(message, signature)); }); - it("safeRecover v1", async function() { - let signer = '0x0b8124c2429c44e8ca31e7db6f85845abf146415'; - let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') - let signature = '7696f87b3f14e2f1c408c552c0005479bfe35df3a9efb493a2ad2bdf25d95c8c605b6f83699faca9bcbc3c665b434ed8d9c717aa71a1916f054fc41671dd38ad01'; - let v = (signature.substring(128,130) == '01') ? 28 : 27; - let r = '0x'+signature.substring(0,64); - let s = '0x'+signature.substring(64,128); - let result = await ecrecovery.safeRecover(message, v, r, s); - assert.equal(signer, result[1]); - assert.equal(true, result[0]); + it("recover using web3.eth.sign() should return wrong signer", async function() { + let message = web3.sha3('OpenZeppelin'); + let signature = web3.eth.sign(web3.eth.accounts[0], message); + assert.notEqual(web3.eth.accounts[0], await ecrecovery.recover(web3.sha3('OpenZeppelin2'), signature)); }); }); From f8c0fab5d8a812fe79b6cf308feda1dd42aa69b3 Mon Sep 17 00:00:00 2001 From: Augusto Date: Fri, 14 Jul 2017 16:55:55 -0300 Subject: [PATCH 064/160] Fixed tests and few changes on contract comments --- contracts/ECRecovery.sol | 4 ++-- test/ECRecovery.js | 45 ++++++++++++++++++++++++++++++++++------ 2 files changed, 41 insertions(+), 8 deletions(-) diff --git a/contracts/ECRecovery.sol b/contracts/ECRecovery.sol index 9f8ea3ec5..a2f595bfb 100644 --- a/contracts/ECRecovery.sol +++ b/contracts/ECRecovery.sol @@ -11,8 +11,8 @@ library ECRecovery { /** * @dev Recover signer address from a message by using his signature - * @param hash bytes32 message hash from which the signature will be recovered - * @param sig bytes signature, the siganture is generated using web3.eth.sign() + * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address. + * @param sig bytes signature, the signature is generated using web3.eth.sign() */ function recover(bytes32 hash, bytes sig) constant returns (address) { bytes32 r; diff --git a/test/ECRecovery.js b/test/ECRecovery.js index 21be10a90..8bab28c39 100644 --- a/test/ECRecovery.js +++ b/test/ECRecovery.js @@ -1,4 +1,5 @@ var ECRecovery = artifacts.require("../contracts/ECRecovery.sol"); +var utils = require('ethereumjs-util'); contract('ECRecovery', function(accounts) { @@ -9,6 +10,7 @@ contract('ECRecovery', function(accounts) { }); it("recover v0", async function() { + // Signature generated outside testrpc with method web3.eth.sign(signer, message) let signer = '0x2cc1166f6212628a0deef2b33befb2187d35b86c'; let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') let signature = '0x5d99b6f7f6d1f73d1a26497f2b1c89b24c0993913f86e9a2d02cd69887d9c94f3c880358579d811b21dd1b7fd9bb01c1d81d10e69f0384e675c32b39643be89200'; @@ -16,6 +18,7 @@ contract('ECRecovery', function(accounts) { }); it("recover v1", async function() { + // Signature generated outside testrpc with method web3.eth.sign(signer, message) let signer = '0x1e318623ab09fe6de3c9b8672098464aeda9100e'; let message = '0x7dbaf558b0a1a5dc7a67202117ab143c1d8605a983e4a743bc06fcc03162dc0d'; // web3.sha3('OpenZeppelin') let signature = '0x331fe75a821c982f9127538858900d87d3ec1f9f737338ad67cad133fa48feff48e6fa0c18abc62e42820f05943e47af3e9fbe306ce74d64094bdf1691ee53e001'; @@ -23,15 +26,45 @@ contract('ECRecovery', function(accounts) { }); it("recover using web3.eth.sign()", async function() { - let message = web3.sha3('OpenZeppelin'); - let signature = web3.eth.sign(web3.eth.accounts[0], 'OpenZeppelin'); - assert.equal(web3.eth.accounts[0], await ecrecovery.recover(message, signature)); + // Create the signature using account[0] + const signature = web3.eth.sign(web3.eth.accounts[0], web3.sha3('OpenZeppelin')); + + // Testrpc add a prefix to the signed message, we generate the hash of + // 'OpenZeppelin' string repeating testrpc steps + const message = new Buffer(web3.sha3('OpenZeppelin').substring(2), 'hex'); + const prefix = utils.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString()); + const prefixedHash = utils.bufferToHex( utils.sha3(Buffer.concat([prefix, message])) ); + + // Recover the signer address form the generated message and signature. + assert.equal(web3.eth.accounts[0], await ecrecovery.recover(prefixedHash, signature)); }); it("recover using web3.eth.sign() should return wrong signer", async function() { - let message = web3.sha3('OpenZeppelin'); - let signature = web3.eth.sign(web3.eth.accounts[0], message); - assert.notEqual(web3.eth.accounts[0], await ecrecovery.recover(web3.sha3('OpenZeppelin2'), signature)); + // Create the signature using account[0] + const signature = web3.eth.sign(web3.eth.accounts[0], web3.sha3('OpenZeppelin')); + + // Testrpc add a prefix to the signed message, we generate the hash of + // 'Test' string repeating testrpc steps + const message = new Buffer(web3.sha3('Test').substring(2), 'hex'); + const prefix = utils.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString()); + const prefixedHash = utils.bufferToHex( utils.sha3(Buffer.concat([prefix, message])) ); + + // Recover the signer address form the generated message and wrong signature. + assert.notEqual(web3.eth.accounts[0], await ecrecovery.recover(prefixedHash, signature)); + }); + + it("recover should fail when a wrong hash is sent", async function() { + // Create the signature using account[0] + let signature = web3.eth.sign(web3.eth.accounts[0], web3.sha3('OpenZeppelin')); + + // Testrpc add a prefix to the signed message, we generate the hash of + // 'OpenZeppelin' string repeating testrpc steps + let message = new Buffer(web3.sha3('OpenZeppelin'), 'hex'); + let prefix = utils.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString()); + let prefixedHash = utils.sha3(Buffer.concat([prefix, message])); + + // Recover the signer address form the generated message and wrong signature. + assert.equal('0x0000000000000000000000000000000000000000', await ecrecovery.recover(prefixedHash, signature)); }); }); From 4f444279661e7c2e6ff7c442c3d13ae45d33b892 Mon Sep 17 00:00:00 2001 From: AugustoL Date: Mon, 17 Jul 2017 22:47:00 -0300 Subject: [PATCH 065/160] Added function helper, few changes on ECRecover lib --- allFiredEvents | 862 ------------------------------------ contracts/ECRecovery.sol | 13 +- test/ECRecovery.js | 27 +- test/helpers/hashMessage.js | 8 + 4 files changed, 22 insertions(+), 888 deletions(-) delete mode 100644 allFiredEvents create mode 100644 test/helpers/hashMessage.js diff --git a/allFiredEvents b/allFiredEvents deleted file mode 100644 index a31b2a17b..000000000 --- a/allFiredEvents +++ /dev/null @@ -1,862 +0,0 @@ -{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"82d9f12304305445a831ef0f88a2c7ec22cc5312","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000aa4d1f1d2b5726752f32f4709d95e23311dfcc17"} -{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000195b000ba8a8ffeb6a4c0ae7fe8adc7e82d30e28"} -{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","00000000000000000000000062897318f5a64072705a17a9ab03bb530c53bf3f"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","00000000000000000000000062897318f5a64072705a17a9ab03bb530c53bf3f"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"82d9f12304305445a831ef0f88a2c7ec22cc5312","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","00000000000000000000000084463f555f4b40501561b0fd97ad560d1e4b53eb"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"82d9f12304305445a831ef0f88a2c7ec22cc5312","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000084463f555f4b40501561b0fd97ad560d1e4b53eb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"c8dfffd09a52c2a40154c59ffde9bedcc00df2c0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"55a59be58222085bdc19a7c6bf4257b963f85d18","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104f2e470480daefb4d0fa70eb8f75d55acd2ea5aea5a0b8deb063b1d4c2cb4bc9"} -{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b99644f2e470480daefb4d0fa70eb8f75d55acd2ea5aea5a0b8deb063b1d4c2cb4bc9"} -{"address":"84463f555f4b40501561b0fd97ad560d1e4b53eb","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae1000000000000000000000000000000000000000000000000000000000000000090000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc83000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae1000000000000000000000000000000000000000000000000000000000000000090000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc83000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10649788d493a4b35bd8f7a48faf841166c63222ee16435c9916c0f6cc21e218e5"} -{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"649788d493a4b35bd8f7a48faf841166c63222ee16435c9916c0f6cc21e218e500000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae1000000000000000000000000000000000000000000000000000000000000000020000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc8300000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} -{"address":"fc4eee287aefe63b64e1cd04c356eb305c7d6bed","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10dbc3123797a4b2cc9de4ff4548302436d3aebe5663132b2b61268dc0328ba11c"} -{"address":"fc4eee287aefe63b64e1cd04c356eb305c7d6bed","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"dbc3123797a4b2cc9de4ff4548302436d3aebe5663132b2b61268dc0328ba11c00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc8300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"fc4eee287aefe63b64e1cd04c356eb305c7d6bed","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae1000000000000000000000000000000000000000000000000000000000000000020000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc83000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"55a59be58222085bdc19a7c6bf4257b963f85d18","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"f764ee7864bcbc51ed076bcbac45fdcb8a1d4b49","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"f764ee7864bcbc51ed076bcbac45fdcb8a1d4b49","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"2d0df5b85e9d818cb679a65c5d342330163a566f","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"4453c0e244ead75f69e81768f4cd0a9f1fbd509d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b99644d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc834d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f764ee7864bcbc51ed076bcbac45fdcb8a1d4b49","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b99644d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc834d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000004ef7ce6cc8a5698cddb2c3767b1c6e27c2169b604d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b99644d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc834d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000004ef7ce6cc8a5698cddb2c3767b1c6e27c2169b604d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae104d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b99644d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc834d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"2f49870092c3deb59b04fc26ad6734cd3d555441","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"f764ee7864bcbc51ed076bcbac45fdcb8a1d4b49","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"f399d2e270a4ada24936e6c4528de1af5d175f51","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","0000000000000000000000008cc05272287c7eef27305db45ff579b6b416bc83"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"c8dfffd09a52c2a40154c59ffde9bedcc00df2c0","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} -{"address":"62897318f5a64072705a17a9ab03bb530c53bf3f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"55a59be58222085bdc19a7c6bf4257b963f85d18","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"55a59be58222085bdc19a7c6bf4257b963f85d18","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"84463f555f4b40501561b0fd97ad560d1e4b53eb","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"84463f555f4b40501561b0fd97ad560d1e4b53eb","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"cfc3be7af90be23ab30e471ea3d70202f2bf5b48","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"c3f1a16d9a12a9790fc6cdf1745f6ecc2853d0e0","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"3746b9f369e8ba70541c61f796577fab96895f8f","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} -{"address":"2d0df5b85e9d818cb679a65c5d342330163a566f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"2d0df5b85e9d818cb679a65c5d342330163a566f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"2d0df5b85e9d818cb679a65c5d342330163a566f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4453c0e244ead75f69e81768f4cd0a9f1fbd509d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4453c0e244ead75f69e81768f4cd0a9f1fbd509d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"fa1087bac02bad49cf56855d3d1dcf9225d3d529","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"fa1087bac02bad49cf56855d3d1dcf9225d3d529","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"fa1087bac02bad49cf56855d3d1dcf9225d3d529","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"5c3659c6908bb08e3d79e1a3ef2d526c02b41698","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"5c3659c6908bb08e3d79e1a3ef2d526c02b41698","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"5c3659c6908bb08e3d79e1a3ef2d526c02b41698","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"d9e3952fcce8c3db1cb859ca0baa1351dd7f074a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"d9e3952fcce8c3db1cb859ca0baa1351dd7f074a","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"d9e3952fcce8c3db1cb859ca0baa1351dd7f074a","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"d9e3952fcce8c3db1cb859ca0baa1351dd7f074a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} -{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} -{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} -{"address":"8b3320330cadb2177de79bd03a32f6099597ace0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000b06c36b89ba04504713862b6823c5847252368fd"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} -{"address":"8681d39ed567fb83c6a012d58a2d36d49304790a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"8681d39ed567fb83c6a012d58a2d36d49304790a","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"75e5a5bedfdc6d31e60b8383157b0c646876bad0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"75e5a5bedfdc6d31e60b8383157b0c646876bad0","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"6974a421de4374dc55020f11dde813e7531475d1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"6974a421de4374dc55020f11dde813e7531475d1","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"5f29c05f7a99d70af2c024bc04a7c79d18374b0f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"5f29c05f7a99d70af2c024bc04a7c79d18374b0f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"5f29c05f7a99d70af2c024bc04a7c79d18374b0f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4978e8fd892c9e7dbd67a8e9e0af4e93fb78fa50","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4978e8fd892c9e7dbd67a8e9e0af4e93fb78fa50","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1144c0c6f524554ffd329f63bcf3512f149822c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f1144c0c6f524554ffd329f63bcf3512f149822c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1144c0c6f524554ffd329f63bcf3512f149822c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db2d2d204bca84e81890d3ad110a19a0757b9964","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"f764ee7864bcbc51ed076bcbac45fdcb8a1d4b49","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000055a59be58222085bdc19a7c6bf4257b963f85d18","00000000000000000000000093731c3e654feeac6a1703f6b913a9181aacae10"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"971f3f4fcaa10958219f8390a2ac6eb40d1eaf83","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000613386c9e4acfad7e3b59019403c8cc108985341"} -{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"00000000000000000000000050536f9ba86e3c7017931c930b2cddd318198d48"} -{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000f786c8a84d0c763618417cf824d1729f24d3b4f1"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000f786c8a84d0c763618417cf824d1729f24d3b4f1"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"971f3f4fcaa10958219f8390a2ac6eb40d1eaf83","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000ca269af251c5fce88a845bf796d72c9abf5457a8"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"971f3f4fcaa10958219f8390a2ac6eb40d1eaf83","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000ca269af251c5fce88a845bf796d72c9abf5457a8","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"83fefb30fdc7d637d5098a4bb63fd37fd6eca735","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","0000000000000000000000005775fd524967d0fd2c612c9ca72daf344ceaf4b6"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"9c7d8d0fe42598256a5dea696779b1d8b4d310d6","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258a2f40ad5b852188fb150c01c34926f201070261434de8eed7e3a997e0c6dc2b5"} -{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59a2f40ad5b852188fb150c01c34926f201070261434de8eed7e3a997e0c6dc2b5"} -{"address":"ca269af251c5fce88a845bf796d72c9abf5457a8","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2580000000000000000000000000000000000000000000000000000000000000009000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2580000000000000000000000000000000000000000000000000000000000000009000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258b486a494a702eceb00a06919652cb6a14b15a554fbd1a559b6db9a474e30f7ae"} -{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"b486a494a702eceb00a06919652cb6a14b15a554fbd1a559b6db9a474e30f7ae000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2580000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} -{"address":"5648da6b841482c69930365f43641e401287503e","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2586253a6a7f6d903b1ac1d69f135a27c189738113ba8f6ab3c328244883982a955"} -{"address":"5648da6b841482c69930365f43641e401287503e","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"6253a6a7f6d903b1ac1d69f135a27c189738113ba8f6ab3c328244883982a955000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"5648da6b841482c69930365f43641e401287503e","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2580000000000000000000000000000000000000000000000000000000000000002000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"9c7d8d0fe42598256a5dea696779b1d8b4d310d6","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"38b303dd297d8f0a17ebad1def8104fcaf97bcff","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"38b303dd297d8f0a17ebad1def8104fcaf97bcff","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"5775fd524967d0fd2c612c9ca72daf344ceaf4b6","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"5775fd524967d0fd2c612c9ca72daf344ceaf4b6","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"5775fd524967d0fd2c612c9ca72daf344ceaf4b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"bbf9c301f744e066b0da0e5538e0bca2b587c4cc","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"2c2f9229c9e2df353fcf512025a087f82009247e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f594d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"38b303dd297d8f0a17ebad1def8104fcaf97bcff","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f594d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a2617e6934554f5ad30ebc392d79b77fa9e8beb74d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f594d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a2617e6934554f5ad30ebc392d79b77fa9e8beb74d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e2584d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f594d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"70a76f15ebc4eb0a4cc9dca372327639d109e07b","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"38b303dd297d8f0a17ebad1def8104fcaf97bcff","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"27480de7e410af1a0bd97e4d046993aaac62f004","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000dde21def93dd91936dc14e8f30e1fe39513d2f5f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"83fefb30fdc7d637d5098a4bb63fd37fd6eca735","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} -{"address":"38b303dd297d8f0a17ebad1def8104fcaf97bcff","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000009c7d8d0fe42598256a5dea696779b1d8b4d310d6","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"f786c8a84d0c763618417cf824d1729f24d3b4f1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"9c7d8d0fe42598256a5dea696779b1d8b4d310d6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"9c7d8d0fe42598256a5dea696779b1d8b4d310d6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"ca269af251c5fce88a845bf796d72c9abf5457a8","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"ca269af251c5fce88a845bf796d72c9abf5457a8","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f1b12d06dbef66231121b6ef7cfad09278a12b9a","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"5775fd524967d0fd2c612c9ca72daf344ceaf4b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"5775fd524967d0fd2c612c9ca72daf344ceaf4b6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"0761e43fee8dfe5473fd577406772d80a030bc68","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} -{"address":"bbf9c301f744e066b0da0e5538e0bca2b587c4cc","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"bbf9c301f744e066b0da0e5538e0bca2b587c4cc","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"bbf9c301f744e066b0da0e5538e0bca2b587c4cc","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"2c2f9229c9e2df353fcf512025a087f82009247e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"2c2f9229c9e2df353fcf512025a087f82009247e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f91843c32ae1bd96af02764bd38bb3df634d748c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f91843c32ae1bd96af02764bd38bb3df634d748c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f91843c32ae1bd96af02764bd38bb3df634d748c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"f30f0f7e5c20c5209612b98a92cd3b4cb92a44f3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f30f0f7e5c20c5209612b98a92cd3b4cb92a44f3","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f30f0f7e5c20c5209612b98a92cd3b4cb92a44f3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"2de15f58ff160a60dcb5be643c8d3ef8ecbec51f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"2de15f58ff160a60dcb5be643c8d3ef8ecbec51f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"2de15f58ff160a60dcb5be643c8d3ef8ecbec51f","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"2de15f58ff160a60dcb5be643c8d3ef8ecbec51f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} -{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} -{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} -{"address":"a75f037c45c216752539eba601413721f4349c75","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","0000000000000000000000008cab6c7620af6efc0a408bca4dbd5e9eac9d0f2e"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} -{"address":"83f3a23a37591134c95fb1c9083850741daa978b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"83f3a23a37591134c95fb1c9083850741daa978b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"79a0643e1b4ba84f08993d48ee75621178cd7929","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"79a0643e1b4ba84f08993d48ee75621178cd7929","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"25653f09a42bef86dc0e6d8cf0c2bad07277f4a6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"25653f09a42bef86dc0e6d8cf0c2bad07277f4a6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"e74329a7e18888ef28edf5728806e584b0eada93","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"e74329a7e18888ef28edf5728806e584b0eada93","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"e74329a7e18888ef28edf5728806e584b0eada93","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"35c514018f470c3e466cd43925fab1b396bcd867","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"35c514018f470c3e466cd43925fab1b396bcd867","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"d6dfb027fc643746c001acbbb573335d72733c04","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"d6dfb027fc643746c001acbbb573335d72733c04","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000669ab869e8f5d7777efd181582641eaaf733e258","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"d6dfb027fc643746c001acbbb573335d72733c04","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000751c9d5f1bd30d468caf2dd3a18449fb38e14f59","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"d6b58d286c65ecd1076d4e80aef53ac4b2bceaef","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"0000000000000000000000008883a07aa2dfd77006bcb1bc7724c289f9aaeb80"} -{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000b478afa24337b06fd8be6fdf9b41323a279131f6"} -{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000659fe89c8e908c5d78fb2ae1ac2ce2486cb5ec6f"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000659fe89c8e908c5d78fb2ae1ac2ce2486cb5ec6f"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"d6b58d286c65ecd1076d4e80aef53ac4b2bceaef","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","0000000000000000000000005a2ef6587ec757eb095dba88be6ecba2d83d8a72"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"d6b58d286c65ecd1076d4e80aef53ac4b2bceaef","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a2ef6587ec757eb095dba88be6ecba2d83d8a72","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"d1b3e6c6008669863378d082b25116bbb2b4684f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000010d475a4cea44876d4296cc6c0fa628ceebd185"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"b60de24ccde71272d057461a3caef49beaf4ba91","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4e27422f2c6a2c681d86a13bc9aeb63114bed93fbd2326602c1d911d914001f36"} -{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670ee27422f2c6a2c681d86a13bc9aeb63114bed93fbd2326602c1d911d914001f36"} -{"address":"5a2ef6587ec757eb095dba88be6ecba2d83d8a72","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a400000000000000000000000000000000000000000000000000000000000000090000000000000000000000001186b4143a4da37ee58448f397683e04274d320d000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a400000000000000000000000000000000000000000000000000000000000000090000000000000000000000001186b4143a4da37ee58448f397683e04274d320d000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a49aca0e2063424c30734582e38f37e56cbef4fdf5ac6f90bf279759257529ec36"} -{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"9aca0e2063424c30734582e38f37e56cbef4fdf5ac6f90bf279759257529ec360000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a400000000000000000000000000000000000000000000000000000000000000020000000000000000000000001186b4143a4da37ee58448f397683e04274d320d00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} -{"address":"0a56550bc4d6aa084f3a4174c82a8b18adba3c5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a46d87f7405664965d53077f4e17c909ec451f04c05277fd0da012501215264e48"} -{"address":"0a56550bc4d6aa084f3a4174c82a8b18adba3c5d","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"6d87f7405664965d53077f4e17c909ec451f04c05277fd0da012501215264e480000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4000000000000000000000000000000000000000000000000000000000000000b0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"0a56550bc4d6aa084f3a4174c82a8b18adba3c5d","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a400000000000000000000000000000000000000000000000000000000000000020000000000000000000000001186b4143a4da37ee58448f397683e04274d320d000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"b60de24ccde71272d057461a3caef49beaf4ba91","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"769f0e90da389f26e1b6b7d86f57eaf593bdbe7b","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"769f0e90da389f26e1b6b7d86f57eaf593bdbe7b","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"010d475a4cea44876d4296cc6c0fa628ceebd185","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"010d475a4cea44876d4296cc6c0fa628ceebd185","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"010d475a4cea44876d4296cc6c0fa628ceebd185","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"3205fc3effc7727dbe0b8d41cbe85dfce6ad5489","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"643338bdcff7253d64f46d925d607f8e47e5d88f","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"769f0e90da389f26e1b6b7d86f57eaf593bdbe7b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000006e71b2a87b6170dac213cdf0b1e65b8673700e154d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000006e71b2a87b6170dac213cdf0b1e65b8673700e154d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a44d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"d531b7f9e4ea8ae05c4615d5201371fbad0fbda4","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"769f0e90da389f26e1b6b7d86f57eaf593bdbe7b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"0de98e3ada86d7a64c8f837c740e4336d4369afb","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","0000000000000000000000001186b4143a4da37ee58448f397683e04274d320d"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"d1b3e6c6008669863378d082b25116bbb2b4684f","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} -{"address":"769f0e90da389f26e1b6b7d86f57eaf593bdbe7b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000b60de24ccde71272d057461a3caef49beaf4ba91","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"659fe89c8e908c5d78fb2ae1ac2ce2486cb5ec6f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"b60de24ccde71272d057461a3caef49beaf4ba91","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"b60de24ccde71272d057461a3caef49beaf4ba91","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"5a2ef6587ec757eb095dba88be6ecba2d83d8a72","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"5a2ef6587ec757eb095dba88be6ecba2d83d8a72","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"8bd76d5124068da7080a86b711b11a1a1371b719","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"010d475a4cea44876d4296cc6c0fa628ceebd185","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"010d475a4cea44876d4296cc6c0fa628ceebd185","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"543ace29d6af9a6539174be234e4d17f1d09da08","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} -{"address":"3205fc3effc7727dbe0b8d41cbe85dfce6ad5489","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"3205fc3effc7727dbe0b8d41cbe85dfce6ad5489","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"3205fc3effc7727dbe0b8d41cbe85dfce6ad5489","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"643338bdcff7253d64f46d925d607f8e47e5d88f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"643338bdcff7253d64f46d925d607f8e47e5d88f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"17a7af37bc2c63bb9a919317e61720769640bc87","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"17a7af37bc2c63bb9a919317e61720769640bc87","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"17a7af37bc2c63bb9a919317e61720769640bc87","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"a003c072e7dda4adaa9ac2fd3fd5758423dc9716","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a003c072e7dda4adaa9ac2fd3fd5758423dc9716","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a003c072e7dda4adaa9ac2fd3fd5758423dc9716","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"e787c67dbba574a6d8d9b7233fa543b700413252","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"e787c67dbba574a6d8d9b7233fa543b700413252","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"e787c67dbba574a6d8d9b7233fa543b700413252","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"e787c67dbba574a6d8d9b7233fa543b700413252","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} -{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} -{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} -{"address":"4277c54bf965e6bacc96d5329e368caf76770f48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","0000000000000000000000003ac73a95aa251b6d22718eca085d055db6756556"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} -{"address":"8de9d434fa29d4f1d51d7952c9b9c708e158654b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"8de9d434fa29d4f1d51d7952c9b9c708e158654b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"31dd34f5eba23ca434a642a211c03112bc7353af","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"31dd34f5eba23ca434a642a211c03112bc7353af","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f8f3d5a40e41df7fee3e0ba2b07a196dbf0174b0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f8f3d5a40e41df7fee3e0ba2b07a196dbf0174b0","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"debdac9cf398acb482e0c53df2ee0c78ab756cc1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"debdac9cf398acb482e0c53df2ee0c78ab756cc1","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"debdac9cf398acb482e0c53df2ee0c78ab756cc1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"04d4a11de7fd5507a45b8de76a01b7732750f393","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"04d4a11de7fd5507a45b8de76a01b7732750f393","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"57f5a8d2424398a4a1d4c6a25176303d22fc45b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"57f5a8d2424398a4a1d4c6a25176303d22fc45b6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000000f3c120619230a996dbb50fdde97cb6501aff1a4","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"57f5a8d2424398a4a1d4c6a25176303d22fc45b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000746dfd1f6946914a0af6a2e12acfd1a17f79670e","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","00000000000000000000000004eee06dca15b8eef8a9974dd1529ecd154100bc"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"efddee9b2134fd5e557e5fd34d99556f85115b6a","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000470161a28d16e508399e6bac2233952f2ea84ae6"} -{"address":"96e107e5c1e55011f6b6a8b4bb09a5aae1308e6d","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000048d0f24f25b154fb26505441c1da351259c1b32"} -{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","000000000000000000000000dc3719efd9f35de3d40029dc5d895882b005db65"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","000000000000000000000000dc3719efd9f35de3d40029dc5d895882b005db65"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"efddee9b2134fd5e557e5fd34d99556f85115b6a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","0000000000000000000000001e008608163a87892c9ed42c4303f6500e706d03"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"efddee9b2134fd5e557e5fd34d99556f85115b6a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001e008608163a87892c9ed42c4303f6500e706d03","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"5b5629b224e8c382ec5464ec4e438525dec7953a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","00000000000000000000000019deb94a1bda9a72dca37adac2aa42aa2c38856e"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"18ad568185549fb89acc285dc2518532eb33018e","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157b27f90807c883698983e1fd35f0e6603575d2602f56a4be43e402dee08bbd3f1"} -{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000004eee06dca15b8eef8a9974dd1529ecd154100bcb27f90807c883698983e1fd35f0e6603575d2602f56a4be43e402dee08bbd3f1"} -{"address":"1e008608163a87892c9ed42c4303f6500e706d03","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001570000000000000000000000000000000000000000000000000000000000000009000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"96e107e5c1e55011f6b6a8b4bb09a5aae1308e6d","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001570000000000000000000000000000000000000000000000000000000000000009000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"96e107e5c1e55011f6b6a8b4bb09a5aae1308e6d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001578287eee7810aa93c7e23638d6511f581ef1670ec68f44cc95562776e88a627d9"} -{"address":"96e107e5c1e55011f6b6a8b4bb09a5aae1308e6d","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"8287eee7810aa93c7e23638d6511f581ef1670ec68f44cc95562776e88a627d900000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001570000000000000000000000000000000000000000000000000000000000000002000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} -{"address":"cd6c389eb80e85813b26750e49ebcfe84c471857","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157206ff9ae02a6ede41551cfb93d772767fc3a65ee99fb72a4a3e4d1f57379bb3e"} -{"address":"cd6c389eb80e85813b26750e49ebcfe84c471857","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"206ff9ae02a6ede41551cfb93d772767fc3a65ee99fb72a4a3e4d1f57379bb3e00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"cd6c389eb80e85813b26750e49ebcfe84c471857","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001570000000000000000000000000000000000000000000000000000000000000002000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"18ad568185549fb89acc285dc2518532eb33018e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"96e107e5c1e55011f6b6a8b4bb09a5aae1308e6d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"c0be2c3daf7429d960d9b7de1c6842c591daab03","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"c0be2c3daf7429d960d9b7de1c6842c591daab03","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"597f7d3c869dc79c3bd99a1be18e26678d8038f9","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"597f7d3c869dc79c3bd99a1be18e26678d8038f9","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"d24bb1edd81430cead459546ab9c1c277fa01f5e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","00000000000000000000000004eee06dca15b8eef8a9974dd1529ecd154100bc"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"19deb94a1bda9a72dca37adac2aa42aa2c38856e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"19deb94a1bda9a72dca37adac2aa42aa2c38856e","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"19deb94a1bda9a72dca37adac2aa42aa2c38856e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a00157","00000000000000000000000004eee06dca15b8eef8a9974dd1529ecd154100bc"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"47116d9c482edd77995f3b6e10dd6492d48275f5","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"cde8a71e537bb0ccbac44ac88469b927e59609c0","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001574d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000004eee06dca15b8eef8a9974dd1529ecd154100bc4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"0de9cbd41f21a4dd8447f4805faa2ec9ce17c37d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000392cf3b934a6c53f342bc60432f78354919c8bcd4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"597f7d3c869dc79c3bd99a1be18e26678d8038f9","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000000f53583572b7338a0a4e321244a0f2a50a001574d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"60a9d56d3059b2afed86fc8ae3b3660305f119d5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c","0000000000000000000000006b34157689f18e4514a68a0d8af8ab992e262571"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"9b42f0b60d30cf34a462f8228600e2bf583ba0c5","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000d315d5c94319d2e9907627e542046d3c7a561352"} -{"address":"0c230fcdef72761c4976c3dfb3ec4d24195547f3","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000ec52c56d98ab795ccd6bc0f6129d7beae5b3592b"} -{"address":"60a9d56d3059b2afed86fc8ae3b3660305f119d5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c","000000000000000000000000b68b4909d83b7cd3237cd6f7b2750f5c49ec063a"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"60a9d56d3059b2afed86fc8ae3b3660305f119d5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c","000000000000000000000000b68b4909d83b7cd3237cd6f7b2750f5c49ec063a"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"9b42f0b60d30cf34a462f8228600e2bf583ba0c5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c","000000000000000000000000934165a93d5b0cde936c51efce123b9e1d1e20c5"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"9b42f0b60d30cf34a462f8228600e2bf583ba0c5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000934165a93d5b0cde936c51efce123b9e1d1e20c5","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"a15f9fd21c157cd8964ea75261c2415002bfce48","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c","000000000000000000000000f433f34a114dff8876f20479857c70d809f27c1a"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"aa22e8ac330e641d3a842c03806bdb8ee1846712","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"60a9d56d3059b2afed86fc8ae3b3660305f119d5","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000094bdec21d1987b76a9ecc5324cd567862067719c7f143b9b6bed1a89206902eb5f73967ecd9eed6896f22385c69f0137cafaf160"} -{"address":"60a9d56d3059b2afed86fc8ae3b3660305f119d5","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000006b34157689f18e4514a68a0d8af8ab992e2625717f143b9b6bed1a89206902eb5f73967ecd9eed6896f22385c69f0137cafaf160"} -{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"ab381c4137becbec91bbe341648311e48a9be63e","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000bdc22e9fa6e194dc0ec6092fc4028f13fd51052b"} -{"address":"18baef07e314588448986d072701b22b901c5613","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000c14bf3f95b2076ef6411a080ac6398a01a1b7caf"} -{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000c8d120617859a450139aeceafb660a4e1cbec8e0"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000c8d120617859a450139aeceafb660a4e1cbec8e0"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"ab381c4137becbec91bbe341648311e48a9be63e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","0000000000000000000000008da875ea54274c00dbedef7c4e7872ca49053e08"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"ab381c4137becbec91bbe341648311e48a9be63e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008da875ea54274c00dbedef7c4e7872ca49053e08","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"2d99e516ffd00862bedc96808063a5ef61717be5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","00000000000000000000000090845948988300fe5c320e6b2130166ff6d2e54c"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"db8a6c502f2a32eee73d2bd4578693f109037d5d","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e546755822c8cc38d56c874f1350391658c1d124ac8f33b043a5f6174610625c9eb51"} -{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a55822c8cc38d56c874f1350391658c1d124ac8f33b043a5f6174610625c9eb51"} -{"address":"8da875ea54274c00dbedef7c4e7872ca49053e08","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467000000000000000000000000000000000000000000000000000000000000000900000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"18baef07e314588448986d072701b22b901c5613","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467000000000000000000000000000000000000000000000000000000000000000900000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"18baef07e314588448986d072701b22b901c5613","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54675930ca6a167eebdac715c86b5c7ed23888ddb5108eb53773dc20d07b3df34b32"} -{"address":"18baef07e314588448986d072701b22b901c5613","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"5930ca6a167eebdac715c86b5c7ed23888ddb5108eb53773dc20d07b3df34b3200000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467000000000000000000000000000000000000000000000000000000000000000200000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} -{"address":"a658c2b32d4a8d25add1c433002233c63a4933b1","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54679ff4e064c5661374f76befdd80d77967705b06a65486f9261f1c108cede4fa51"} -{"address":"a658c2b32d4a8d25add1c433002233c63a4933b1","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"9ff4e064c5661374f76befdd80d77967705b06a65486f9261f1c108cede4fa5100000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467000000000000000000000000000000000000000000000000000000000000000b00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"a658c2b32d4a8d25add1c433002233c63a4933b1","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467000000000000000000000000000000000000000000000000000000000000000200000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"db8a6c502f2a32eee73d2bd4578693f109037d5d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"18baef07e314588448986d072701b22b901c5613","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"a00c71a6a59eab0444538fe534040222fd40199e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"a00c71a6a59eab0444538fe534040222fd40199e","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"90845948988300fe5c320e6b2130166ff6d2e54c","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"90845948988300fe5c320e6b2130166ff6d2e54c","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"90845948988300fe5c320e6b2130166ff6d2e54c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"e779444c5ec8a2e1a33ad1319eee9549282ea16b","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"d3ea16e567e9f33c4a7aafee4d7d89d944126275","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"a00c71a6a59eab0444538fe534040222fd40199e","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000009b257351d0a6d861560e8024890a95403dfc41da4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000009b257351d0a6d861560e8024890a95403dfc41da4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e54674d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"f707f65226294a03ed1bc35ea8c27c62fd07985d","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"a00c71a6a59eab0444538fe534040222fd40199e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"18baef07e314588448986d072701b22b901c5613","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"18baef07e314588448986d072701b22b901c5613","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","00000000000000000000000022f743607f02f6613e16bf37e4f35d8ba983f8fb"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"2d99e516ffd00862bedc96808063a5ef61717be5","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} -{"address":"a00c71a6a59eab0444538fe534040222fd40199e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000db8a6c502f2a32eee73d2bd4578693f109037d5d","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"c8d120617859a450139aeceafb660a4e1cbec8e0","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"db8a6c502f2a32eee73d2bd4578693f109037d5d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"db8a6c502f2a32eee73d2bd4578693f109037d5d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"8da875ea54274c00dbedef7c4e7872ca49053e08","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"8da875ea54274c00dbedef7c4e7872ca49053e08","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"15c59cec28de9f381a11f0bdb68ec25c4ea94df2","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"90845948988300fe5c320e6b2130166ff6d2e54c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"90845948988300fe5c320e6b2130166ff6d2e54c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"6e02dd6dc8f7024897aaa309b94e6a6ba46b6499","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} -{"address":"e779444c5ec8a2e1a33ad1319eee9549282ea16b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"e779444c5ec8a2e1a33ad1319eee9549282ea16b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"e779444c5ec8a2e1a33ad1319eee9549282ea16b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"d3ea16e567e9f33c4a7aafee4d7d89d944126275","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"d3ea16e567e9f33c4a7aafee4d7d89d944126275","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"0eeac8f5729516fb3c2a9c7a219e305e5be6d72a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"0eeac8f5729516fb3c2a9c7a219e305e5be6d72a","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"0eeac8f5729516fb3c2a9c7a219e305e5be6d72a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"fc03ecc32645eb19b1d02bd2bb90568480d5c228","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"fc03ecc32645eb19b1d02bd2bb90568480d5c228","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"fc03ecc32645eb19b1d02bd2bb90568480d5c228","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a1dc7d13616c20ceeaa4dd9537a559e7a204b268","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a1dc7d13616c20ceeaa4dd9537a559e7a204b268","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a1dc7d13616c20ceeaa4dd9537a559e7a204b268","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a1dc7d13616c20ceeaa4dd9537a559e7a204b268","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} -{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} -{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} -{"address":"c1d9751e6ffe4674fc58fa94e767838d38fa665b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000f444ea7d2b4d85e973f422199bdd68cba66ba81c"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} -{"address":"dc2883461df64b1569a79de2a649709472cf1538","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"dc2883461df64b1569a79de2a649709472cf1538","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"dde27236c3c218494b716c78a827ae456acb6861","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"dde27236c3c218494b716c78a827ae456acb6861","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"02a8b18eeb0baba202cf85714dc542e571ff7129","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"02a8b18eeb0baba202cf85714dc542e571ff7129","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"817256731c00f51587e09fb8bbf2625f82cc1496","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"817256731c00f51587e09fb8bbf2625f82cc1496","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"817256731c00f51587e09fb8bbf2625f82cc1496","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f92d41b4fc2a6b6574f36e43c77d81923c2469a3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f92d41b4fc2a6b6574f36e43c77d81923c2469a3","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f85776f5971c872f4cfb5053c55f5865c68cd0bf","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f85776f5971c872f4cfb5053c55f5865c68cd0bf","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","00000000000000000000000038c02ba7a050ff2d7f0c19f640ac2366893e5467","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f85776f5971c872f4cfb5053c55f5865c68cd0bf","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000af69c97c18fe17e1cce7245e74bab20c3aee675a","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"b35f4ea29c412f20d362216f7e5a416a97465dce","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"0000000000000000000000003ad3291347e779337e2488f5b101e729c2988531"} -{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000b660f2a87d7469c1cee13108939c768627d80738"} -{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","000000000000000000000000e7a4a0027de85aff816b88fcbea8212eaf30a562"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","000000000000000000000000e7a4a0027de85aff816b88fcbea8212eaf30a562"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"b35f4ea29c412f20d362216f7e5a416a97465dce","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000063622723ba468472d9b37b0fbdb11d3b337a554f"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"b35f4ea29c412f20d362216f7e5a416a97465dce","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000063622723ba468472d9b37b0fbdb11d3b337a554f","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"4da22cf678345808c1eea7205f84e672f7ec0b9a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","000000000000000000000000c8a1b6f3c07850b303925c6f8bcfdca34455a9cb"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"27aff37df87ea18170c77cd5552c8158092d3eae","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578913fe22881e423bc626a2e074b01f11b4b6a7e5833d8f81306e97e50b71e53855a"} -{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c413fe22881e423bc626a2e074b01f11b4b6a7e5833d8f81306e97e50b71e53855a"} -{"address":"63622723ba468472d9b37b0fbdb11d3b337a554f","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578910000000000000000000000000000000000000000000000000000000000000009000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578910000000000000000000000000000000000000000000000000000000000000009000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891610770262379e306955972ac72aeb33b39c70bb83175756aec784b62b30d8a98"} -{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"610770262379e306955972ac72aeb33b39c70bb83175756aec784b62b30d8a980000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578910000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} -{"address":"231985d109167f4421a1fdd39ece87db901f3a4b","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a5789144144fc225a1ca02dd49cdfc0fa24fc266bb5ae54bcac37fd93ceb770794910f"} -{"address":"231985d109167f4421a1fdd39ece87db901f3a4b","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"44144fc225a1ca02dd49cdfc0fa24fc266bb5ae54bcac37fd93ceb770794910f0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"231985d109167f4421a1fdd39ece87db901f3a4b","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578910000000000000000000000000000000000000000000000000000000000000002000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"27aff37df87ea18170c77cd5552c8158092d3eae","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"6e389549363a8188c62e7653ce6cc27f62352a79","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"6e389549363a8188c62e7653ce6cc27f62352a79","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"c8a1b6f3c07850b303925c6f8bcfdca34455a9cb","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"c8a1b6f3c07850b303925c6f8bcfdca34455a9cb","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"c8a1b6f3c07850b303925c6f8bcfdca34455a9cb","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"c53ce319252f8e8cc5fd0d291ac6c684844abbe3","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"025a6bdcfa4b33874d0868eb4bd34dd7f687f6c6","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c414d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"6e389549363a8188c62e7653ce6cc27f62352a79","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c414d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000d184098a549b9385e0953a34801c9f4a8733b22a4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c414d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000d184098a549b9385e0953a34801c9f4a8733b22a4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a578914d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c414d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"b1ed838b36b779642f049df070ef02b56e6d1d2a","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"6e389549363a8188c62e7653ce6cc27f62352a79","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"42cadce1470ea884c372824ffe1f5eba253a1a72","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","000000000000000000000000bf247c87e1e26f837e4cb24eeb6e4dfcea12603b"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"4da22cf678345808c1eea7205f84e672f7ec0b9a","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} -{"address":"6e389549363a8188c62e7653ce6cc27f62352a79","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000027aff37df87ea18170c77cd5552c8158092d3eae","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"e7a4a0027de85aff816b88fcbea8212eaf30a562","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"27aff37df87ea18170c77cd5552c8158092d3eae","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"27aff37df87ea18170c77cd5552c8158092d3eae","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"63622723ba468472d9b37b0fbdb11d3b337a554f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"63622723ba468472d9b37b0fbdb11d3b337a554f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"9f144badc65a82463507fc7348da0c711fccdf5d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8a1b6f3c07850b303925c6f8bcfdca34455a9cb","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"c8a1b6f3c07850b303925c6f8bcfdca34455a9cb","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a1f396f4fdc464887c8089aa3a96cdf750f46849","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} -{"address":"c53ce319252f8e8cc5fd0d291ac6c684844abbe3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"c53ce319252f8e8cc5fd0d291ac6c684844abbe3","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"c53ce319252f8e8cc5fd0d291ac6c684844abbe3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"025a6bdcfa4b33874d0868eb4bd34dd7f687f6c6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"025a6bdcfa4b33874d0868eb4bd34dd7f687f6c6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a4e6cf2c2d7934ff5f1b423018ce124bf10836d1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a4e6cf2c2d7934ff5f1b423018ce124bf10836d1","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a4e6cf2c2d7934ff5f1b423018ce124bf10836d1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"98016e6d3ff3607d8e20cd29f96299b1526f903e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"98016e6d3ff3607d8e20cd29f96299b1526f903e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"98016e6d3ff3607d8e20cd29f96299b1526f903e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"bc64020cbd8158c5e2c347df3905e209955a21f5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"bc64020cbd8158c5e2c347df3905e209955a21f5","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"bc64020cbd8158c5e2c347df3905e209955a21f5","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"bc64020cbd8158c5e2c347df3905e209955a21f5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} -{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} -{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} -{"address":"713cbde6b3c8a7cf380c73358e645111bdb4545e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000c5f02f60d7493022644b0ec1434251765e3f4214"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} -{"address":"45fd24016f72722f65a40dd6f68971a37942664b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"45fd24016f72722f65a40dd6f68971a37942664b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"2d1c240985cf4e46f2718572e4f9b0c6276c5e8b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"2d1c240985cf4e46f2718572e4f9b0c6276c5e8b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"30d67737d3985288a77a9044286603642dbc3db5","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"30d67737d3985288a77a9044286603642dbc3db5","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"80fe7ba5a17f6766f332f790bd17947c45b5104e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"80fe7ba5a17f6766f332f790bd17947c45b5104e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"80fe7ba5a17f6766f332f790bd17947c45b5104e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"6034e14337143b2706e08bc8d83755bfc8e2d7fe","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"6034e14337143b2706e08bc8d83755bfc8e2d7fe","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f33f8a5dc16209a75a0c9e5b3aab8f208d5123b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f33f8a5dc16209a75a0c9e5b3aab8f208d5123b6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000005a69e64c0b9f8fdbd49025329503f3eda8a57891","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f33f8a5dc16209a75a0c9e5b3aab8f208d5123b6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000007eaa5b66378d04af4b4d92cc98b642d1eaf5c41","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"9991f0eceac53f5731cbc3fbfe52c773cb012aa9","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"0000000000000000000000009806b8fff1cc75ff57d9e09dea5b7951363a5ce3"} -{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"0000000000000000000000007b5b78e47d4cca3dec34ba7bffbf3c02ed21be58"} -{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","000000000000000000000000c65d93945b75553d7fc63ff6f6b0973347c79503"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","000000000000000000000000c65d93945b75553d7fc63ff6f6b0973347c79503"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"9991f0eceac53f5731cbc3fbfe52c773cb012aa9","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","000000000000000000000000ccdb8529c6185c9fb36f0d69427128baab0f1260"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"9991f0eceac53f5731cbc3fbfe52c773cb012aa9","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000ccdb8529c6185c9fb36f0d69427128baab0f1260","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"c5c6f2dddd9c599970b9b4a012609ef9f00ca6c1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000002e15d9aaa45ba56ea74e04a4b5090f44afecf983"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"3585684e0f8414b2d43e4e2d7e3e2f503b1bb2a6","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa3de43e002053a488bb0d44a726b2f7834f0d7ce2cd7efff54760a9406b8753b6"} -{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e3de43e002053a488bb0d44a726b2f7834f0d7ce2cd7efff54760a9406b8753b6"} -{"address":"ccdb8529c6185c9fb36f0d69427128baab0f1260","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa0000000000000000000000000000000000000000000000000000000000000009000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed35631000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa0000000000000000000000000000000000000000000000000000000000000009000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed35631000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa7939729a1d0ffdadc4126765ecf33428b8497bf2b3002e8c7f33e0e354cef272"} -{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"7939729a1d0ffdadc4126765ecf33428b8497bf2b3002e8c7f33e0e354cef272000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed3563100000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} -{"address":"3d38dccaa84eb043fde7c0c74287da10c37c1245","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa0e4805a1b9e9c14878b54dbfd45932678ab8be6d35366391a2c431826322688e"} -{"address":"3d38dccaa84eb043fde7c0c74287da10c37c1245","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"0e4805a1b9e9c14878b54dbfd45932678ab8be6d35366391a2c431826322688e000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed3563100000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"3d38dccaa84eb043fde7c0c74287da10c37c1245","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed35631000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"3585684e0f8414b2d43e4e2d7e3e2f503b1bb2a6","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"b83d2641177d1bbfdcfa361b283dbed2d6aad3ac","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"b83d2641177d1bbfdcfa361b283dbed2d6aad3ac","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"2e15d9aaa45ba56ea74e04a4b5090f44afecf983","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"2e15d9aaa45ba56ea74e04a4b5090f44afecf983","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"2e15d9aaa45ba56ea74e04a4b5090f44afecf983","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"874e40a56878f1a6c05096e0ab76b5bd027d5480","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"5b3b035b11a07268e19e7745a32bb8c0e0fb38d1","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed356314d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"b83d2641177d1bbfdcfa361b283dbed2d6aad3ac","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed356314d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000711e73189783360a4b672613662641667052d0394d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed356314d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000711e73189783360a4b672613662641667052d0394d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed356314d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"d8049b56591ebb5a3ecbf3f841ce46ff0d68ef20","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"b83d2641177d1bbfdcfa361b283dbed2d6aad3ac","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"4a5be472330daa84a132bfc21d8f8f5710635c9e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","000000000000000000000000c353a9d85cb543b60dd018c84ad61d1c1ed35631"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"c5c6f2dddd9c599970b9b4a012609ef9f00ca6c1","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} -{"address":"b83d2641177d1bbfdcfa361b283dbed2d6aad3ac","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003585684e0f8414b2d43e4e2d7e3e2f503b1bb2a6","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"c65d93945b75553d7fc63ff6f6b0973347c79503","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"3585684e0f8414b2d43e4e2d7e3e2f503b1bb2a6","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"3585684e0f8414b2d43e4e2d7e3e2f503b1bb2a6","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"ccdb8529c6185c9fb36f0d69427128baab0f1260","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"ccdb8529c6185c9fb36f0d69427128baab0f1260","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"c8cb8d840cd40edb1c05771c97ae67d96a576154","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"2e15d9aaa45ba56ea74e04a4b5090f44afecf983","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"2e15d9aaa45ba56ea74e04a4b5090f44afecf983","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"48a752337bd6a1d8f53f7406985f2f44189c4ba2","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} -{"address":"874e40a56878f1a6c05096e0ab76b5bd027d5480","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"874e40a56878f1a6c05096e0ab76b5bd027d5480","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"874e40a56878f1a6c05096e0ab76b5bd027d5480","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"5b3b035b11a07268e19e7745a32bb8c0e0fb38d1","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"5b3b035b11a07268e19e7745a32bb8c0e0fb38d1","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a0022ba6077f6648b3b18644640db46c372b8107","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a0022ba6077f6648b3b18644640db46c372b8107","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a0022ba6077f6648b3b18644640db46c372b8107","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"da8bb76b886690395358a64c1fc005f2a916608c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"da8bb76b886690395358a64c1fc005f2a916608c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"da8bb76b886690395358a64c1fc005f2a916608c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"3e581cc65141e14472da1b536e67fff3585e105e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"3e581cc65141e14472da1b536e67fff3585e105e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"3e581cc65141e14472da1b536e67fff3585e105e","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"3e581cc65141e14472da1b536e67fff3585e105e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} -{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} -{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} -{"address":"99d58465e738a8ee2c95b4329a0cf9a115a9e16d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","0000000000000000000000000dc70ecfb428da419c7f3365949d0ffef5426a19"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} -{"address":"1b3b8e8afeaf99fa42d5953376deea177d679af8","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"1b3b8e8afeaf99fa42d5953376deea177d679af8","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"ca5ad57b403abf2a443b9ccd1f0c3864699f903c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"ca5ad57b403abf2a443b9ccd1f0c3864699f903c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"7f112945cbd677ac88dea4bc60aa65ebde9eb81c","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"7f112945cbd677ac88dea4bc60aa65ebde9eb81c","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"4590107dad850d9b0519a3e7a5ce61782df6d52e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4590107dad850d9b0519a3e7a5ce61782df6d52e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"4590107dad850d9b0519a3e7a5ce61782df6d52e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"b7d08ca706f9f57b328f9e254a590b6a4cf59099","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"b7d08ca706f9f57b328f9e254a590b6a4cf59099","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"1c6f29cdc402111daa8767d0de8c85d66d58b187","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"1c6f29cdc402111daa8767d0de8c85d66d58b187","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","000000000000000000000000bf8e3f5f24f8373039125076a9f1af68252118aa","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"1c6f29cdc402111daa8767d0de8c85d66d58b187","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000008dd9b3ddd9690d55f72efcb43db04f417da76e0e","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"c0a11e6ea249c259ac8e630dbbadf0de1fe265dc","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"0000000000000000000000001c08b96c6e0fbf8a8454f687743f4e4974f9a8e0"} -{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"00000000000000000000000003b9e317e39f0452df5a4befbd96303e39bcdd1b"} -{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a94be4c7e40ef8b9c48d5330b24c8985520a1d06"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a94be4c7e40ef8b9c48d5330b24c8985520a1d06"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"c0a11e6ea249c259ac8e630dbbadf0de1fe265dc","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000b04f70f677247cb1dcb3b2f2e030d09751847b7b"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"c0a11e6ea249c259ac8e630dbbadf0de1fe265dc","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000b04f70f677247cb1dcb3b2f2e030d09751847b7b","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"07add5c2313d34d1dd47dc5d34d8ecd3e9855359","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","0000000000000000000000001670358b5d1d329790ac8173fe73e3df0e8eafff"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"25a5ad6c45bea7bbf06ca83c0c24a3dcbd3fc423","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a154082ccce93c359681b416bae5b0dfe24f2835cd17e4cb7e9cc68e9f066f244b65d"} -{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f82ccce93c359681b416bae5b0dfe24f2835cd17e4cb7e9cc68e9f066f244b65d"} -{"address":"b04f70f677247cb1dcb3b2f2e030d09751847b7b","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15400000000000000000000000000000000000000000000000000000000000000009000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15400000000000000000000000000000000000000000000000000000000000000009000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15402dc03487c51cbfb1053fb2de11574a2bc087396d34fddac244599f451996be80"} -{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"2dc03487c51cbfb1053fb2de11574a2bc087396d34fddac244599f451996be800000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} -{"address":"9944d8c3b44a3a5e95fb24c6705a88f25cbdecfd","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540600ea688eaaf29d350e6b6cf6a70b90007f9f6dd89301b284dfe8159b4349bfe"} -{"address":"9944d8c3b44a3a5e95fb24c6705a88f25cbdecfd","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"600ea688eaaf29d350e6b6cf6a70b90007f9f6dd89301b284dfe8159b4349bfe0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"9944d8c3b44a3a5e95fb24c6705a88f25cbdecfd","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15400000000000000000000000000000000000000000000000000000000000000002000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"25a5ad6c45bea7bbf06ca83c0c24a3dcbd3fc423","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"71af46fb409415d1440d87840034836ad7736f3a","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"71af46fb409415d1440d87840034836ad7736f3a","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"1670358b5d1d329790ac8173fe73e3df0e8eafff","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"1670358b5d1d329790ac8173fe73e3df0e8eafff","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"1670358b5d1d329790ac8173fe73e3df0e8eafff","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"0394ee871d7eb0fb28bba907a62c9b57c891e9ed","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"49e6276ec4e4b61f5613e4f12494f09c7dafa517","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"71af46fb409415d1440d87840034836ad7736f3a","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a2fc9b86b9aec4c6cc780171113e83a4e15e85934d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a2fc9b86b9aec4c6cc780171113e83a4e15e85934d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a15404d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb4d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"803b5ea09f6210408d93ef8f1702e2f2c73b3ba2","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"71af46fb409415d1440d87840034836ad7736f3a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"0ca3d434087c6f9b68cb8be313e6ffe2a2eab355","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000f07c30b3ec456ce1b274049ac480d161da8400fb"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"07add5c2313d34d1dd47dc5d34d8ecd3e9855359","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} -{"address":"71af46fb409415d1440d87840034836ad7736f3a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000025a5ad6c45bea7bbf06ca83c0c24a3dcbd3fc423","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"a94be4c7e40ef8b9c48d5330b24c8985520a1d06","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"25a5ad6c45bea7bbf06ca83c0c24a3dcbd3fc423","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"25a5ad6c45bea7bbf06ca83c0c24a3dcbd3fc423","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"b04f70f677247cb1dcb3b2f2e030d09751847b7b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"b04f70f677247cb1dcb3b2f2e030d09751847b7b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4cc946c30444cca240514fb50c5dc58d352a4253","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"1670358b5d1d329790ac8173fe73e3df0e8eafff","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"1670358b5d1d329790ac8173fe73e3df0e8eafff","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"62e95d440ba8870872fbb1046a8267f3c4a19244","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} -{"address":"0394ee871d7eb0fb28bba907a62c9b57c891e9ed","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"0394ee871d7eb0fb28bba907a62c9b57c891e9ed","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"0394ee871d7eb0fb28bba907a62c9b57c891e9ed","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"49e6276ec4e4b61f5613e4f12494f09c7dafa517","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"49e6276ec4e4b61f5613e4f12494f09c7dafa517","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"73173c6512d21e16573eea5b4c38dcc5dd198200","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"73173c6512d21e16573eea5b4c38dcc5dd198200","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"73173c6512d21e16573eea5b4c38dcc5dd198200","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"1ece701e4d61594bf2891392ad5dfce8680798b2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"1ece701e4d61594bf2891392ad5dfce8680798b2","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"1ece701e4d61594bf2891392ad5dfce8680798b2","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"17008e86b36b8bdf9a94793e2c26a75407c18e8a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"17008e86b36b8bdf9a94793e2c26a75407c18e8a","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"17008e86b36b8bdf9a94793e2c26a75407c18e8a","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"17008e86b36b8bdf9a94793e2c26a75407c18e8a","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} -{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} -{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} -{"address":"70b36c44b43f0d11997af583fdb23e86526fbc15","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","00000000000000000000000028fc9825fbf1c93b53011764d4965dadb91ab19a"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} -{"address":"14a954ea996d7278137d4422012111a6b6ea743f","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"14a954ea996d7278137d4422012111a6b6ea743f","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"1e18c56b23d5140ad51ae414ddb8e9c4dac3ec40","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"1e18c56b23d5140ad51ae414ddb8e9c4dac3ec40","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"c6c8a709a51ea86d74378cff78a267fc2732d02d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"c6c8a709a51ea86d74378cff78a267fc2732d02d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"2326c52ce0d4b5b97b79d7854f3171c0b4ad065d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"2326c52ce0d4b5b97b79d7854f3171c0b4ad065d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"2326c52ce0d4b5b97b79d7854f3171c0b4ad065d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"7353fac039478974adf794f22f035e2e39cce688","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"7353fac039478974adf794f22f035e2e39cce688","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"4e40ede835101f7a724c504fb5446b13a75d6169","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4e40ede835101f7a724c504fb5446b13a75d6169","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000001f75f69481df9ee2e9960848e5a5c5191d4a1540","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"4e40ede835101f7a724c504fb5446b13a75d6169","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000a81ab1616503d8c02383db42ab108bf38ecea21f","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"d8342619a987e670671f5c9c1ed391feac515234","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"000000000000000000000000f15b0c0a2b16a6d6cd7ebe58d044683b48ee1492"} -{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["e62d909feaad4aecbcea8fef32a9b41552373e45f5acb7ce7fc0a997180e7ae5"],"data":"00000000000000000000000014d0d94d43082bb7cdabd076334c7d1e07fe5c9d"} -{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","000000000000000000000000189fa0dd6b172ff72504369a60e36d9ddf93e107"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","000000000000000000000000189fa0dd6b172ff72504369a60e36d9ddf93e107"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"d8342619a987e670671f5c9c1ed391feac515234","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","00000000000000000000000090afc188718c7b0d7eb9f04a2d7f3e4f341627b7"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"d8342619a987e670671f5c9c1ed391feac515234","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","00000000000000000000000090afc188718c7b0d7eb9f04a2d7f3e4f341627b7","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"05fdb95469df3d2f73f489d8d086ea103edbbf90","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000001c182116a7caee069f68c62d8eb49cabd65f5a2d"],"data":"000000000000000000000000000000000000000000000000000000000000000a"} -{"address":"287b6f57f4e17e0352be601220d2a7d27299c1f4","topics":["0f6798a560793a54c3bcfe86a93cde1e73087d944c0ea20544137d4121396885","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf50733f7fa64f337ba0f5c261bb06f144c52fee8477d1b457924af55eef0aab118"} -{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb8500733f7fa64f337ba0f5c261bb06f144c52fee8477d1b457924af55eef0aab118"} -{"address":"90afc188718c7b0d7eb9f04a2d7f3e4f341627b7","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf50000000000000000000000000000000000000000000000000000000000000009000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d0403000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf50000000000000000000000000000000000000000000000000000000000000009000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d0403000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf59597d21295525dcfbc440f239603f0b4d995be8f552d2a60afe0f9c249b363a4"} -{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"9597d21295525dcfbc440f239603f0b4d995be8f552d2a60afe0f9c249b363a40000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf50000000000000000000000000000000000000000000000000000000000000002000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d040300000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000000000000000000000000000000000000000000211d7"} -{"address":"25490678deb787a9faec84986af53f3bfd0a975e","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54111b00473925f76788c15a26b76892cfd3f963b260e8e444d988195a12f69fd"} -{"address":"25490678deb787a9faec84986af53f3bfd0a975e","topics":["1733cbb53659d713b79580f79f3f9ff215f78a7c7aa45890f3b89fc5cddfbf32"],"data":"4111b00473925f76788c15a26b76892cfd3f963b260e8e444d988195a12f69fd0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5000000000000000000000000000000000000000000000000000000000000000b000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d040300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"25490678deb787a9faec84986af53f3bfd0a975e","topics":["92ca3a80853e6663fa31fa10b99225f18d4902939b4c53a9caae9043f6efd004"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf50000000000000000000000000000000000000000000000000000000000000002000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d0403000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000014d"} -{"address":"287b6f57f4e17e0352be601220d2a7d27299c1f4","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"430323a23670bf794cc7de3485643ca6fbc80ad3","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"430323a23670bf794cc7de3485643ca6fbc80ad3","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"1c182116a7caee069f68c62d8eb49cabd65f5a2d","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"1c182116a7caee069f68c62d8eb49cabd65f5a2d","topics":["7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b33"],"data":""} -{"address":"1c182116a7caee069f68c62d8eb49cabd65f5a2d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"f817a41a57b1ecb608133864664310fdc27f1dde","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"ee4a19381711a0eacaac03af6201094562e94f9e","topics":["6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff625"],"data":""} -{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb8504d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d04034d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"430323a23670bf794cc7de3485643ca6fbc80ad3","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb8504d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d04034d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000009aa0038595afc7f10ab9a2c705dcb4510f3122174d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb8504d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d04034d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000009aa0038595afc7f10ab9a2c705dcb4510f3122174d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["c7fb647e59b18047309aa15aad418e5d7ca96d173ad704f1031a2c3d7591734b"],"data":"0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf54d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb8504d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["e1c52dc63b719ade82e8bea94cc41a0d5d28e4aaf536adb5e9cccc9ff8c1aeda"],"data":"000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d04034d20000000000000000000000000000000000000000000000000000000000000"} -{"address":"ae905912605bdda5869bb835dfc71212a1843f11","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"430323a23670bf794cc7de3485643ca6fbc80ad3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"7b2f0b368e1863855df16e9bb4205bda73d70385","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","000000000000000000000000551130ef0c79fc14d67b1990e9d49d52954d0403"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"05fdb95469df3d2f73f489d8d086ea103edbbf90","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000063"} -{"address":"430323a23670bf794cc7de3485643ca6fbc80ad3","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","000000000000000000000000287b6f57f4e17e0352be601220d2a7d27299c1f4","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5"],"data":"0000000000000000000000000000000000000000000000000000000000000064"} -{"address":"189fa0dd6b172ff72504369a60e36d9ddf93e107","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"287b6f57f4e17e0352be601220d2a7d27299c1f4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"287b6f57f4e17e0352be601220d2a7d27299c1f4","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"90afc188718c7b0d7eb9f04a2d7f3e4f341627b7","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"90afc188718c7b0d7eb9f04a2d7f3e4f341627b7","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"4385b06d6e8e1baabb5371d85cbfb98b35b29834","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"1c182116a7caee069f68c62d8eb49cabd65f5a2d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"1c182116a7caee069f68c62d8eb49cabd65f5a2d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"2afad98320f83e2e15eb9001179c36b685f9134d","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"0000000000000000000000000000000000000000000000000000000000000001"} -{"address":"f817a41a57b1ecb608133864664310fdc27f1dde","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f817a41a57b1ecb608133864664310fdc27f1dde","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f817a41a57b1ecb608133864664310fdc27f1dde","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"ee4a19381711a0eacaac03af6201094562e94f9e","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"ee4a19381711a0eacaac03af6201094562e94f9e","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a589b8d6346a3a1453d65af01f4c2ac2442e0877","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"a589b8d6346a3a1453d65af01f4c2ac2442e0877","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"a589b8d6346a3a1453d65af01f4c2ac2442e0877","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} -{"address":"b7fa9f16653321fa13c27059f7ce9cd76ecb404d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"b7fa9f16653321fa13c27059f7ce9cd76ecb404d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"b7fa9f16653321fa13c27059f7ce9cd76ecb404d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"7f49a4b83a40f66248aa076c70c8ac45c4a77137","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"7f49a4b83a40f66248aa076c70c8ac45c4a77137","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"7f49a4b83a40f66248aa076c70c8ac45c4a77137","topics":["8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"7f49a4b83a40f66248aa076c70c8ac45c4a77137","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"000000000000000000000000000000000000000000000000000000000000000c"} -{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000001"} -{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"000000000000000000000000000000000000000000000000000000000000000d"} -{"address":"38a80fb300c3c391f522ffd16d445e413f55d93b","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","00000000000000000000000060f4aa06b70ba6c4ae55d0906c4a757e6c1b525e"],"data":"000000000000000000000000000000000000000000000000000000000000004b"} -{"address":"eb677365eb5ba925c6a6d07acb88062a2b1c38de","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"eb677365eb5ba925c6a6d07acb88062a2b1c38de","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"f61c937341244e193ac8086e27eccf59a1fa6446","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"f61c937341244e193ac8086e27eccf59a1fa6446","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"9e1fcd8b972e29579e82628e73620292a629783d","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"9e1fcd8b972e29579e82628e73620292a629783d","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"1a43f97c40bb8f8f44cee64fbfa140ef42dbdb21","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"1a43f97c40bb8f8f44cee64fbfa140ef42dbdb21","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"1a43f97c40bb8f8f44cee64fbfa140ef42dbdb21","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"9bcaaa6b7de0e8a24bfb3167419ea88b901bc312","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"9bcaaa6b7de0e8a24bfb3167419ea88b901bc312","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"0880dfaf5b7813a990767c964fe08386e098f1c4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"0000000000000000000000000000000000000000000000000000000000000032"} -{"address":"0880dfaf5b7813a990767c964fe08386e098f1c4","topics":["f9565aecd648a0466ffb964a79eeccdf1120ad6276189c687a6e9fe73984d9bb","0000000000000000000000002053214f2f70cf79d069ad40b9d1d6a58609edf5","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850"],"data":"00000000000000000000000000000000000000000000000000000000000000320000000000000000000000000000000000000000000000000000000000000000"} -{"address":"0880dfaf5b7813a990767c964fe08386e098f1c4","topics":["ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef","0000000000000000000000003a7bb9c930fe2cc641676198f845f09e7c2eb850","000000000000000000000000000000000000000000000000000000000000dead"],"data":"0000000000000000000000000000000000000000000000000000000000000019"} diff --git a/contracts/ECRecovery.sol b/contracts/ECRecovery.sol index a2f595bfb..17b1b98f7 100644 --- a/contracts/ECRecovery.sol +++ b/contracts/ECRecovery.sol @@ -20,8 +20,9 @@ library ECRecovery { uint8 v; //Check the signature length - if (sig.length != 65) + if (sig.length != 65) { return (address(0)); + } // Divide the signature in r, s and v variables assembly { @@ -31,14 +32,16 @@ library ECRecovery { } // Version of signature should be 27 or 28, but 0 and 1 are also possible versions - if (v < 27) - v += 27; + if (v < 27) { + v += 27; + } // If the version is correct return the signer address - if (v != 27 && v != 28) + if (v != 27 && v != 28) { return (address(0)); - else + } else { return ecrecover(hash, v, r, s); + } } } diff --git a/test/ECRecovery.js b/test/ECRecovery.js index 8bab28c39..d2d7950dc 100644 --- a/test/ECRecovery.js +++ b/test/ECRecovery.js @@ -1,5 +1,6 @@ var ECRecovery = artifacts.require("../contracts/ECRecovery.sol"); var utils = require('ethereumjs-util'); +var hashMessage = require('./helpers/hashMessage.js'); contract('ECRecovery', function(accounts) { @@ -29,42 +30,26 @@ contract('ECRecovery', function(accounts) { // Create the signature using account[0] const signature = web3.eth.sign(web3.eth.accounts[0], web3.sha3('OpenZeppelin')); - // Testrpc add a prefix to the signed message, we generate the hash of - // 'OpenZeppelin' string repeating testrpc steps - const message = new Buffer(web3.sha3('OpenZeppelin').substring(2), 'hex'); - const prefix = utils.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString()); - const prefixedHash = utils.bufferToHex( utils.sha3(Buffer.concat([prefix, message])) ); - // Recover the signer address form the generated message and signature. - assert.equal(web3.eth.accounts[0], await ecrecovery.recover(prefixedHash, signature)); + assert.equal(web3.eth.accounts[0], await ecrecovery.recover(hashMessage('OpenZeppelin'), signature)); }); it("recover using web3.eth.sign() should return wrong signer", async function() { // Create the signature using account[0] const signature = web3.eth.sign(web3.eth.accounts[0], web3.sha3('OpenZeppelin')); - // Testrpc add a prefix to the signed message, we generate the hash of - // 'Test' string repeating testrpc steps - const message = new Buffer(web3.sha3('Test').substring(2), 'hex'); - const prefix = utils.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString()); - const prefixedHash = utils.bufferToHex( utils.sha3(Buffer.concat([prefix, message])) ); - // Recover the signer address form the generated message and wrong signature. - assert.notEqual(web3.eth.accounts[0], await ecrecovery.recover(prefixedHash, signature)); + assert.notEqual(web3.eth.accounts[0], await ecrecovery.recover(hashMessage('Test'), signature)); }); it("recover should fail when a wrong hash is sent", async function() { // Create the signature using account[0] let signature = web3.eth.sign(web3.eth.accounts[0], web3.sha3('OpenZeppelin')); - // Testrpc add a prefix to the signed message, we generate the hash of - // 'OpenZeppelin' string repeating testrpc steps - let message = new Buffer(web3.sha3('OpenZeppelin'), 'hex'); - let prefix = utils.toBuffer('\u0019Ethereum Signed Message:\n' + message.length.toString()); - let prefixedHash = utils.sha3(Buffer.concat([prefix, message])); - // Recover the signer address form the generated message and wrong signature. - assert.equal('0x0000000000000000000000000000000000000000', await ecrecovery.recover(prefixedHash, signature)); + assert.equal('0x0000000000000000000000000000000000000000', + await ecrecovery.recover(hashMessage('OpenZeppelin').substring(2), signature) + ); }); }); diff --git a/test/helpers/hashMessage.js b/test/helpers/hashMessage.js new file mode 100644 index 000000000..2b20c58a2 --- /dev/null +++ b/test/helpers/hashMessage.js @@ -0,0 +1,8 @@ +import utils from 'ethereumjs-util'; + +// Hash and add same prefix to the hash that testrpc use. +module.exports = function(message) { + const messageHex = new Buffer(utils.sha3(message).toString('hex'), 'hex'); + const prefix = utils.toBuffer('\u0019Ethereum Signed Message:\n' + messageHex.length.toString()); + return utils.bufferToHex( utils.sha3(Buffer.concat([prefix, messageHex])) ); +}; From e2fdf09e9bb991ab019b461e14d3dabc3c374d67 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Tue, 18 Jul 2017 15:07:10 -0300 Subject: [PATCH 066/160] v1.2.0 --- ethpm.json | 2 +- package.json | 2 +- yarn.lock | 34 +++++++++++++--------------------- 3 files changed, 15 insertions(+), 23 deletions(-) diff --git a/ethpm.json b/ethpm.json index 2352f07fa..fb0e09257 100644 --- a/ethpm.json +++ b/ethpm.json @@ -1,6 +1,6 @@ { "package_name": "zeppelin", - "version": "1.1.0", + "version": "1.2.0", "description": "Secure Smart Contract library for Solidity", "authors": [ "Manuel Araoz " diff --git a/package.json b/package.json index ce5498d49..59a587e10 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "zeppelin-solidity", - "version": "1.1.0", + "version": "1.2.0", "description": "Secure Smart Contract library for Solidity", "main": "truffle.js", "scripts": { diff --git a/yarn.lock b/yarn.lock index 1775b5221..c0b575078 100644 --- a/yarn.lock +++ b/yarn.lock @@ -905,6 +905,15 @@ bindings@^1.2.1, bindings@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" +bip39@2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.2.0.tgz#40e73f70674c267f148cdbf8374f2a50be166b0d" + dependencies: + create-hash "^1.1.0" + pbkdf2 "^3.0.0" + randombytes "^2.0.1" + unorm "^1.3.3" + bip39@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.3.1.tgz#c8238abc09d719c6f01136ef042daccc5dc3581b" @@ -915,15 +924,6 @@ bip39@^2.2.0: safe-buffer "^5.0.1" unorm "^1.3.3" -bip39@~2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.2.0.tgz#40e73f70674c267f148cdbf8374f2a50be166b0d" - dependencies: - create-hash "^1.1.0" - pbkdf2 "^3.0.0" - randombytes "^2.0.1" - unorm "^1.3.3" - bip66@^1.1.3: version "1.1.5" resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" @@ -2038,13 +2038,13 @@ ethereumjs-block@~1.2.2: ethereumjs-util "^4.0.1" merkle-patricia-tree "^2.1.2" -"ethereumjs-testrpc-sc@git+https://github.com/sc-forks/testrpc-sc.git": +"ethereumjs-testrpc-sc@https://github.com/sc-forks/testrpc-sc.git": version "3.0.3" - resolved "git+https://github.com/sc-forks/testrpc-sc.git#2b7cad404a2b82023d2c8f5656b34e3cc44f2d08" + resolved "https://github.com/sc-forks/testrpc-sc.git#c636f173cad9026a42a5909a768ba7e156f4abc7" dependencies: async "~1.5.0" bignumber.js "~2.1.4" - bip39 "~2.2.0" + bip39 "2.2.0" ethereumjs-account "~2.0.4" ethereumjs-block "~1.2.2" ethereumjs-tx "1.1.2" @@ -5726,15 +5726,7 @@ solidity-coverage@^0.1.7: sol-explore "^1.6.2" solidity-parser "git+https://github.com/sc-forks/solidity-parser.git" -solidity-parser@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/solidity-parser/-/solidity-parser-0.3.0.tgz#cab04f8e406bdc1f3c16512eec6aa87a1072f8b9" - dependencies: - mocha "^2.4.5" - pegjs "^0.10.0" - yargs "^4.6.0" - -"solidity-parser@git+https://github.com/sc-forks/solidity-parser.git": +solidity-parser@^0.3.0, "solidity-parser@git+https://github.com/sc-forks/solidity-parser.git": version "0.3.0" resolved "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0" dependencies: From 93b953fb48ebbe538e87d49895b1f60546a698af Mon Sep 17 00:00:00 2001 From: Brian Guo Date: Wed, 19 Jul 2017 09:59:46 -0400 Subject: [PATCH 067/160] changed instances of uint to uint256; fixes issue #226 --- contracts/token/PausableToken.sol | 4 ++-- contracts/token/TokenTimelock.sol | 10 +++++----- test/helpers/BasicTokenMock.sol | 2 +- test/helpers/DayLimitMock.sol | 8 ++++---- test/helpers/ERC23TokenMock.sol | 6 +++--- test/helpers/MultisigWalletMock.sol | 4 ++-- test/helpers/PausableMock.sol | 2 +- test/helpers/PullPaymentMock.sol | 2 +- test/helpers/ReentrancyMock.sol | 2 +- test/helpers/SafeMathMock.sol | 8 ++++---- test/helpers/ShareableMock.sol | 4 ++-- test/helpers/StandardTokenMock.sol | 2 +- test/helpers/VestedTokenMock.sol | 2 +- 13 files changed, 28 insertions(+), 28 deletions(-) diff --git a/contracts/token/PausableToken.sol b/contracts/token/PausableToken.sol index 301b04f37..016f0340e 100644 --- a/contracts/token/PausableToken.sol +++ b/contracts/token/PausableToken.sol @@ -11,11 +11,11 @@ import '../lifecycle/Pausable.sol'; contract PausableToken is StandardToken, Pausable { - function transfer(address _to, uint _value) whenNotPaused returns (bool) { + function transfer(address _to, uint256 _value) whenNotPaused returns (bool) { return super.transfer(_to, _value); } - function transferFrom(address _from, address _to, uint _value) whenNotPaused returns (bool) { + function transferFrom(address _from, address _to, uint256 _value) whenNotPaused returns (bool) { return super.transferFrom(_from, _to, _value); } } diff --git a/contracts/token/TokenTimelock.sol b/contracts/token/TokenTimelock.sol index 7c85063c5..8250083d4 100644 --- a/contracts/token/TokenTimelock.sol +++ b/contracts/token/TokenTimelock.sol @@ -5,11 +5,11 @@ import './ERC20Basic.sol'; /** * @title TokenTimelock - * @dev TokenTimelock is a token holder contract that will allow a + * @dev TokenTimelock is a token holder contract that will allow a * beneficiary to extract the tokens after a given release time */ contract TokenTimelock { - + // ERC20 basic token contract being held ERC20Basic token; @@ -17,9 +17,9 @@ contract TokenTimelock { address beneficiary; // timestamp when token release is enabled - uint releaseTime; + uint64 releaseTime; - function TokenTimelock(ERC20Basic _token, address _beneficiary, uint _releaseTime) { + function TokenTimelock(ERC20Basic _token, address _beneficiary, uint64 _releaseTime) { require(_releaseTime > now); token = _token; beneficiary = _beneficiary; @@ -41,7 +41,7 @@ contract TokenTimelock { function release() { require(now >= releaseTime); - uint amount = token.balanceOf(this); + uint256 amount = token.balanceOf(this); require(amount > 0); token.transfer(beneficiary, amount); diff --git a/test/helpers/BasicTokenMock.sol b/test/helpers/BasicTokenMock.sol index 3e7f63569..f1a0265f0 100644 --- a/test/helpers/BasicTokenMock.sol +++ b/test/helpers/BasicTokenMock.sol @@ -7,7 +7,7 @@ import '../../contracts/token/BasicToken.sol'; // mock class using BasicToken contract BasicTokenMock is BasicToken { - function BasicTokenMock(address initialAccount, uint initialBalance) { + function BasicTokenMock(address initialAccount, uint256 initialBalance) { balances[initialAccount] = initialBalance; totalSupply = initialBalance; } diff --git a/test/helpers/DayLimitMock.sol b/test/helpers/DayLimitMock.sol index c047e7b0f..636b5394f 100644 --- a/test/helpers/DayLimitMock.sol +++ b/test/helpers/DayLimitMock.sol @@ -2,17 +2,17 @@ pragma solidity ^0.4.11; import "../../contracts/DayLimit.sol"; contract DayLimitMock is DayLimit { - uint public totalSpending; + uint256 public totalSpending; - function DayLimitMock(uint _value) DayLimit(_value) { + function DayLimitMock(uint256 _value) DayLimit(_value) { totalSpending = 0; } - function attemptSpend(uint _value) external limitedDaily(_value) { + function attemptSpend(uint256 _value) external limitedDaily(_value) { totalSpending += _value; } - function setDailyLimit(uint _newLimit) external { + function setDailyLimit(uint256 _newLimit) external { _setDailyLimit(_newLimit); } diff --git a/test/helpers/ERC23TokenMock.sol b/test/helpers/ERC23TokenMock.sol index 2d0504ea4..5773e3f56 100644 --- a/test/helpers/ERC23TokenMock.sol +++ b/test/helpers/ERC23TokenMock.sol @@ -5,18 +5,18 @@ import '../../contracts/token/BasicToken.sol'; contract ERC23ContractInterface { - function tokenFallback(address _from, uint _value, bytes _data) external; + function tokenFallback(address _from, uint256 _value, bytes _data) external; } contract ERC23TokenMock is BasicToken { - function ERC23TokenMock(address initialAccount, uint initialBalance) { + function ERC23TokenMock(address initialAccount, uint256 initialBalance) { balances[initialAccount] = initialBalance; totalSupply = initialBalance; } // ERC23 compatible transfer function (except the name) - function transferERC23(address _to, uint _value, bytes _data) + function transferERC23(address _to, uint256 _value, bytes _data) returns (bool success) { transfer(_to, _value); diff --git a/test/helpers/MultisigWalletMock.sol b/test/helpers/MultisigWalletMock.sol index 139d4187d..1b281db81 100644 --- a/test/helpers/MultisigWalletMock.sol +++ b/test/helpers/MultisigWalletMock.sol @@ -2,9 +2,9 @@ pragma solidity ^0.4.11; import "../../contracts/MultisigWallet.sol"; contract MultisigWalletMock is MultisigWallet { - uint public totalSpending; + uint256 public totalSpending; - function MultisigWalletMock(address[] _owners, uint _required, uint _daylimit) + function MultisigWalletMock(address[] _owners, uint256 _required, uint256 _daylimit) MultisigWallet(_owners, _required, _daylimit) payable { } function changeOwner(address _from, address _to) external { } diff --git a/test/helpers/PausableMock.sol b/test/helpers/PausableMock.sol index 4367f4a5c..97a5f28ea 100644 --- a/test/helpers/PausableMock.sol +++ b/test/helpers/PausableMock.sol @@ -7,7 +7,7 @@ import '../../contracts/lifecycle/Pausable.sol'; // mock class using Pausable contract PausableMock is Pausable { bool public drasticMeasureTaken; - uint public count; + uint256 public count; function PausableMock() { drasticMeasureTaken = false; diff --git a/test/helpers/PullPaymentMock.sol b/test/helpers/PullPaymentMock.sol index 83a1d2a53..99800e946 100644 --- a/test/helpers/PullPaymentMock.sol +++ b/test/helpers/PullPaymentMock.sol @@ -10,7 +10,7 @@ contract PullPaymentMock is PullPayment { function PullPaymentMock() payable { } // test helper function to call asyncSend - function callSend(address dest, uint amount) { + function callSend(address dest, uint256 amount) { asyncSend(dest, amount); } diff --git a/test/helpers/ReentrancyMock.sol b/test/helpers/ReentrancyMock.sol index 4b8cca94c..411e72197 100644 --- a/test/helpers/ReentrancyMock.sol +++ b/test/helpers/ReentrancyMock.sol @@ -15,7 +15,7 @@ contract ReentrancyMock is ReentrancyGuard { counter += 1; } - function countLocalRecursive(uint n) public nonReentrant { + function countLocalRecursive(uint256 n) public nonReentrant { if(n > 0) { count(); countLocalRecursive(n - 1); diff --git a/test/helpers/SafeMathMock.sol b/test/helpers/SafeMathMock.sol index a9edd02c4..5a20aefe8 100644 --- a/test/helpers/SafeMathMock.sol +++ b/test/helpers/SafeMathMock.sol @@ -5,17 +5,17 @@ import '../../contracts/math/SafeMath.sol'; contract SafeMathMock { - uint public result; + uint256 public result; - function multiply(uint a, uint b) { + function multiply(uint256 a, uint256 b) { result = SafeMath.mul(a, b); } - function subtract(uint a, uint b) { + function subtract(uint256 a, uint256 b) { result = SafeMath.sub(a, b); } - function add(uint a, uint b) { + function add(uint256 a, uint256 b) { result = SafeMath.add(a, b); } } diff --git a/test/helpers/ShareableMock.sol b/test/helpers/ShareableMock.sol index 031e37ae2..f342e2e82 100644 --- a/test/helpers/ShareableMock.sol +++ b/test/helpers/ShareableMock.sol @@ -3,9 +3,9 @@ import "../../contracts/ownership/Shareable.sol"; contract ShareableMock is Shareable { - uint public count = 0; + uint256 public count = 0; - function ShareableMock(address[] _owners, uint _required) Shareable(_owners, _required) { + function ShareableMock(address[] _owners, uint256 _required) Shareable(_owners, _required) { } diff --git a/test/helpers/StandardTokenMock.sol b/test/helpers/StandardTokenMock.sol index d96626965..6425d2f9e 100644 --- a/test/helpers/StandardTokenMock.sol +++ b/test/helpers/StandardTokenMock.sol @@ -7,7 +7,7 @@ import '../../contracts/token/StandardToken.sol'; // mock class using StandardToken contract StandardTokenMock is StandardToken { - function StandardTokenMock(address initialAccount, uint initialBalance) { + function StandardTokenMock(address initialAccount, uint256 initialBalance) { balances[initialAccount] = initialBalance; totalSupply = initialBalance; } diff --git a/test/helpers/VestedTokenMock.sol b/test/helpers/VestedTokenMock.sol index a3aa4a0e8..c607cae62 100644 --- a/test/helpers/VestedTokenMock.sol +++ b/test/helpers/VestedTokenMock.sol @@ -4,7 +4,7 @@ import '../../contracts/token/VestedToken.sol'; // mock class using StandardToken contract VestedTokenMock is VestedToken { - function VestedTokenMock(address initialAccount, uint initialBalance) { + function VestedTokenMock(address initialAccount, uint256 initialBalance) { balances[initialAccount] = initialBalance; totalSupply = initialBalance; } From b2e36314cb32e9be87e35d732d16335f1ec45051 Mon Sep 17 00:00:00 2001 From: pooleja Date: Thu, 20 Jul 2017 10:51:57 -0700 Subject: [PATCH 068/160] Add requirement for address to not be 0 and throw error --- contracts/ownership/Ownable.sol | 5 +-- test/Ownable.js | 70 ++++++++++++++++----------------- 2 files changed, 37 insertions(+), 38 deletions(-) diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index d6366479f..fcb3ef91f 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -33,9 +33,8 @@ contract Ownable { * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner { - if (newOwner != address(0)) { - owner = newOwner; - } + require(newOwner != address(0)); + owner = newOwner; } } diff --git a/test/Ownable.js b/test/Ownable.js index 0ad2fffcb..45714c81b 100644 --- a/test/Ownable.js +++ b/test/Ownable.js @@ -1,45 +1,45 @@ -'use strict'; -const assertJump = require('./helpers/assertJump'); +'use strict' +const assertJump = require('./helpers/assertJump') -var Ownable = artifacts.require('../contracts/ownership/Ownable.sol'); +var Ownable = artifacts.require('../contracts/ownership/Ownable.sol') -contract('Ownable', function(accounts) { - let ownable; +contract('Ownable', function (accounts) { + let ownable - beforeEach(async function() { - ownable = await Ownable.new(); - }); + beforeEach(async function () { + ownable = await Ownable.new() + }) - it('should have an owner', async function() { - let owner = await ownable.owner(); - assert.isTrue(owner !== 0); - }); + it('should have an owner', async function () { + let owner = await ownable.owner() + assert.isTrue(owner !== 0) + }) - it('changes owner after transfer', async function() { - let other = accounts[1]; - await ownable.transferOwnership(other); - let owner = await ownable.owner(); + it('changes owner after transfer', async function () { + let other = accounts[1] + await ownable.transferOwnership(other) + let owner = await ownable.owner() - assert.isTrue(owner === other); - }); + assert.isTrue(owner === other) + }) - it('should prevent non-owners from transfering', async function() { - const other = accounts[2]; - const owner = await ownable.owner.call(); - assert.isTrue(owner !== other); + it('should prevent non-owners from transfering', async function () { + const other = accounts[2] + const owner = await ownable.owner.call() + assert.isTrue(owner !== other) try { - await ownable.transferOwnership(other, {from: other}); - } catch(error) { - assertJump(error); + await ownable.transferOwnership(other, {from: other}) + } catch (error) { + assertJump(error) } - }); + }) - it('should guard ownership against stuck state', async function() { - let originalOwner = await ownable.owner(); - await ownable.transferOwnership(null, {from: originalOwner}); - let newOwner = await ownable.owner(); - - assert.equal(originalOwner, newOwner); - }); - -}); + it('should guard ownership against stuck state setting owner as 0x0 address', async function () { + let originalOwner = await ownable.owner() + try { + await ownable.transferOwnership(null, {from: originalOwner}) + } catch (error) { + assertJump(error) + } + }) +}) From 6d565ef841c07ccd9e740ac6a1be55f089fb021d Mon Sep 17 00:00:00 2001 From: pooleja Date: Thu, 20 Jul 2017 10:58:16 -0700 Subject: [PATCH 069/160] Fix auto-formatting --- test/Ownable.js | 67 +++++++++++++++++++++++++------------------------ 1 file changed, 34 insertions(+), 33 deletions(-) diff --git a/test/Ownable.js b/test/Ownable.js index 45714c81b..3d8be3be3 100644 --- a/test/Ownable.js +++ b/test/Ownable.js @@ -1,45 +1,46 @@ -'use strict' -const assertJump = require('./helpers/assertJump') +'use strict'; +const assertJump = require('./helpers/assertJump'); -var Ownable = artifacts.require('../contracts/ownership/Ownable.sol') +var Ownable = artifacts.require('../contracts/ownership/Ownable.sol'); -contract('Ownable', function (accounts) { - let ownable +contract('Ownable', function(accounts) { + let ownable; - beforeEach(async function () { - ownable = await Ownable.new() - }) + beforeEach(async function() { + ownable = await Ownable.new(); + }); - it('should have an owner', async function () { - let owner = await ownable.owner() - assert.isTrue(owner !== 0) - }) + it('should have an owner', async function() { + let owner = await ownable.owner(); + assert.isTrue(owner !== 0); + }); - it('changes owner after transfer', async function () { - let other = accounts[1] - await ownable.transferOwnership(other) - let owner = await ownable.owner() + it('changes owner after transfer', async function() { + let other = accounts[1]; + await ownable.transferOwnership(other); + let owner = await ownable.owner(); - assert.isTrue(owner === other) - }) + assert.isTrue(owner === other); + }); - it('should prevent non-owners from transfering', async function () { - const other = accounts[2] - const owner = await ownable.owner.call() - assert.isTrue(owner !== other) + it('should prevent non-owners from transfering', async function() { + const other = accounts[2]; + const owner = await ownable.owner.call(); + assert.isTrue(owner !== other); try { - await ownable.transferOwnership(other, {from: other}) - } catch (error) { - assertJump(error) + await ownable.transferOwnership(other, {from: other}); + } catch(error) { + assertJump(error); } - }) + }); - it('should guard ownership against stuck state setting owner as 0x0 address', async function () { - let originalOwner = await ownable.owner() + it('should guard ownership against stuck state', async function() { + let originalOwner = await ownable.owner(); try { - await ownable.transferOwnership(null, {from: originalOwner}) - } catch (error) { - assertJump(error) + await ownable.transferOwnership(null, {from: originalOwner}); + } catch(error) { + assertJump(error); } - }) -}) + }); + +}); \ No newline at end of file From 6735a3ccd61c6f2921bec2cd3ca91b1964f86769 Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Thu, 20 Jul 2017 16:01:41 -0500 Subject: [PATCH 070/160] Renamed tAMOUNT to much friendly amount --- test/PullPayment.js | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/test/PullPayment.js b/test/PullPayment.js index 8df6d8f20..f8106464a 100644 --- a/test/PullPayment.js +++ b/test/PullPayment.js @@ -2,10 +2,10 @@ var PullPaymentMock = artifacts.require("./helpers/PullPaymentMock.sol"); contract('PullPayment', function(accounts) { let ppce; - let tAMOUNT = 17*1e18; + let amount = 17*1e18; beforeEach(async function() { - ppce = await PullPaymentMock.new({value: tAMOUNT}); + ppce = await PullPaymentMock.new({value: amount}); }); it("can't call asyncSend externally", async function() { @@ -50,13 +50,13 @@ contract('PullPayment', function(accounts) { let payee = accounts[1]; let initialBalance = web3.eth.getBalance(payee); - let call1 = await ppce.callSend(payee, tAMOUNT); + let call1 = await ppce.callSend(payee, amount); let payment1 = await ppce.payments(payee); - assert.equal(payment1, tAMOUNT); + assert.equal(payment1, amount); let totalPayments = await ppce.totalPayments(); - assert.equal(totalPayments, tAMOUNT); + assert.equal(totalPayments, amount); let withdraw = await ppce.withdrawPayments({from: payee}); let payment2 = await ppce.payments(payee); @@ -66,7 +66,7 @@ contract('PullPayment', function(accounts) { assert.equal(totalPayments, 0); let balance = web3.eth.getBalance(payee); - assert(Math.abs(balance-initialBalance-tAMOUNT) < 1e16); + assert(Math.abs(balance-initialBalance-amount) < 1e16); }); }); From 86a69fd6d63279d2043ed1ff6f2d12598c0a9dbe Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Thu, 20 Jul 2017 18:58:31 -0300 Subject: [PATCH 071/160] refactor test script - fix status code (script exited with success even with failing tests) - clean up and explain things --- scripts/test.sh | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/scripts/test.sh b/scripts/test.sh index 5314877d2..2890ab61b 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -1,10 +1,24 @@ -#! /bin/bash +#!/bin/bash -output=$(nc -z localhost 8545; echo $?) -[ $output -eq "0" ] && trpc_running=true -if [ ! $trpc_running ]; then - echo "Starting our own testrpc node instance" - # we give each account 1M ether, needed for high-value tests +# Executes cleanup function at script exit. +trap cleanup EXIT + +cleanup() { + # Kill the testrpc instance that we started (if we started one). + if [ -n "$testrpc_pid" ]; then + kill -9 $testrpc_pid + fi +} + +testrpc_running() { + nc -z localhost 8545 +} + +if testrpc_running; then + echo "Using existing testrpc instance" +else + echo "Starting our own testrpc instance" + # We define 10 accounts with balance 1M ether, needed for high-value tests. testrpc \ --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501200,1000000000000000000000000" \ --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501201,1000000000000000000000000" \ @@ -17,9 +31,7 @@ if [ ! $trpc_running ]; then --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501208,1000000000000000000000000" \ --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501209,1000000000000000000000000" \ > /dev/null & - trpc_pid=$! -fi -./node_modules/truffle/cli.js test "$@" -if [ ! $trpc_running ]; then - kill -9 $trpc_pid + testrpc_pid=$! fi + +node_modules/.bin/truffle test "$@" From ed872ca0a11c4926f8bb91dd103bea1378a3384c Mon Sep 17 00:00:00 2001 From: cgewecke Date: Fri, 21 Jul 2017 11:25:53 -0700 Subject: [PATCH 072/160] Minor coverage maintenance --- .gitignore | 4 +++- README.md | 2 +- scripts/coverage.sh | 28 ++++++++++++++++++++-------- 3 files changed, 24 insertions(+), 10 deletions(-) diff --git a/.gitignore b/.gitignore index fcf8f4012..8c72974ad 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,6 @@ node_modules/ build/ .DS_Store/ /coverage -coverage.json \ No newline at end of file +coverage.json +allFiredEvents +scTopics \ No newline at end of file diff --git a/README.md b/README.md index b41e962d7..8c4b198bb 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Zeppelin Solidity [![NPM Package](https://img.shields.io/npm/v/zeppelin-solidity.svg?style=flat-square)](https://www.npmjs.org/package/zeppelin-solidity) [![Build Status](https://img.shields.io/travis/OpenZeppelin/zeppelin-solidity.svg?branch=master&style=flat-square)](https://travis-ci.org/OpenZeppelin/zeppelin-solidity) -[![Coverage Status](https://coveralls.io/repos/github/OpenZeppelin/zeppelin-solidity/badge.svg?branch=coveralls)](https://coveralls.io/github/OpenZeppelin/zeppelin-solidity?branch=coveralls) +[![Coverage Status](https://coveralls.io/repos/github/OpenZeppelin/zeppelin-solidity/badge.svg?branch=master)](https://coveralls.io/github/OpenZeppelin/zeppelin-solidity?branch=master) OpenZeppelin is a library for writing secure [Smart Contracts](https://en.wikipedia.org/wiki/Smart_contract) on Ethereum. diff --git a/scripts/coverage.sh b/scripts/coverage.sh index 327e8a476..5d69ac560 100755 --- a/scripts/coverage.sh +++ b/scripts/coverage.sh @@ -1,12 +1,24 @@ -#! /bin/bash +#!/bin/bash - +# Executes cleanup function at script exit. +trap cleanup EXIT -output=$(nc -z localhost 8555; echo $?) -[ $output -eq "0" ] && trpc_running=true -if [ ! $trpc_running ]; then +cleanup() { + # Kill the testrpc instance that we started (if we started one). + if [ -n "$testrpc_pid" ]; then + kill -9 $testrpc_pid + fi +} + +testrpc_running() { + nc -z localhost 8555 +} + +if testrpc_running; then + echo "Using existing testrpc-sc instance" +else echo "Starting testrpc-sc to generate coverage" - # we give each account 1M ether, needed for high-value tests + # We define 10 accounts with balance 1M ether, needed for high-value tests. ./node_modules/ethereumjs-testrpc-sc/bin/testrpc --gasLimit 0xfffffffffff --port 8555 \ --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501200,1000000000000000000000000" \ --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501201,1000000000000000000000000" \ @@ -19,7 +31,7 @@ if [ ! $trpc_running ]; then --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501208,1000000000000000000000000" \ --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501209,1000000000000000000000000" \ > /dev/null & - trpc_pid=$! + testrpc_pid=$! fi -SOLIDITY_COVERAGE=true && ./node_modules/.bin/solidity-coverage +SOLIDITY_COVERAGE=true ./node_modules/.bin/solidity-coverage From 58fdb956b582d0d6d28dc20d0c43b96b0e4bae27 Mon Sep 17 00:00:00 2001 From: pooleja Date: Fri, 21 Jul 2017 23:04:50 -0700 Subject: [PATCH 073/160] Add assert to prevent regression --- test/Ownable.js | 1 + 1 file changed, 1 insertion(+) diff --git a/test/Ownable.js b/test/Ownable.js index 3d8be3be3..57fcba40e 100644 --- a/test/Ownable.js +++ b/test/Ownable.js @@ -38,6 +38,7 @@ contract('Ownable', function(accounts) { let originalOwner = await ownable.owner(); try { await ownable.transferOwnership(null, {from: originalOwner}); + assert.fail() } catch(error) { assertJump(error); } From 64787b1ac57702b7b16dd311394b94b7a8123a1c Mon Sep 17 00:00:00 2001 From: pooleja Date: Fri, 21 Jul 2017 23:07:50 -0700 Subject: [PATCH 074/160] Add semicolon to match coding standards --- test/Ownable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/Ownable.js b/test/Ownable.js index 57fcba40e..9c66d4826 100644 --- a/test/Ownable.js +++ b/test/Ownable.js @@ -38,7 +38,7 @@ contract('Ownable', function(accounts) { let originalOwner = await ownable.owner(); try { await ownable.transferOwnership(null, {from: originalOwner}); - assert.fail() + assert.fail(); } catch(error) { assertJump(error); } From 5e7847537acf68c15052805bc7a47bce6d539435 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sat, 22 Jul 2017 11:45:56 +0100 Subject: [PATCH 075/160] fix testing error throwing --- test/Claimable.js | 6 +++-- test/DayLimit.js | 58 +++++++++++++++++++++++++---------------------- test/Ownable.js | 3 ++- test/Pausable.js | 15 ++++++------ 4 files changed, 45 insertions(+), 37 deletions(-) diff --git a/test/Claimable.js b/test/Claimable.js index 021213db2..527b93205 100644 --- a/test/Claimable.js +++ b/test/Claimable.js @@ -27,8 +27,9 @@ contract('Claimable', function(accounts) { try { await claimable.claimOwnership({from: accounts[2]}); } catch(error) { - assertJump(error); + return assertJump(error); } + assert.fail('should have thrown before'); }); it('should prevent non-owners from transfering', async function() { @@ -38,8 +39,9 @@ contract('Claimable', function(accounts) { try { await claimable.transferOwnership(other, {from: other}); } catch(error) { - assertJump(error); + return assertJump(error); } + assert.fail('should have thrown before'); }); describe('after initiating a transfer', function () { diff --git a/test/DayLimit.js b/test/DayLimit.js index 11d1dac75..ff7385298 100644 --- a/test/DayLimit.js +++ b/test/DayLimit.js @@ -37,8 +37,9 @@ contract('DayLimit', function(accounts) { try { await dayLimit.attemptSpend(3); } catch(error) { - assertJump(error); + return assertJump(error); } + assert.fail('should have thrown before'); }); it('should allow spending if daily limit is reached and then set higher', async function() { @@ -47,17 +48,18 @@ contract('DayLimit', function(accounts) { assert.equal(spentToday, 8); try { - await dayLimit.attemptSpend(3); + await dayLimit.attemptSpend(3); } catch(error) { - assertJump(error); - } - spentToday = await dayLimit.spentToday(); - assert.equal(spentToday, 8); + assertJump(error); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 8); - await dayLimit.setDailyLimit(15); - await dayLimit.attemptSpend(3); - spentToday = await dayLimit.spentToday(); - assert.equal(spentToday, 11); + await dayLimit.setDailyLimit(15); + await dayLimit.attemptSpend(3); + spentToday = await dayLimit.spentToday(); + return assert.equal(spentToday, 11); + } + assert.fail('should have thrown before'); }); it('should allow spending if daily limit is reached and then amount spent is reset', async function() { @@ -66,17 +68,18 @@ contract('DayLimit', function(accounts) { assert.equal(spentToday, 8); try { - await dayLimit.attemptSpend(3); + await dayLimit.attemptSpend(3); } catch(error) { - assertJump(error); - } - spentToday = await dayLimit.spentToday(); - assert.equal(spentToday, 8); + assertJump(error); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 8); - await dayLimit.resetSpentToday(15); - await dayLimit.attemptSpend(3); - spentToday = await dayLimit.spentToday(); - assert.equal(spentToday, 3); + await dayLimit.resetSpentToday(15); + await dayLimit.attemptSpend(3); + spentToday = await dayLimit.spentToday(); + return assert.equal(spentToday, 3); + } + assert.fail('should have thrown before'); }); it('should allow spending if daily limit is reached and then the next has come', async function() { @@ -91,15 +94,16 @@ contract('DayLimit', function(accounts) { await dayLimit.attemptSpend(3); } catch(error) { assertJump(error); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 8); + + await timer(day); + + await dayLimit.attemptSpend(3); + spentToday = await dayLimit.spentToday(); + return assert.equal(spentToday, 3); } - spentToday = await dayLimit.spentToday(); - assert.equal(spentToday, 8); - - await timer(day); - - await dayLimit.attemptSpend(3); - spentToday = await dayLimit.spentToday(); - assert.equal(spentToday, 3); + assert.fail('should have thrown before'); }); }); diff --git a/test/Ownable.js b/test/Ownable.js index 0ad2fffcb..ceeedef83 100644 --- a/test/Ownable.js +++ b/test/Ownable.js @@ -30,8 +30,9 @@ contract('Ownable', function(accounts) { try { await ownable.transferOwnership(other, {from: other}); } catch(error) { - assertJump(error); + return assertJump(error); } + assert.fail('should have thrown before'); }); it('should guard ownership against stuck state', async function() { diff --git a/test/Pausable.js b/test/Pausable.js index e96b683da..e87281af6 100644 --- a/test/Pausable.js +++ b/test/Pausable.js @@ -24,10 +24,11 @@ contract('Pausable', function(accounts) { try { await Pausable.normalProcess(); } catch(error) { - assertJump(error); + let count1 = await Pausable.count(); + assert.equal(count1, 0); + return assertJump(error); } - let count1 = await Pausable.count(); - assert.equal(count1, 0); + assert.fail('should have thrown before'); }); @@ -36,11 +37,11 @@ contract('Pausable', function(accounts) { try { await Pausable.drasticMeasure(); } catch(error) { - assertJump(error); + const drasticMeasureTaken = await Pausable.drasticMeasureTaken(); + assert.isFalse(drasticMeasureTaken); + return assertJump(error); } - - const drasticMeasureTaken = await Pausable.drasticMeasureTaken(); - assert.isFalse(drasticMeasureTaken); + assert.fail('should have thrown before'); }); it('can take a drastic measure in a pause', async function() { From b3f60b932024fff9ec672a5cb295039172f73e3f Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sat, 22 Jul 2017 21:40:01 +0100 Subject: [PATCH 076/160] refactor testing error throwing --- test/BasicToken.js | 6 ++--- test/Claimable.js | 12 +++++----- test/DayLimit.js | 56 +++++++++++++++++++++---------------------- test/LimitBalance.js | 14 +++++------ test/Ownable.js | 4 ++-- test/Pausable.js | 17 ++++++------- test/PausableToken.js | 8 +++---- test/SafeMath.js | 12 +++++----- test/StandardToken.js | 8 +++---- test/VestedToken.js | 20 ++++++++-------- 10 files changed, 79 insertions(+), 78 deletions(-) diff --git a/test/BasicToken.js b/test/BasicToken.js index 7ee9915ba..ee9bc9079 100644 --- a/test/BasicToken.js +++ b/test/BasicToken.js @@ -26,10 +26,10 @@ contract('BasicToken', function(accounts) { let token = await BasicTokenMock.new(accounts[0], 100); try { let transfer = await token.transfer(accounts[1], 101); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); - } - assert.fail('should have thrown before'); + assertJump(error); + } }); }); diff --git a/test/Claimable.js b/test/Claimable.js index 527b93205..602c0a042 100644 --- a/test/Claimable.js +++ b/test/Claimable.js @@ -25,11 +25,11 @@ contract('Claimable', function(accounts) { it('should prevent to claimOwnership from no pendingOwner', async function() { try { - await claimable.claimOwnership({from: accounts[2]}); + await claimable.claimOwnership({from: accounts[2]}); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); it('should prevent non-owners from transfering', async function() { @@ -37,11 +37,11 @@ contract('Claimable', function(accounts) { const owner = await claimable.owner.call(); assert.isTrue(owner !== other); try { - await claimable.transferOwnership(other, {from: other}); + await claimable.transferOwnership(other, {from: other}); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); describe('after initiating a transfer', function () { diff --git a/test/DayLimit.js b/test/DayLimit.js index ff7385298..bad39fdc8 100644 --- a/test/DayLimit.js +++ b/test/DayLimit.js @@ -35,11 +35,11 @@ contract('DayLimit', function(accounts) { assert.equal(spentToday, 8); try { - await dayLimit.attemptSpend(3); + await dayLimit.attemptSpend(3); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); it('should allow spending if daily limit is reached and then set higher', async function() { @@ -49,17 +49,17 @@ contract('DayLimit', function(accounts) { try { await dayLimit.attemptSpend(3); + assert.fail('should have thrown before'); } catch(error) { assertJump(error); - spentToday = await dayLimit.spentToday(); - assert.equal(spentToday, 8); - - await dayLimit.setDailyLimit(15); - await dayLimit.attemptSpend(3); - spentToday = await dayLimit.spentToday(); - return assert.equal(spentToday, 11); } - assert.fail('should have thrown before'); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 8); + + await dayLimit.setDailyLimit(15); + await dayLimit.attemptSpend(3); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 11); }); it('should allow spending if daily limit is reached and then amount spent is reset', async function() { @@ -69,17 +69,17 @@ contract('DayLimit', function(accounts) { try { await dayLimit.attemptSpend(3); + assert.fail('should have thrown before'); } catch(error) { assertJump(error); - spentToday = await dayLimit.spentToday(); - assert.equal(spentToday, 8); - - await dayLimit.resetSpentToday(15); - await dayLimit.attemptSpend(3); - spentToday = await dayLimit.spentToday(); - return assert.equal(spentToday, 3); } - assert.fail('should have thrown before'); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 8); + + await dayLimit.resetSpentToday(15); + await dayLimit.attemptSpend(3); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 3); }); it('should allow spending if daily limit is reached and then the next has come', async function() { @@ -92,18 +92,18 @@ contract('DayLimit', function(accounts) { try { await dayLimit.attemptSpend(3); + assert.fail('should have thrown before'); } catch(error) { assertJump(error); - spentToday = await dayLimit.spentToday(); - assert.equal(spentToday, 8); - - await timer(day); - - await dayLimit.attemptSpend(3); - spentToday = await dayLimit.spentToday(); - return assert.equal(spentToday, 3); } - assert.fail('should have thrown before'); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 8); + + await timer(day); + + await dayLimit.attemptSpend(3); + spentToday = await dayLimit.spentToday(); + assert.equal(spentToday, 3); }); }); diff --git a/test/LimitBalance.js b/test/LimitBalance.js index a872e6f50..12fae06c2 100644 --- a/test/LimitBalance.js +++ b/test/LimitBalance.js @@ -27,11 +27,11 @@ contract('LimitBalance', function(accounts) { it('shouldnt allow sending above limit', async function() { let amount = 1110; try { - await lb.limitedDeposit({value: amount}); + await lb.limitedDeposit({value: amount}); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); - } - assert.fail('should have thrown before'); + assertJump(error); + } }); it('should allow multiple sends below limit', async function() { @@ -52,10 +52,10 @@ contract('LimitBalance', function(accounts) { try { await lb.limitedDeposit({value: amount+1}); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); - } - assert.fail('should have thrown before'); + assertJump(error); + } }); }); diff --git a/test/Ownable.js b/test/Ownable.js index ceeedef83..915bcd4b5 100644 --- a/test/Ownable.js +++ b/test/Ownable.js @@ -29,10 +29,10 @@ contract('Ownable', function(accounts) { assert.isTrue(owner !== other); try { await ownable.transferOwnership(other, {from: other}); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); it('should guard ownership against stuck state', async function() { diff --git a/test/Pausable.js b/test/Pausable.js index e87281af6..8f1058e83 100644 --- a/test/Pausable.js +++ b/test/Pausable.js @@ -23,12 +23,12 @@ contract('Pausable', function(accounts) { try { await Pausable.normalProcess(); + assert.fail('should have thrown before'); } catch(error) { - let count1 = await Pausable.count(); - assert.equal(count1, 0); - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); + let count1 = await Pausable.count(); + assert.equal(count1, 0); }); @@ -36,12 +36,12 @@ contract('Pausable', function(accounts) { let Pausable = await PausableMock.new(); try { await Pausable.drasticMeasure(); + assert.fail('should have thrown before'); } catch(error) { - const drasticMeasureTaken = await Pausable.drasticMeasureTaken(); - assert.isFalse(drasticMeasureTaken); - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); + const drasticMeasureTaken = await Pausable.drasticMeasureTaken(); + assert.isFalse(drasticMeasureTaken); }); it('can take a drastic measure in a pause', async function() { @@ -69,6 +69,7 @@ contract('Pausable', function(accounts) { await Pausable.unpause(); try { await Pausable.drasticMeasure(); + assert.fail('should have thrown before'); } catch(error) { assertJump(error); } diff --git a/test/PausableToken.js b/test/PausableToken.js index 02318999c..b8c5ef282 100644 --- a/test/PausableToken.js +++ b/test/PausableToken.js @@ -55,19 +55,19 @@ contract('PausableToken', function(accounts) { await token.pause(); try { await token.transfer(accounts[1], 100); + assert.fail('should have thrown before'); } catch (error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); it('should throw an error trying to transfer from another account while transactions are paused', async function() { await token.pause(); try { await token.transferFrom(accounts[0], accounts[1], 100); + assert.fail('should have thrown before'); } catch (error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); }) \ No newline at end of file diff --git a/test/SafeMath.js b/test/SafeMath.js index 10a56d57d..dd07a16fc 100644 --- a/test/SafeMath.js +++ b/test/SafeMath.js @@ -40,10 +40,10 @@ contract('SafeMath', function(accounts) { let b = 5678; try { let subtract = await safeMath.subtract(a, b); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); it("should throw an error on addition overflow", async function() { @@ -51,10 +51,10 @@ contract('SafeMath', function(accounts) { let b = 1; try { let add = await safeMath.add(a, b); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); it("should throw an error on multiplication overflow", async function() { @@ -62,10 +62,10 @@ contract('SafeMath', function(accounts) { let b = 2; try { let multiply = await safeMath.multiply(a, b); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); }); diff --git a/test/StandardToken.js b/test/StandardToken.js index 0106926a9..3a96be81b 100644 --- a/test/StandardToken.js +++ b/test/StandardToken.js @@ -39,10 +39,10 @@ contract('StandardToken', function(accounts) { let token = await StandardTokenMock.new(accounts[0], 100); try { await token.transfer(accounts[1], 101); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); it('should return correct balances after transfering from another account', async function() { @@ -64,10 +64,10 @@ contract('StandardToken', function(accounts) { await token.approve(accounts[1], 99); try { await token.transferFrom(accounts[0], accounts[2], 100, {from: accounts[1]}); + assert.fail('should have thrown before'); } catch (error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }); }); diff --git a/test/VestedToken.js b/test/VestedToken.js index a909f8e72..c861eef97 100644 --- a/test/VestedToken.js +++ b/test/VestedToken.js @@ -46,20 +46,20 @@ contract('VestedToken', function(accounts) { it('throws when trying to transfer non vested tokens', async () => { try { await token.transfer(accounts[7], 1, { from: receiver }) + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }) it('throws when trying to transfer from non vested tokens', async () => { try { await token.approve(accounts[7], 1, { from: receiver }) await token.transferFrom(receiver, accounts[7], tokenAmount, { from: accounts[7] }) + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }) it('can be revoked by granter', async () => { @@ -71,10 +71,10 @@ contract('VestedToken', function(accounts) { it('cannot be revoked by non granter', async () => { try { await token.revokeTokenGrant(receiver, 0, { from: accounts[3] }); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }) it('can be revoked by granter and non vested tokens are returned', async () => { @@ -131,10 +131,10 @@ contract('VestedToken', function(accounts) { it('throws when granter attempts to revoke', async () => { try { await token.revokeTokenGrant(receiver, 0, { from: granter }); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }) }) @@ -160,10 +160,10 @@ contract('VestedToken', function(accounts) { it('cannot be revoked by non granter', async () => { try { await token.revokeTokenGrant(receiver, 0, { from: accounts[3] }); + assert.fail('should have thrown before'); } catch(error) { - return assertJump(error); + assertJump(error); } - assert.fail('should have thrown before'); }) it('can be revoked by granter and non vested tokens are returned', async () => { From 58e2e4d742f4f1e227eeab52c31c33dfce8c1efb Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 21 Jul 2017 17:27:48 -0300 Subject: [PATCH 077/160] remove MultisigWallet in favor of ConsenSys/MultiSigWallet --- contracts/MultisigWallet.sol | 125 ------------------- contracts/ownership/Multisig.sol | 28 ----- contracts/ownership/Shareable.sol | 183 ---------------------------- test/MultisigWallet.js | 119 ------------------ test/Shareable.js | 103 ---------------- test/helpers/MultisigWalletMock.sol | 12 -- test/helpers/ShareableMock.sol | 16 --- 7 files changed, 586 deletions(-) delete mode 100644 contracts/MultisigWallet.sol delete mode 100644 contracts/ownership/Multisig.sol delete mode 100644 contracts/ownership/Shareable.sol delete mode 100644 test/MultisigWallet.js delete mode 100644 test/Shareable.js delete mode 100644 test/helpers/MultisigWalletMock.sol delete mode 100644 test/helpers/ShareableMock.sol diff --git a/contracts/MultisigWallet.sol b/contracts/MultisigWallet.sol deleted file mode 100644 index 129164d0e..000000000 --- a/contracts/MultisigWallet.sol +++ /dev/null @@ -1,125 +0,0 @@ -pragma solidity ^0.4.11; - - -import "./ownership/Multisig.sol"; -import "./ownership/Shareable.sol"; -import "./DayLimit.sol"; - - -/** - * MultisigWallet - * Usage: - * bytes32 h = Wallet(w).from(oneOwner).execute(to, value, data); - * Wallet(w).from(anotherOwner).confirm(h); - */ -contract MultisigWallet is Multisig, Shareable, DayLimit { - - struct Transaction { - address to; - uint256 value; - bytes data; - } - - /** - * Constructor, sets the owners addresses, number of approvals required, and daily spending limit - * @param _owners A list of owners. - * @param _required The amount required for a transaction to be approved. - */ - function MultisigWallet(address[] _owners, uint256 _required, uint256 _daylimit) - Shareable(_owners, _required) - DayLimit(_daylimit) { } - - /** - * @dev destroys the contract sending everything to `_to`. - */ - function destroy(address _to) onlymanyowners(keccak256(msg.data)) external { - selfdestruct(_to); - } - - /** - * @dev Fallback function, receives value and emits a deposit event. - */ - function() payable { - // just being sent some cash? - if (msg.value > 0) - Deposit(msg.sender, msg.value); - } - - /** - * @dev Outside-visible transaction entry point. Executes transaction immediately if below daily - * spending limit. If not, goes into multisig process. We provide a hash on return to allow the - * sender to provide shortcuts for the other confirmations (allowing them to avoid replicating - * the _to, _value, and _data arguments). They still get the option of using them if they want, - * anyways. - * @param _to The receiver address - * @param _value The value to send - * @param _data The data part of the transaction - */ - function execute(address _to, uint256 _value, bytes _data) external onlyOwner returns (bytes32 _r) { - // first, take the opportunity to check that we're under the daily limit. - if (underLimit(_value)) { - SingleTransact(msg.sender, _value, _to, _data); - // yes - just execute the call. - if (!_to.call.value(_value)(_data)) { - revert(); - } - return 0; - } - // determine our operation hash. - _r = keccak256(msg.data, block.number); - if (!confirm(_r) && txs[_r].to == 0) { - txs[_r].to = _to; - txs[_r].value = _value; - txs[_r].data = _data; - ConfirmationNeeded(_r, msg.sender, _value, _to, _data); - } - } - - /** - * @dev Confirm a transaction by providing just the hash. We use the previous transactions map, - * txs, in order to determine the body of the transaction from the hash provided. - * @param _h The transaction hash to approve. - */ - function confirm(bytes32 _h) onlymanyowners(_h) returns (bool) { - if (txs[_h].to != 0) { - assert(txs[_h].to.call.value(txs[_h].value)(txs[_h].data)); - MultiTransact(msg.sender, _h, txs[_h].value, txs[_h].to, txs[_h].data); - delete txs[_h]; - return true; - } - } - - /** - * @dev Updates the daily limit value. - * @param _newLimit uint256 to represent the new limit. - */ - function setDailyLimit(uint256 _newLimit) onlymanyowners(keccak256(msg.data)) external { - _setDailyLimit(_newLimit); - } - - /** - * @dev Resets the value spent to enable more spending - */ - function resetSpentToday() onlymanyowners(keccak256(msg.data)) external { - _resetSpentToday(); - } - - - // INTERNAL METHODS - /** - * @dev Clears the list of transactions pending approval. - */ - function clearPending() internal { - uint256 length = pendingsIndex.length; - for (uint256 i = 0; i < length; ++i) { - delete txs[pendingsIndex[i]]; - } - super.clearPending(); - } - - - // FIELDS - - // pending transactions we have at present. - mapping (bytes32 => Transaction) txs; -} diff --git a/contracts/ownership/Multisig.sol b/contracts/ownership/Multisig.sol deleted file mode 100644 index 76c78411b..000000000 --- a/contracts/ownership/Multisig.sol +++ /dev/null @@ -1,28 +0,0 @@ -pragma solidity ^0.4.11; - - -/** - * @title Multisig - * @dev Interface contract for multisig proxy contracts; see below for docs. - */ -contract Multisig { - // EVENTS - - // logged events: - // Funds has arrived into the wallet (record how much). - event Deposit(address _from, uint256 value); - // Single transaction going out of the wallet (record who signed for it, how much, and to whom it's going). - event SingleTransact(address owner, uint256 value, address to, bytes data); - // Multi-sig transaction going out of the wallet (record who signed for it last, the operation hash, how much, and to whom it's going). - event MultiTransact(address owner, bytes32 operation, uint256 value, address to, bytes data); - // Confirmation still needed for a transaction. - event ConfirmationNeeded(bytes32 operation, address initiator, uint256 value, address to, bytes data); - - - // FUNCTIONS - - // TODO: document - function changeOwner(address _from, address _to) external; - function execute(address _to, uint256 _value, bytes _data) external returns (bytes32); - function confirm(bytes32 _h) returns (bool); -} diff --git a/contracts/ownership/Shareable.sol b/contracts/ownership/Shareable.sol deleted file mode 100644 index 899b8f31f..000000000 --- a/contracts/ownership/Shareable.sol +++ /dev/null @@ -1,183 +0,0 @@ -pragma solidity ^0.4.11; - - -/** - * @title Shareable - * @dev inheritable "property" contract that enables methods to be protected by requiring the - * acquiescence of either a single, or, crucially, each of a number of, designated owners. - * @dev Usage: use modifiers onlyowner (just own owned) or onlymanyowners(hash), whereby the same hash must be provided by some number (specified in constructor) of the set of owners (specified in the constructor) before the interior is executed. - */ -contract Shareable { - - // struct for the status of a pending operation. - struct PendingState { - uint256 yetNeeded; - uint256 ownersDone; - uint256 index; - } - - // the number of owners that must confirm the same operation before it is run. - uint256 public required; - - // list of owners - address[256] owners; - // index on the list of owners to allow reverse lookup - mapping(address => uint256) ownerIndex; - // the ongoing operations. - mapping(bytes32 => PendingState) pendings; - bytes32[] pendingsIndex; - - - // this contract only has six types of events: it can accept a confirmation, in which case - // we record owner and operation (hash) alongside it. - event Confirmation(address owner, bytes32 operation); - event Revoke(address owner, bytes32 operation); - - - // simple single-sig function modifier. - modifier onlyOwner { - require(isOwner(msg.sender)); - _; - } - - /** - * @dev Modifier for multisig functions. - * @param _operation The operation must have an intrinsic hash in order that later attempts can be - * realised as the same underlying operation and thus count as confirmations. - */ - modifier onlymanyowners(bytes32 _operation) { - if (confirmAndCheck(_operation)) { - _; - } - } - - /** - * @dev Constructor is given the number of sigs required to do protected "onlymanyowners" - * transactions as well as the selection of addresses capable of confirming them. - * @param _owners A list of owners. - * @param _required The amount required for a transaction to be approved. - */ - function Shareable(address[] _owners, uint256 _required) { - owners[1] = msg.sender; - ownerIndex[msg.sender] = 1; - for (uint256 i = 0; i < _owners.length; ++i) { - owners[2 + i] = _owners[i]; - ownerIndex[_owners[i]] = 2 + i; - } - required = _required; - require(required <= owners.length); - } - - /** - * @dev Revokes a prior confirmation of the given operation. - * @param _operation A string identifying the operation. - */ - function revoke(bytes32 _operation) external { - uint256 index = ownerIndex[msg.sender]; - // make sure they're an owner - if (index == 0) { - return; - } - uint256 ownerIndexBit = 2**index; - var pending = pendings[_operation]; - if (pending.ownersDone & ownerIndexBit > 0) { - pending.yetNeeded++; - pending.ownersDone -= ownerIndexBit; - Revoke(msg.sender, _operation); - } - } - - /** - * @dev Gets an owner by 0-indexed position (using numOwners as the count) - * @param ownerIndex uint256 The index of the owner - * @return The address of the owner - */ - function getOwner(uint256 ownerIndex) external constant returns (address) { - return address(owners[ownerIndex + 1]); - } - - /** - * @dev Checks if given address is an owner. - * @param _addr address The address which you want to check. - * @return True if the address is an owner and fase otherwise. - */ - function isOwner(address _addr) constant returns (bool) { - return ownerIndex[_addr] > 0; - } - - /** - * @dev Function to check is specific owner has already confirme the operation. - * @param _operation The operation identifier. - * @param _owner The owner address. - * @return True if the owner has confirmed and false otherwise. - */ - function hasConfirmed(bytes32 _operation, address _owner) constant returns (bool) { - var pending = pendings[_operation]; - uint256 index = ownerIndex[_owner]; - - // make sure they're an owner - if (index == 0) { - return false; - } - - // determine the bit to set for this owner. - uint256 ownerIndexBit = 2**index; - return !(pending.ownersDone & ownerIndexBit == 0); - } - - /** - * @dev Confirm and operation and checks if it's already executable. - * @param _operation The operation identifier. - * @return Returns true when operation can be executed. - */ - function confirmAndCheck(bytes32 _operation) internal returns (bool) { - // determine what index the present sender is: - uint256 index = ownerIndex[msg.sender]; - // make sure they're an owner - require(index != 0); - - var pending = pendings[_operation]; - // if we're not yet working on this operation, switch over and reset the confirmation status. - if (pending.yetNeeded == 0) { - // reset count of confirmations needed. - pending.yetNeeded = required; - // reset which owners have confirmed (none) - set our bitmap to 0. - pending.ownersDone = 0; - pending.index = pendingsIndex.length++; - pendingsIndex[pending.index] = _operation; - } - // determine the bit to set for this owner. - uint256 ownerIndexBit = 2**index; - // make sure we (the message sender) haven't confirmed this operation previously. - if (pending.ownersDone & ownerIndexBit == 0) { - Confirmation(msg.sender, _operation); - // ok - check if count is enough to go ahead. - if (pending.yetNeeded <= 1) { - // enough confirmations: reset and run interior. - delete pendingsIndex[pendings[_operation].index]; - delete pendings[_operation]; - return true; - } else { - // not enough: record that this owner in particular confirmed. - pending.yetNeeded--; - pending.ownersDone |= ownerIndexBit; - } - } - return false; - } - - - /** - * @dev Clear the pending list. - */ - function clearPending() internal { - uint256 length = pendingsIndex.length; - for (uint256 i = 0; i < length; ++i) { - if (pendingsIndex[i] != 0) { - delete pendings[pendingsIndex[i]]; - } - } - delete pendingsIndex; - } - -} diff --git a/test/MultisigWallet.js b/test/MultisigWallet.js deleted file mode 100644 index dd170f31b..000000000 --- a/test/MultisigWallet.js +++ /dev/null @@ -1,119 +0,0 @@ -'use strict'; - -var MultisigWalletMock = artifacts.require('./helpers/MultisigWalletMock.sol'); -require('./helpers/transactionMined.js'); - -contract('MultisigWallet', function(accounts) { - let shouldntFail = function(err) { - assert.isFalse(!!err); - }; - it('should send balance to passed address upon death', async function() { - //Give account[0] 20 ether - web3.eth.sendTransaction({from: web3.eth.coinbase, to: accounts[0], value: web3.toWei('20','ether')}, shouldntFail); - - let dailyLimit = 10; - let ownersRequired = 2; - - //Create MultisigWallet contract with 10 ether - let wallet = await MultisigWalletMock.new(accounts, ownersRequired, dailyLimit, {value: web3.toWei('10', 'ether')}); - - //Get balances of owner and wallet after wallet creation. - let ownerBalance = web3.eth.getBalance(accounts[0]); - let walletBalance = web3.eth.getBalance(wallet.address); - let hash = 1234; - - //Call destroy function from two different owner accounts, satisfying owners required - await wallet.destroy(accounts[0], {data: hash}); - let txnHash = await wallet.destroy(accounts[0], {from: accounts[1], data: hash}); - - //Get balances of owner and wallet after destroy function is complete, compare with previous values - let newOwnerBalance = web3.eth.getBalance(accounts[0]); - let newWalletBalance = web3.eth.getBalance(wallet.address); - - assert.isTrue(newOwnerBalance > ownerBalance); - assert.isTrue(newWalletBalance < walletBalance); - }); - - it('should execute transaction if below daily limit', async function() { - //Give account[0] 20 ether - web3.eth.sendTransaction({from: web3.eth.coinbase, to: accounts[0], value: web3.toWei('20','ether')}, shouldntFail); - - let dailyLimit = 10; - let ownersRequired = 2; - - //Create MultisigWallet contract with 10 ether - let wallet = await MultisigWalletMock.new(accounts, ownersRequired, dailyLimit, {value: web3.toWei('10', 'ether')}); - - let accountBalance = web3.eth.getBalance(accounts[2]); - let hash = 1234; - - //Owner account0 commands wallet to send 9 wei to account2 - let txnHash = await wallet.execute(accounts[2], 9, hash); - - //Balance of account2 should have increased - let newAccountBalance = web3.eth.getBalance(accounts[2]); - assert.isTrue(newAccountBalance.greaterThan(accountBalance)); - }); - - it('should prevent execution of transaction if above daily limit', async function() { - //Give account[0] 20 ether - web3.eth.sendTransaction({from: web3.eth.coinbase, to: accounts[0], value: web3.toWei('20','ether')}, shouldntFail); - - let dailyLimit = 10; - let ownersRequired = 2; - - //Create MultisigWallet contract with 10 ether - let wallet = await MultisigWalletMock.new(accounts, ownersRequired, dailyLimit, {value: web3.toWei('10', 'ether')}); - - let accountBalance = web3.eth.getBalance(accounts[2]); - let hash = 1234; - - //Owner account0 commands wallet to send 9 wei to account2 - let txnHash = await wallet.execute(accounts[2], 9, hash); - - //Balance of account2 should have increased - let newAccountBalance = web3.eth.getBalance(accounts[2]); - assert.isTrue(newAccountBalance > accountBalance); - - accountBalance = newAccountBalance; - hash = 4567; - - //Owner account0 commands wallet to send 2 more wei to account2, going over the daily limit of 10 - txnHash = await wallet.execute(accounts[2], 2, hash); - - //Balance of account2 should not change - newAccountBalance = web3.eth.getBalance(accounts[2]); - assert.equal(newAccountBalance.toString(), accountBalance.toString()); - }); - - it('should execute transaction if above daily limit and enough owners approve', async function() { - //Give account[0] 20 ether - web3.eth.sendTransaction({from: web3.eth.coinbase, to: accounts[0], value: web3.toWei('20','ether')}, shouldntFail); - - let dailyLimit = 10; - let ownersRequired = 2; - - //Create MultisigWallet contract with 10 ether - let wallet = await MultisigWalletMock.new(accounts, ownersRequired, dailyLimit, {value: web3.toWei('10', 'ether')}); - - let accountBalance = web3.eth.getBalance(accounts[2]); - let hash = 1234; - - //Owner account0 commands wallet to send 11 wei to account2 - let txnHash = await wallet.execute(accounts[2], 11, hash); - - //Balance of account2 should not change - let newAccountBalance = web3.eth.getBalance(accounts[2]); - assert.equal(newAccountBalance.toString(), accountBalance.toString()); - - accountBalance = newAccountBalance; - - //Owner account1 commands wallet to send 11 wei to account2 - txnHash = await wallet.execute(accounts[2], 2, hash); - - //Balance of account2 should change - newAccountBalance = web3.eth.getBalance(accounts[2]); - assert.isTrue(newAccountBalance > accountBalance); - }); - -}); diff --git a/test/Shareable.js b/test/Shareable.js deleted file mode 100644 index d652842dc..000000000 --- a/test/Shareable.js +++ /dev/null @@ -1,103 +0,0 @@ -var ShareableMock = artifacts.require("./helpers/ShareableMock.sol"); - -contract('Shareable', function(accounts) { - - it('should construct with correct owners and number of sigs required', async function() { - let requiredSigs = 2; - let owners = accounts.slice(1,4); - let shareable = await ShareableMock.new(owners, requiredSigs); - - let required = await shareable.required(); - assert.equal(required, requiredSigs); - let owner = await shareable.getOwner(0); - assert.equal(owner, accounts[0]); - - for(let i = 0; i < accounts.length; i++) { - let owner = await shareable.getOwner(i); - let isowner = await shareable.isOwner(accounts[i]); - if(i <= owners.length) { - assert.equal(accounts[i], owner); - assert.isTrue(isowner); - } else { - assert.notEqual(accounts[i], owner); - assert.isFalse(isowner); - } - } - }); - - it('should only perform multisig function with enough sigs', async function() { - let requiredSigs = 3; - let owners = accounts.slice(1,4); - let shareable = await ShareableMock.new(owners, requiredSigs); - let hash = 1234; - - let initCount = await shareable.count(); - initCount = initCount.toString(); - - for(let i = 0; i < requiredSigs; i++) { - await shareable.increaseCount(hash, {from: accounts[i]}); - let count = await shareable.count(); - if(i == requiredSigs - 1) { - assert.equal(Number(initCount)+1, count.toString()); - } else { - assert.equal(initCount, count.toString()); - } - } - }); - - it('should require approval from different owners', async function() { - let requiredSigs = 2; - let owners = accounts.slice(1,4); - let shareable = await ShareableMock.new(owners, requiredSigs); - let hash = 1234; - - let initCount = await shareable.count(); - initCount = initCount.toString(); - - //Count shouldn't increase when the same owner calls repeatedly - for(let i = 0; i < 2; i++) { - await shareable.increaseCount(hash); - let count = await shareable.count(); - assert.equal(initCount, count.toString()); - } - }); - - it('should reset sig count after operation is approved', async function() { - let requiredSigs = 3; - let owners = accounts.slice(1,4); - let shareable = await ShareableMock.new(owners, requiredSigs); - let hash = 1234; - - let initCount = await shareable.count(); - - for(let i = 0; i < requiredSigs * 3; i++) { - await shareable.increaseCount(hash, {from: accounts[i % 4]}); - let count = await shareable.count(); - if((i%(requiredSigs)) == requiredSigs - 1) { - initCount = Number(initCount)+1; - assert.equal(initCount, count); - } else { - assert.equal(initCount.toString(), count); - } - } - }); - - it('should not perform multisig function after an owner revokes', async function() { - let requiredSigs = 3; - let owners = accounts.slice(1,4); - let shareable = await ShareableMock.new(owners, requiredSigs); - let hash = 1234; - - let initCount = await shareable.count(); - - for(let i = 0; i < requiredSigs; i++) { - if(i == 1) { - await shareable.revoke(hash, {from: accounts[i-1]}); - } - await shareable.increaseCount(hash, {from: accounts[i]}); - let count = await shareable.count(); - assert.equal(initCount.toString(), count); - } - }); - -}); diff --git a/test/helpers/MultisigWalletMock.sol b/test/helpers/MultisigWalletMock.sol deleted file mode 100644 index 1b281db81..000000000 --- a/test/helpers/MultisigWalletMock.sol +++ /dev/null @@ -1,12 +0,0 @@ -pragma solidity ^0.4.11; -import "../../contracts/MultisigWallet.sol"; - -contract MultisigWalletMock is MultisigWallet { - uint256 public totalSpending; - - function MultisigWalletMock(address[] _owners, uint256 _required, uint256 _daylimit) - MultisigWallet(_owners, _required, _daylimit) payable { } - - function changeOwner(address _from, address _to) external { } - -} diff --git a/test/helpers/ShareableMock.sol b/test/helpers/ShareableMock.sol deleted file mode 100644 index f342e2e82..000000000 --- a/test/helpers/ShareableMock.sol +++ /dev/null @@ -1,16 +0,0 @@ -pragma solidity ^0.4.11; -import "../../contracts/ownership/Shareable.sol"; - -contract ShareableMock is Shareable { - - uint256 public count = 0; - - function ShareableMock(address[] _owners, uint256 _required) Shareable(_owners, _required) { - - } - - function increaseCount(bytes32 action) onlymanyowners(action) { - count = count + 1; - } - -} From 9a006f3a681a1d35f0801bbd31138f61ba0cec1f Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 24 Jul 2017 13:51:30 -0300 Subject: [PATCH 078/160] add check to see if process is running because when we interrupt the tests via ^C, the signal also kills the background process --- scripts/test.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/scripts/test.sh b/scripts/test.sh index 2890ab61b..c778cda02 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -4,8 +4,8 @@ trap cleanup EXIT cleanup() { - # Kill the testrpc instance that we started (if we started one). - if [ -n "$testrpc_pid" ]; then + # Kill the testrpc instance that we started (if we started one and if it's still running). + if [ -n "$testrpc_pid" ] && ps -p $testrpc_pid > /dev/null; then kill -9 $testrpc_pid fi } From bebe704688e4a0f75f5ccfa4cc68dda40dfa7757 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 24 Jul 2017 13:57:42 -0300 Subject: [PATCH 079/160] use portable shebang line --- scripts/test.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/test.sh b/scripts/test.sh index c778cda02..f55589db1 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -1,4 +1,4 @@ -#!/bin/bash +#!/usr/bin/env bash # Executes cleanup function at script exit. trap cleanup EXIT From 002acb984e98022979cc5c381b51c0e3e1c3654c Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 24 Jul 2017 15:55:14 -0300 Subject: [PATCH 080/160] remove coveralls token from repository --- .coveralls.yml | 1 - 1 file changed, 1 deletion(-) delete mode 100644 .coveralls.yml diff --git a/.coveralls.yml b/.coveralls.yml deleted file mode 100644 index 2d4b88950..000000000 --- a/.coveralls.yml +++ /dev/null @@ -1 +0,0 @@ -repo_token: AelGMv47LJ85e3KF1PhYBsjyduSjDmP0h From 9f0cbd3303a3037663d7d8dcec73ce70c7a91c8f Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 24 Jul 2017 19:12:47 -0300 Subject: [PATCH 081/160] move example contract --- contracts/{token => examples}/SimpleToken.sol | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename contracts/{token => examples}/SimpleToken.sol (100%) diff --git a/contracts/token/SimpleToken.sol b/contracts/examples/SimpleToken.sol similarity index 100% rename from contracts/token/SimpleToken.sol rename to contracts/examples/SimpleToken.sol From a799d218fdf56a4394b2f4c5dbb8663207988f46 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 24 Jul 2017 19:13:00 -0300 Subject: [PATCH 082/160] add constant qualifier --- contracts/examples/SimpleToken.sol | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/contracts/examples/SimpleToken.sol b/contracts/examples/SimpleToken.sol index 898cb21dd..b1ea2bdcb 100644 --- a/contracts/examples/SimpleToken.sol +++ b/contracts/examples/SimpleToken.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.11; -import "./StandardToken.sol"; +import "../token/StandardToken.sol"; /** @@ -12,10 +12,11 @@ import "./StandardToken.sol"; */ contract SimpleToken is StandardToken { - string public name = "SimpleToken"; - string public symbol = "SIM"; - uint256 public decimals = 18; - uint256 public INITIAL_SUPPLY = 10000; + string public constant name = "SimpleToken"; + string public constant symbol = "SIM"; + uint256 public constant decimals = 18; + + uint256 public constant INITIAL_SUPPLY = 10000; /** * @dev Contructor that gives msg.sender all of existing tokens. From 18e98fbba82b35fab24ac4029923a5a97709bd4f Mon Sep 17 00:00:00 2001 From: Santiago Palladino Date: Wed, 26 Jul 2017 16:36:13 -0300 Subject: [PATCH 083/160] Upgrade version of Truffle to 3.4.6 --- package.json | 3 +- yarn.lock | 3183 ++------------------------------------------------ 2 files changed, 88 insertions(+), 3098 deletions(-) diff --git a/package.json b/package.json index 59a587e10..993b2dfbf 100644 --- a/package.json +++ b/package.json @@ -35,6 +35,7 @@ "babel-preset-stage-2": "^6.18.0", "babel-preset-stage-3": "^6.17.0", "babel-register": "^6.23.0", + "babel-polyfill": "^6.23.0", "chai": "^4.0.2", "chai-as-promised": "^7.0.0", "chai-bignumber": "^2.0.0", @@ -43,6 +44,6 @@ "mocha-lcov-reporter": "^1.3.0", "moment": "^2.18.1", "solidity-coverage": "^0.1.7", - "truffle": "3.2.2" + "truffle": "^3.4.6" } } diff --git a/yarn.lock b/yarn.lock index c0b575078..b596b00d0 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,14 +2,6 @@ # yarn lockfile v1 -"@types/mkdirp@^0.3.29": - version "0.3.29" - resolved "https://registry.yarnpkg.com/@types/mkdirp/-/mkdirp-0.3.29.tgz#7f2ad7ec55f914482fc9b1ec4bb1ae6028d46066" - -"@types/node@^6", "@types/node@^6.0.45": - version "6.0.78" - resolved "https://registry.yarnpkg.com/@types/node/-/node-6.0.78.tgz#5d4a3f579c1524e01ee21bf474e6fba09198f470" - abbrev@1, abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" @@ -32,30 +24,12 @@ abstract-leveldown@~2.6.1: dependencies: xtend "~4.0.0" -accept@2.x.x: - version "2.1.4" - resolved "https://registry.yarnpkg.com/accept/-/accept-2.1.4.tgz#887af54ceee5c7f4430461971ec400c61d09acbb" - dependencies: - boom "5.x.x" - hoek "4.x.x" - -accepts@1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.3.tgz#c3ca7434938648c3e0d9c1e328dd68b622c284ca" - dependencies: - mime-types "~2.1.11" - negotiator "0.6.1" - acorn-jsx@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" dependencies: acorn "^3.0.4" -acorn@^1.0.3: - version "1.2.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-1.2.2.tgz#c8ce27de0acc76d896d2b1fad3df588d9e82f014" - acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" @@ -64,23 +38,15 @@ acorn@^5.0.1: version "5.0.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" -adm-zip@~0.4.3: - version "0.4.7" - resolved "https://registry.yarnpkg.com/adm-zip/-/adm-zip-0.4.7.tgz#8606c2cbf1c426ce8c8ec00174447fd49b6eafc1" - aes-js@^0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-0.2.4.tgz#94b881ab717286d015fa219e08fb66709dda5a3d" -after@0.8.2: - version "0.8.2" - resolved "https://registry.yarnpkg.com/after/-/after-0.8.2.tgz#fedb394f9f0e02aa9768e702bda23b505fae7e1f" - ajv-keywords@^1.0.0: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" -ajv@^4.7.0, ajv@^4.9.1: +ajv@^4.7.0: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" dependencies: @@ -99,19 +65,6 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" -ammo@2.x.x: - version "2.0.4" - resolved "https://registry.yarnpkg.com/ammo/-/ammo-2.0.4.tgz#bf80aab211698ea78f63ef5e7f113dd5d9e8917f" - dependencies: - boom "5.x.x" - hoek "4.x.x" - -ansi-align@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-1.1.0.tgz#2f0c1658829739add5ebb15e6b0c6e3423f016ba" - dependencies: - string-width "^1.0.1" - ansi-escapes@^1.1.0: version "1.4.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" @@ -128,13 +81,6 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" -anymatch@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.0.tgz#a3e52fa39168c825ff57b0248126ce5a8ff95507" - dependencies: - arrify "^1.0.0" - micromatch "^2.1.5" - aproba@^1.0.3: version "1.1.2" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" @@ -152,16 +98,6 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" -arr-diff@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" - dependencies: - arr-flatten "^1.0.1" - -arr-flatten@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.0.3.tgz#a274ed85ac08849b6bd7847c4580745dc51adfb1" - array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -172,39 +108,10 @@ array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" -array-unique@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" - -arraybuffer.slice@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/arraybuffer.slice/-/arraybuffer.slice-0.0.6.tgz#f33b2159f0532a3f3107a272c0ccfbd1ad2979ca" - arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" -asap@~2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.5.tgz#522765b50c3510490e52d7dcfe085ef9ba96958f" - -asn1.js@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-1.0.3.tgz#281ba3ec1f2448fe765f92a4eecf883fe1364b54" - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - optionalDependencies: - bn.js "^1.0.0" - -asn1.js@^4.9.1: - version "4.9.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" @@ -221,10 +128,6 @@ assertion-error@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" -async-each@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" - async-eventemitter@^0.2.2: version "0.2.3" resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.3.tgz#f79f480dfda6645a97bd6142c017150d63b4e70e" @@ -235,7 +138,7 @@ async@1.x, async@^1.4.0, async@^1.4.2, async@^1.5.2, async@~1.5.0: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" -async@^2.0.1, async@^2.1.2, async@^2.1.4, async@^2.1.5, async@^2.3.0, async@^2.4.0: +async@^2.0.1, async@^2.1.2, async@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/async/-/async-2.4.1.tgz#62a56b279c98a11d0987096a01cc3eeb8eb7bbd7" dependencies: @@ -253,31 +156,6 @@ aws4@^1.2.1: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" -b64@3.x.x: - version "3.0.2" - resolved "https://registry.yarnpkg.com/b64/-/b64-3.0.2.tgz#7a9d60466adf7b8de114cbdf651a5fdfcc90894d" - -babel-cli@*: - version "6.24.1" - resolved "https://registry.yarnpkg.com/babel-cli/-/babel-cli-6.24.1.tgz#207cd705bba61489b2ea41b5312341cf6aca2283" - dependencies: - babel-core "^6.24.1" - babel-polyfill "^6.23.0" - babel-register "^6.24.1" - babel-runtime "^6.22.0" - commander "^2.8.1" - convert-source-map "^1.1.0" - fs-readdir-recursive "^1.0.0" - glob "^7.0.0" - lodash "^4.2.0" - output-file-sync "^1.1.0" - path-is-absolute "^1.0.0" - slash "^1.0.0" - source-map "^0.5.0" - v8flags "^2.0.10" - optionalDependencies: - chokidar "^1.6.1" - babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" @@ -724,7 +602,7 @@ babel-polyfill@^6.23.0: core-js "^2.4.0" regenerator-runtime "^0.10.0" -babel-preset-es2015@*, babel-preset-es2015@^6.18.0, babel-preset-es2015@^6.24.0: +babel-preset-es2015@^6.18.0, babel-preset-es2015@^6.24.0: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz#d44050d6bc2c9feea702aaf38d727a0210538939" dependencies: @@ -772,7 +650,7 @@ babel-preset-stage-3@^6.17.0, babel-preset-stage-3@^6.24.1: babel-plugin-transform-exponentiation-operator "^6.24.1" babel-plugin-transform-object-rest-spread "^6.22.0" -babel-register@*, babel-register@^6.23.0, babel-register@^6.24.1: +babel-register@^6.23.0, babel-register@^6.24.1: version "6.24.1" resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.24.1.tgz#7e10e13a2f71065bdfad5a1787ba45bca6ded75f" dependencies: @@ -835,52 +713,20 @@ babylon@^6.17.2: version "6.17.3" resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.3.tgz#1327d709950b558f204e5352587fd0290f8d8e48" -backo2@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/backo2/-/backo2-1.0.2.tgz#31ab1ac8b129363463e35b3ebb69f4dfcfba7947" - balanced-match@^0.4.1: version "0.4.2" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" -base-x@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.0.tgz#77b56f0311070b780b3c8a5f534beac47e506702" - base-x@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/base-x/-/base-x-1.1.0.tgz#42d3d717474f9ea02207f6d1aa1f426913eeb7ac" -base-x@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.2.tgz#bf873861b7514279b7969f340929eab87c11d130" - dependencies: - safe-buffer "^5.0.1" - -base32.js@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/base32.js/-/base32.js-0.1.0.tgz#b582dec693c2f11e893cf064ee6ac5b6131a2202" - -base64-arraybuffer@0.1.5: - version "0.1.5" - resolved "https://registry.yarnpkg.com/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz#73926771923b5a19747ad666aa5cd4bf9c6e9ce8" - -base64id@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-1.0.0.tgz#47688cb99bb6804f0e06d3e763b1c32e57d8e6b6" - bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" dependencies: tweetnacl "^0.14.3" -better-assert@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/better-assert/-/better-assert-1.0.2.tgz#40866b9e1b9e0b55b481894311e68faffaebc522" - dependencies: - callsite "1.0.0" - "bignumber.js@git+https://github.com/debris/bignumber.js#master": version "2.0.7" resolved "git+https://github.com/debris/bignumber.js#c7a38de919ed75e6fb6ba38051986e294b328df9" @@ -893,14 +739,6 @@ bignumber.js@~2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.1.4.tgz#29b3bb693dbb238e88b72eac2fb89650888b2d59" -bignumber.js@~3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-3.0.1.tgz#807652d10e39de37e9e3497247edc798bb746f76" - -binary-extensions@^1.0.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.8.0.tgz#48ec8d16df4377eae5fa5884682480af4d95c774" - bindings@^1.2.1, bindings@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" @@ -930,7 +768,7 @@ bip66@^1.1.3: dependencies: safe-buffer "^5.0.1" -bl@^1.0.0, bl@^1.1.2: +bl@^1.0.0: version "1.2.1" resolved "https://registry.yarnpkg.com/bl/-/bl-1.2.1.tgz#cac328f7bee45730d404b692203fcb590e172d5e" dependencies: @@ -942,73 +780,16 @@ bl@~0.8.1: dependencies: readable-stream "~1.0.26" -blakejs@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.1.0.tgz#69df92ef953aa88ca51a32df6ab1c54a155fc7a5" - -blob@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/blob/-/blob-0.0.4.tgz#bcf13052ca54463f30f9fc7e95b9a47630a94921" - -block-stream@*: - version "0.0.9" - resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" - dependencies: - inherits "~2.0.0" - -bluebird@^3.4.1: - version "3.5.0" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.0.tgz#791420d7f551eea2897453a8a77653f96606d67c" - -bn.js@4.11.6, bn.js@^4.0.0, bn.js@^4.11.3, bn.js@^4.4.0, bn.js@^4.8.0: +bn.js@^4.11.3, bn.js@^4.4.0, bn.js@^4.8.0: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" -bn.js@^1.0.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-1.3.0.tgz#0db4cbf96f8f23b742f5bcb9d1aa7a9994a05e83" - boom@2.x.x: version "2.10.1" resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" dependencies: hoek "2.x.x" -boom@4.x.x, boom@^4.2.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" - dependencies: - hoek "4.x.x" - -boom@5.x.x: - version "5.1.0" - resolved "https://registry.yarnpkg.com/boom/-/boom-5.1.0.tgz#0308fa8e924cd6d42d9c3bf4883bdc98f0e71df8" - dependencies: - hoek "4.x.x" - -borc@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/borc/-/borc-2.0.2.tgz#8eae1a4d599cfdfdfc9fa857cbba69c90e83291f" - dependencies: - bignumber.js "~3.0.0" - commander "^2.9" - ieee754 "^1.1.8" - json-text-sequence "^0.1" - -boxen@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-0.6.0.tgz#8364d4248ac34ff0ef1b2f2bf49a6c60ce0d81b6" - dependencies: - ansi-align "^1.1.0" - camelcase "^2.1.0" - chalk "^1.1.1" - cli-boxes "^1.0.0" - filled-array "^1.0.0" - object-assign "^4.0.1" - repeating "^2.0.0" - string-width "^1.0.1" - widest-line "^1.0.0" - brace-expansion@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" @@ -1016,23 +797,6 @@ brace-expansion@^1.1.7: balanced-match "^0.4.1" concat-map "0.0.1" -braces@^1.8.2: - version "1.8.5" - resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" - dependencies: - expand-range "^1.8.1" - preserve "^0.2.0" - repeat-element "^1.1.2" - -brfs@^1.4.0: - version "1.4.3" - resolved "https://registry.yarnpkg.com/brfs/-/brfs-1.4.3.tgz#db675d6f5e923e6df087fca5859c9090aaed3216" - dependencies: - quote-stream "^1.0.1" - resolve "^1.1.5" - static-module "^1.1.0" - through2 "^2.0.0" - brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -1051,40 +815,22 @@ browserify-aes@^1.0.6: evp_bytestokey "^1.0.0" inherits "^2.0.1" -browserify-sha3@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.2.tgz#256cccc7ed972c4a80eb499c82aacccbee6c0a45" - dependencies: - js-sha3 "^0.5.1" - browserify-sha3@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.1.tgz#3ff34a3006ef15c0fb3567e541b91a2340123d11" dependencies: js-sha3 "^0.3.1" -browserify-zlib-next@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-zlib-next/-/browserify-zlib-next-1.0.1.tgz#880403868b4f6262f0f3eacf04699abf9f076f9f" - dependencies: - pako "~1.0.4" - bs58@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-2.0.1.tgz#55908d58f1982aba2008fa1bed8f91998a29bf8d" -bs58@^3.0.0, bs58@^3.1.0: +bs58@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/bs58/-/bs58-3.1.0.tgz#d4c26388bf4804cac714141b1945aa47e5eb248e" dependencies: base-x "^1.1.0" -bs58@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" - dependencies: - base-x "^3.0.2" - bs58check@^1.0.8: version "1.3.4" resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-1.3.4.tgz#c52540073749117714fa042c3047eb8f9151cbf8" @@ -1092,14 +838,6 @@ bs58check@^1.0.8: bs58 "^3.1.0" create-hash "^1.1.0" -buffer-equal@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - -buffer-loader@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-loader/-/buffer-loader-0.0.1.tgz#4d677ca92dd889310878b02a2fbcfab712024cf2" - buffer-xor@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" @@ -1108,10 +846,6 @@ builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - bytewise-core@^1.2.2: version "1.2.3" resolved "https://registry.yarnpkg.com/bytewise-core/-/bytewise-core-1.2.3.tgz#3fb410c7e91558eb1ab22a82834577aa6bd61d42" @@ -1125,23 +859,12 @@ bytewise@~1.1.0: bytewise-core "^1.2.2" typewise "^1.0.3" -call@3.x.x: - version "3.0.4" - resolved "https://registry.yarnpkg.com/call/-/call-3.0.4.tgz#e380f2f2a491330aa79085355f8be080877d559e" - dependencies: - boom "4.x.x" - hoek "4.x.x" - caller-path@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" dependencies: callsites "^0.2.0" -callsite@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/callsite/-/callsite-1.0.0.tgz#280398e5d664bd74038b6f0905153e6e8af1bc20" - callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" @@ -1150,40 +873,14 @@ camelcase@^1.0.2, camelcase@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" -camelcase@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" - camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" -capture-stack-trace@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/capture-stack-trace/-/capture-stack-trace-1.0.0.tgz#4a6fa07399c26bba47f0b2496b4d0fb408c5550d" - caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - -catbox-memory@2.x.x: - version "2.0.4" - resolved "https://registry.yarnpkg.com/catbox-memory/-/catbox-memory-2.0.4.tgz#433e255902caf54233d1286429c8f4df14e822d5" - dependencies: - hoek "4.x.x" - -catbox@7.x.x: - version "7.1.4" - resolved "https://registry.yarnpkg.com/catbox/-/catbox-7.1.4.tgz#8a950ed18b64ba8088c1ae132e85c58479d2b6cc" - dependencies: - boom "5.x.x" - hoek "4.x.x" - joi "10.x.x" - center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" @@ -1202,14 +899,6 @@ chai-bignumber@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/chai-bignumber/-/chai-bignumber-2.0.0.tgz#0cbf9b81790801c3f24fb77f59fa1e17a9c6e3f2" -chai@^3.3.0, chai@^3.5.0: - version "3.5.0" - resolved "https://registry.yarnpkg.com/chai/-/chai-3.5.0.tgz#4d02637b067fe958bdbfdd3a40ec56fef7373247" - dependencies: - assertion-error "^1.0.1" - deep-eql "^0.1.3" - type-detect "^1.0.0" - chai@^4.0.2: version "4.0.2" resolved "https://registry.yarnpkg.com/chai/-/chai-4.0.2.tgz#2f7327c4de6f385dd7787999e2ab02697a32b83b" @@ -1241,49 +930,10 @@ checkpoint-store@^1.1.0: dependencies: functional-red-black-tree "^1.0.1" -chokidar@^1.4.2, chokidar@^1.6.1: - version "1.7.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" -cids@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.2.0.tgz#0a79f621c34eb3ff9c3be505fda2b809710847fc" - dependencies: - multibase "^0.2.0" - multicodec "0.1.0" - multihashes "^0.2.2" - -cids@^0.3.4: - version "0.3.6" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.3.6.tgz#a0a3a2c386105a92ecd9c8a2f2239beb2f544c15" - dependencies: - multibase "^0.3.0" - multicodec "^0.1.3" - multihashes "^0.3.1" - -cids@^0.4.0, cids@~0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cids/-/cids-0.4.2.tgz#f1414e78fa466fe97a7ce9cd6c03892993bef307" - dependencies: - multibase "~0.3.4" - multicodec "~0.1.7" - multihashes "~0.4.4" - cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: version "1.0.3" resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" @@ -1294,10 +944,6 @@ circular-json@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" -cli-boxes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-1.0.0.tgz#4fa917c3e59c94a004cd61f8ee509da651687143" - cli-cursor@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" @@ -1343,10 +989,6 @@ coinstring@^2.0.0: bs58 "^2.0.1" create-hash "^1.1.1" -colors@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" - combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.5.tgz#938370a57b4a51dea2c77c15d5c5fdf895164009" @@ -1361,33 +1003,17 @@ commander@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873" -commander@2.9.0, commander@^2.8.1, commander@^2.9, commander@^2.9.0: +commander@2.9.0, commander@^2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: graceful-readlink ">= 1.0.0" -component-bind@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/component-bind/-/component-bind-1.0.0.tgz#00c608ab7dcd93897c0009651b1d3a8e1e73bbd1" - -component-emitter@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.1.2.tgz#296594f2753daa63996d2af08d15a95116c9aec3" - -component-emitter@1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" - -component-inherit@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/component-inherit/-/component-inherit-0.0.3.tgz#645fc4adf58b72b649d5cae65135619db26ff143" - concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.5.2, concat-stream@~1.6.0: +concat-stream@^1.5.2: version "1.6.0" resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" dependencies: @@ -1395,38 +1021,14 @@ concat-stream@^1.5.2, concat-stream@~1.6.0: readable-stream "^2.2.2" typedarray "^0.0.6" -configstore@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-2.1.0.tgz#737a3a7036e9886102aa6099e47bb33ab1aba1a1" - dependencies: - dot-prop "^3.0.0" - graceful-fs "^4.1.2" - mkdirp "^0.5.0" - object-assign "^4.0.1" - os-tmpdir "^1.0.0" - osenv "^0.1.0" - uuid "^2.0.1" - write-file-atomic "^1.1.2" - xdg-basedir "^2.0.0" - console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" -content@3.x.x, content@^3.0.0: - version "3.0.4" - resolved "https://registry.yarnpkg.com/content/-/content-3.0.4.tgz#ca3dde04480f12519b71526ec44bd488ddfb3fef" - dependencies: - boom "5.x.x" - convert-source-map@^1.1.0: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" -cookie@0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" - core-js@^2.4.0: version "2.4.1" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" @@ -1445,20 +1047,6 @@ coveralls@^2.13.1: minimist "1.2.0" request "2.79.0" -cpr@^0.4.3: - version "0.4.3" - resolved "https://registry.yarnpkg.com/cpr/-/cpr-0.4.3.tgz#0a23e4b6ec23f3b8cc7a405ecb5cfdc778f7de25" - dependencies: - graceful-fs "~4.1.2" - mkdirp "~0.5.0" - rimraf "~2.4.3" - -create-error-class@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/create-error-class/-/create-error-class-3.0.2.tgz#06be7abef947a3f14a30fd610671d401bca8b7b6" - dependencies: - capture-stack-trace "^1.0.0" - create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" @@ -1485,20 +1073,10 @@ cryptiles@2.x.x: dependencies: boom "2.x.x" -cryptiles@3.x.x: - version "3.1.2" - resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" - dependencies: - boom "5.x.x" - crypto-js@^3.1.4: version "3.1.8" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.8.tgz#715f070bf6014f2ae992a98b3929258b713f08d5" -crypto-js@^3.1.9-1: - version "3.1.9-1" - resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.9-1.tgz#fda19e761fc077e01ffbfdc6e9fdfc59e8806cd8" - d@1: version "1.0.0" resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" @@ -1511,31 +1089,19 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" -debug@2.2.0, debug@~2.2.0: +debug@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" dependencies: ms "0.7.1" -debug@2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.3.3.tgz#40c453e67e6e13c901ddec317af8986cda9eff8c" - dependencies: - ms "0.7.2" - debug@2.6.0: version "2.6.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" dependencies: ms "0.7.2" -debug@2.6.7: - version "2.6.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.7.tgz#92bad1f6d05bbb6bba22cca88bcd0ec894c2861e" - dependencies: - ms "2.0.0" - -debug@^2.1.0, debug@^2.1.1, debug@^2.2.0, debug@^2.3.2, debug@^2.3.3, debug@^2.6.3, debug@^2.6.8: +debug@^2.1.1, debug@^2.2.0: version "2.6.8" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" dependencies: @@ -1545,12 +1111,6 @@ decamelize@^1.0.0, decamelize@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" -deep-eql@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-0.1.3.tgz#ef558acab8de25206cd713906d74e56930eb69f2" - dependencies: - type-detect "0.1.1" - deep-eql@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-2.0.2.tgz#b1bac06e56f0a76777686d50c9feb75c2ed7679a" @@ -1592,7 +1152,7 @@ defined@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" -del@^2.0.2, del@^2.2.0: +del@^2.0.2: version "2.2.2" resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" dependencies: @@ -1612,39 +1172,12 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -delimit-stream@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/delimit-stream/-/delimit-stream-0.1.0.tgz#9b8319477c0e5f8aeb3ce357ae305fc25ea1cd2b" - -depd@1.1.0, depd@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.0.tgz#e1bd82c6aab6ced965b97b88b17ed3e528ca18c3" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - detect-indent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" dependencies: repeating "^2.0.0" -detect-node@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" - -dexie@^1.4.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/dexie/-/dexie-1.5.1.tgz#ac3ad5a0ebaf7e6e42760db58710418d4a756624" - -dicer@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/dicer/-/dicer-0.2.5.tgz#5996c086bb33218c812c090bddc09cd12facb70f" - dependencies: - readable-stream "1.1.x" - streamsearch "0.1.2" - diff@1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/diff/-/diff-1.4.0.tgz#7f28d2eb9ee7b15a97efd89ce63dcfdaa3ccbabf" @@ -1664,12 +1197,6 @@ dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" -dot-prop@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-3.0.0.tgz#1b708af094a49c9a0e7dbcad790aba539dac1177" - dependencies: - is-obj "^1.0.0" - drbg.js@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" @@ -1678,28 +1205,12 @@ drbg.js@^1.0.1: create-hash "^1.1.2" create-hmac "^1.1.4" -duplexer2@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - dependencies: - readable-stream "^2.0.2" - -duplexer2@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.0.2.tgz#c614dcf67e2fb14995a91711e5a617e8a60a31db" - dependencies: - readable-stream "~1.1.9" - ecc-jsbn@~0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" dependencies: jsbn "~0.1.0" -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - elliptic@^6.2.3: version "6.4.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" @@ -1712,10 +1223,6 @@ elliptic@^6.2.3: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" -encodeurl@~1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.1.tgz#79e3d58655346909fe6f0f45a5de68103b294d20" - encoding@^0.1.11: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" @@ -1728,45 +1235,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -engine.io-client@~1.8.4: - version "1.8.4" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-1.8.4.tgz#9fe85dee25853ca6babe25bd2ad68710863e91c2" - dependencies: - component-emitter "1.2.1" - component-inherit "0.0.3" - debug "2.3.3" - engine.io-parser "1.3.2" - has-cors "1.1.0" - indexof "0.0.1" - parsejson "0.0.3" - parseqs "0.0.5" - parseuri "0.0.5" - ws "1.1.2" - xmlhttprequest-ssl "1.5.3" - yeast "0.1.2" - -engine.io-parser@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-1.3.2.tgz#937b079f0007d0893ec56d46cb220b8cb435220a" - dependencies: - after "0.8.2" - arraybuffer.slice "0.0.6" - base64-arraybuffer "0.1.5" - blob "0.0.4" - has-binary "0.1.7" - wtf-8 "1.0.0" - -engine.io@~1.8.4: - version "1.8.4" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-1.8.4.tgz#77bce12b80e5d60429337fec3b0daf691ebc9003" - dependencies: - accepts "1.3.3" - base64id "1.0.0" - cookie "0.3.1" - debug "2.3.3" - engine.io-parser "1.3.2" - ws "1.1.4" - errno@~0.1.1: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" @@ -1848,10 +1316,6 @@ es6-weak-map@^2.0.1: es6-iterator "^2.0.1" es6-symbol "^3.1.1" -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - escape-string-regexp@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" @@ -1871,25 +1335,6 @@ escodegen@1.8.x: optionalDependencies: source-map "~0.2.0" -escodegen@~0.0.24: - version "0.0.28" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-0.0.28.tgz#0e4ff1715f328775d6cab51ac44a406cd7abffd3" - dependencies: - esprima "~1.0.2" - estraverse "~1.3.0" - optionalDependencies: - source-map ">= 0.1.2" - -escodegen@~1.3.2: - version "1.3.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.3.3.tgz#f024016f5a88e046fd12005055e939802e6c5f23" - dependencies: - esprima "~1.1.1" - estraverse "~1.5.0" - esutils "~1.0.0" - optionalDependencies: - source-map "~0.1.33" - escope@^3.6.0: version "3.6.0" resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" @@ -1950,14 +1395,6 @@ esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esprima@~1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.0.4.tgz#9f557e08fc3b4d26ece9dd34f8fbf476b62585ad" - -esprima@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.1.1.tgz#5b6f1547f4d102e670e140c509be6771d6aeb549" - esquery@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" @@ -1979,26 +1416,10 @@ estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" -estraverse@~1.3.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.3.2.tgz#37c2b893ef13d723f276d878d60d8535152a6c42" - -estraverse@~1.5.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.5.1.tgz#867a3e8e58a9f84618afb6c2ddbcd916b7cbaf71" - esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" -esutils@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-1.0.0.tgz#8151d358e20c8acc7fb745e7472c0025fe496570" - -etag@~1.8.0: - version "1.8.0" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.0.tgz#6f631aef336d6c46362b51764044ce216be3c051" - ethereum-common@0.0.16: version "0.0.16" resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.16.tgz#9a1e169ead34ab75e089f50ca512bfd0fbd12655" @@ -2106,7 +1527,7 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@~5.1.0: rlp "^2.0.0" secp256k1 "^3.0.1" -"ethereumjs-vm-sc@https://github.com/sc-forks/ethereumjs-vm-sc.git", "ethereumjs-vm@https://github.com/sc-forks/ethereumjs-vm-sc.git": +"ethereumjs-vm-sc@https://github.com/sc-forks/ethereumjs-vm-sc.git", ethereumjs-vm@^2.0.2, "ethereumjs-vm@https://github.com/sc-forks/ethereumjs-vm-sc.git": version "2.0.2" resolved "https://github.com/sc-forks/ethereumjs-vm-sc.git#7ad1fd13789b4e6f307e3f282289e58b6d4e94a7" dependencies: @@ -2120,20 +1541,6 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@~5.1.0: functional-red-black-tree "^1.0.1" merkle-patricia-tree "^2.1.2" -ethereumjs-vm@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.0.2.tgz#84e2372a5715a80a62f7f2a312f8c64537e8a842" - dependencies: - async "^2.1.2" - async-eventemitter "^0.2.2" - ethereum-common "0.0.18" - ethereumjs-account "^2.0.3" - ethereumjs-block "^1.2.2" - ethereumjs-util "^4.0.1" - fake-merkle-patricia-tree "^1.0.1" - functional-red-black-tree "^1.0.1" - merkle-patricia-tree "^2.1.2" - ethereumjs-wallet@^0.6.0, ethereumjs-wallet@~0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.0.tgz#82763b1697ee7a796be7155da9dfb49b2f98cfdb" @@ -2146,14 +1553,6 @@ ethereumjs-wallet@^0.6.0, ethereumjs-wallet@~0.6.0: utf8 "^2.1.1" uuid "^2.0.1" -ethjs-abi@0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/ethjs-abi/-/ethjs-abi-0.1.8.tgz#cd288583ed628cdfadaf8adefa3ba1dbcbca6c18" - dependencies: - bn.js "4.11.6" - js-sha3 "0.5.5" - number-to-bn "1.7.0" - ethjs-util@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.4.tgz#1c8b6879257444ef4d3f3fbbac2ded12cd997d93" @@ -2161,41 +1560,6 @@ ethjs-util@^0.1.3: is-hex-prefixed "1.0.0" strip-hex-prefix "1.0.0" -ethpm-registry@0.0.9: - version "0.0.9" - resolved "https://registry.yarnpkg.com/ethpm-registry/-/ethpm-registry-0.0.9.tgz#b76159a45cde351decbd21bf83be5bf7edfb14c1" - dependencies: - fs-extra "^2.0.0" - left-pad "^1.1.3" - semver "^5.3.0" - solidity-sha3 "^0.4.1" - truffle-artifactor "^2.1.2" - truffle-contract "^1.1.6" - web3 "^0.18.2" - -ethpm-spec@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/ethpm-spec/-/ethpm-spec-1.0.1.tgz#ad3c09ae0492ad3d3ec7b94b7f5fd8057d4deb91" - dependencies: - json-schema-to-markdown "^1.0.3" - -ethpm@0.0.10: - version "0.0.10" - resolved "https://registry.yarnpkg.com/ethpm/-/ethpm-0.0.10.tgz#ce7ed7ed1955e9c3bfa2e47a905118a27ad66cc4" - dependencies: - async "^2.1.2" - ethpm-spec "^1.0.0" - fs-extra "^1.0.0" - glob "^7.1.1" - ipfs "^0.18.0" - ipfs-api "^11.1.0" - jsonschema "^1.1.1" - lodash "^4.17.1" - node-dir "^0.1.16" - promisify-node "^0.4.0" - semver "^5.3.0" - wget-improved "^1.4.0" - event-emitter@~0.3.5: version "0.3.5" resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" @@ -2213,18 +1577,6 @@ exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" -expand-brackets@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" - dependencies: - is-posix-bracket "^0.1.0" - -expand-range@^1.8.1: - version "1.8.2" - resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" - dependencies: - fill-range "^2.1.0" - expand-template@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.0.3.tgz#6c303323177a62b1b22c070279f7861287b69b1a" @@ -2233,12 +1585,6 @@ extend@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" -extglob@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" - dependencies: - is-extglob "^1.0.0" - extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" @@ -2249,15 +1595,6 @@ fake-merkle-patricia-tree@^1.0.1, fake-merkle-patricia-tree@~1.0.1: dependencies: checkpoint-store "^1.1.0" -falafel@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/falafel/-/falafel-1.2.0.tgz#c18d24ef5091174a497f318cd24b026a25cddab4" - dependencies: - acorn "^1.0.3" - foreach "^2.0.5" - isarray "0.0.1" - object-keys "^1.0.6" - fast-future@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/fast-future/-/fast-future-1.0.2.tgz#8435a9aaa02d79248d17d704e76259301d99280a" @@ -2280,33 +1617,6 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" -filename-regex@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" - -fill-range@^2.1.0: - version "2.2.3" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" - dependencies: - is-number "^2.1.0" - isobject "^2.0.0" - randomatic "^1.1.3" - repeat-element "^1.1.2" - repeat-string "^1.5.2" - -filled-array@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/filled-array/-/filled-array-1.1.0.tgz#c3c4f6c663b923459a9aa29912d2d031f1507f84" - -finalhandler@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-0.4.1.tgz#85a17c6c59a94717d262d61230d4b0ebe3d4a14d" - dependencies: - debug "~2.2.0" - escape-html "~1.0.3" - on-finished "~2.3.0" - unpipe "~1.0.0" - find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -2314,12 +1624,6 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" -find-up@^2.0.0, find-up@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" - dependencies: - locate-path "^2.0.0" - flat-cache@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" @@ -2329,26 +1633,12 @@ flat-cache@^1.2.1: graceful-fs "^4.1.2" write "^0.2.1" -flatmap@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/flatmap/-/flatmap-0.0.3.tgz#1f18a4d938152d495965f9c958d923ab2dd669b4" - for-each@^0.3.2, for-each@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4" dependencies: is-function "~1.0.0" -for-in@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - -for-own@^0.1.4: - version "0.1.5" - resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" - dependencies: - for-in "^1.0.1" - foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" @@ -2365,19 +1655,6 @@ form-data@~2.1.1: combined-stream "^1.0.5" mime-types "^2.1.12" -fresh@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.0.tgz#f474ca5e6a9246d6fd8e0953cfa9b9c805afa78e" - -fs-extra@^0.24.0: - version "0.24.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.24.0.tgz#d4e4342a96675cb7846633a6099249332b539952" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-extra@^0.30.0: version "0.30.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" @@ -2388,63 +1665,10 @@ fs-extra@^0.30.0: path-is-absolute "^1.0.0" rimraf "^2.2.8" -fs-extra@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-1.0.0.tgz#cd3ce5f7e7cb6145883fcae3191e9877f8587950" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - -fs-extra@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-2.1.2.tgz#046c70163cef9aad46b0e4a7fa467fb22d71de35" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - -fs-pull-blob-store@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/fs-pull-blob-store/-/fs-pull-blob-store-0.3.0.tgz#b489757b4445cdca8e2eab35a9744a44f3453b16" - dependencies: - mkdirp "^0.5.1" - pull-defer "^0.2.2" - pull-file "^0.5.0" - pull-stream "^3.4.3" - pull-write-file "^0.2.1" - -fs-readdir-recursive@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs-readdir-recursive/-/fs-readdir-recursive-1.0.0.tgz#8cd1745c8b4f8a29c8caec392476921ba195f560" - fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.1.tgz#f19fd28f43eeaf761680e519a203c4d0b3d31aff" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.29" - -fstream-ignore@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" - dependencies: - fstream "^1.0.0" - inherits "2" - minimatch "^3.0.0" - -fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: - version "1.0.11" - resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" - dependencies: - graceful-fs "^4.1.2" - inherits "~2.0.0" - mkdirp ">=0.5 0" - rimraf "2" - function-bind@^1.0.2, function-bind@^1.1.0, function-bind@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" @@ -2470,16 +1694,12 @@ generate-function@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" -generate-object-property@^1.1.0, generate-object-property@^1.2.0: +generate-object-property@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" dependencies: is-property "^1.0.0" -get-browser-rtc@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/get-browser-rtc/-/get-browser-rtc-1.0.2.tgz#bbcd40c8451a7ed4ef5c373b8169a409dd1d11d9" - get-caller-file@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" @@ -2494,32 +1714,10 @@ getpass@^0.1.1: dependencies: assert-plus "^1.0.0" -github-download@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/github-download/-/github-download-0.5.0.tgz#f7647a70aac4326fb091e5786c8f66ae157da51b" - dependencies: - adm-zip "~0.4.3" - fs-extra "^0.24.0" - request "^2.12.0" - vcsurl "~0.1.0" - github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" -glob-base@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" - dependencies: - glob-parent "^2.0.0" - is-glob "^2.0.0" - -glob-parent@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" - dependencies: - is-glob "^2.0.0" - glob@3.2.11: version "3.2.11" resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" @@ -2558,7 +1756,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@~7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -2591,27 +1789,7 @@ globby@^5.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -got@^5.0.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/got/-/got-5.7.1.tgz#5f81635a61e4a6589f180569ea4e381680a51f35" - dependencies: - create-error-class "^3.0.1" - duplexer2 "^0.1.4" - is-redirect "^1.0.0" - is-retry-allowed "^1.0.0" - is-stream "^1.0.0" - lowercase-keys "^1.0.0" - node-status-codes "^1.0.0" - object-assign "^4.0.1" - parse-json "^2.1.0" - pinkie-promise "^2.0.0" - read-all-stream "^3.0.0" - readable-stream "^2.0.5" - timed-out "^3.0.0" - unzip-response "^1.0.2" - url-parse-lax "^1.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@~4.1.2: +graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -2619,12 +1797,6 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.4, graceful-fs@^4.1.6, version "1.0.1" resolved "https://registry.yarnpkg.com/graceful-readlink/-/graceful-readlink-1.0.1.tgz#4cafad76bc62f02fa039b2f94e9a3dd3a391a725" -graphlib@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/graphlib/-/graphlib-2.1.1.tgz#42352c52ba2f4d035cb566eb91f7395f76ebc951" - dependencies: - lodash "^4.11.1" - growl@1.9.2: version "1.9.2" resolved "https://registry.yarnpkg.com/growl/-/growl-1.9.2.tgz#0ea7743715db8d8de2c5ede1775e1b45ac85c02f" @@ -2639,37 +1811,6 @@ handlebars@^4.0.1: optionalDependencies: uglify-js "^2.6" -hapi-set-header@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/hapi-set-header/-/hapi-set-header-1.0.2.tgz#2afae002c6719d6d54f3fa88462f822892d2df13" - -hapi@^15.0.3, hapi@^15.2.0: - version "15.2.0" - resolved "https://registry.yarnpkg.com/hapi/-/hapi-15.2.0.tgz#5704ca2c04b6386c03caf9ee901f1de080316d23" - dependencies: - accept "2.x.x" - ammo "2.x.x" - boom "4.x.x" - call "3.x.x" - catbox "7.x.x" - catbox-memory "2.x.x" - cryptiles "3.x.x" - heavy "4.x.x" - hoek "4.x.x" - iron "4.x.x" - items "2.x.x" - joi "9.x.x" - mimos "3.x.x" - podium "^1.2.x" - shot "3.x.x" - statehood "5.x.x" - subtext "^4.3.x" - topo "2.x.x" - -har-schema@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" - har-validator@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" @@ -2679,29 +1820,12 @@ har-validator@~2.0.6: is-my-json-valid "^2.12.4" pinkie-promise "^2.0.0" -har-validator@~4.2.1: - version "4.2.1" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" - dependencies: - ajv "^4.9.1" - har-schema "^1.0.5" - has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" dependencies: ansi-regex "^2.0.0" -has-binary@0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/has-binary/-/has-binary-0.1.7.tgz#68e61eb16210c9545a0a5cce06a873912fe1e68c" - dependencies: - isarray "0.0.1" - -has-cors@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/has-cors/-/has-cors-1.1.0.tgz#5e474793f7ea9843d1bb99c23eef49ff126fff39" - has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" @@ -2710,7 +1834,7 @@ has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" -has@^1.0.0, has@^1.0.1, has@~1.0.1: +has@^1.0.1, has@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" dependencies: @@ -2744,18 +1868,10 @@ hdkey@^0.7.0: coinstring "^2.0.0" secp256k1 "^3.0.1" -heap@^0.2.6, heap@~0.2.6: +heap@~0.2.6: version "0.2.6" resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" -heavy@4.x.x: - version "4.0.4" - resolved "https://registry.yarnpkg.com/heavy/-/heavy-4.0.4.tgz#36c91336c00ccfe852caa4d153086335cd2f00e9" - dependencies: - boom "5.x.x" - hoek "4.x.x" - joi "10.x.x" - hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -2768,10 +1884,6 @@ hoek@2.x.x: version "2.16.3" resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" -hoek@4.x.x: - version "4.1.1" - resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.1.1.tgz#9cc573ffba2b7b408fb5e9c2a13796be94cddce9" - home-or-tmp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" @@ -2783,24 +1895,6 @@ hosted-git-info@^2.1.4: version "2.4.2" resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" -hpack.js@^2.1.6: - version "2.1.6" - resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" - dependencies: - inherits "^2.0.1" - obuf "^1.0.0" - readable-stream "^2.0.1" - wbuf "^1.1.0" - -http-errors@~1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.1.tgz#5f8b8ed98aca545656bf572997387f904a722257" - dependencies: - depd "1.1.0" - inherits "2.0.3" - setprototypeof "1.0.3" - statuses ">= 1.3.1 < 2" - http-signature@~1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" @@ -2813,25 +1907,10 @@ iconv-lite@~0.4.13: version "0.4.17" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d" -idb-pull-blob-store@^0.5.1: - version "0.5.1" - resolved "https://registry.yarnpkg.com/idb-pull-blob-store/-/idb-pull-blob-store-0.5.1.tgz#9c13f9f10eb05aa3a9f20ef571513c47579f75d4" - dependencies: - dexie "^1.4.2" - pull-defer "^0.2.2" - pull-pushable "^2.0.1" - pull-window "^2.1.4" - pull-write "^1.0.2" - typedarray-to-buffer "^3.1.2" - idb-wrapper@^1.5.0: version "1.7.1" resolved "https://registry.yarnpkg.com/idb-wrapper/-/idb-wrapper-1.7.1.tgz#6a32670122e173a84ecc5cfa9668fa2ceb221b04" -ieee754@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" - ignore@^3.2.0: version "3.3.3" resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" @@ -2844,10 +1923,6 @@ imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" -indexof@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" - inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -2855,7 +1930,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -2881,22 +1956,6 @@ inquirer@^0.12.0: strip-ansi "^3.0.0" through "^2.3.6" -interface-connection@^0.3.0, interface-connection@~0.3.1, interface-connection@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/interface-connection/-/interface-connection-0.3.2.tgz#e4949883f6ea79fb7edd01ee3f4fca47a29fd2c4" - dependencies: - pull-defer "~0.2.2" - timed-tape "~0.1.1" - -interface-pull-blob-store@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/interface-pull-blob-store/-/interface-pull-blob-store-0.6.0.tgz#d4ca38bfa634d22c00f631c900d8939f33c85eb3" - dependencies: - chai "^3.5.0" - pull-stream "^3.4.3" - pull-write "^1.0.2" - run-series "^1.1.4" - interpret@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" @@ -2911,276 +1970,10 @@ invert-kv@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" -ip-address@^5.8.6: - version "5.8.8" - resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-5.8.8.tgz#5fd1f8f7465249fb7d2b3c1eec7b41d29d1f1b76" - dependencies: - jsbn "0.1.0" - lodash.find "^4.6.0" - lodash.max "^4.0.1" - lodash.merge "^4.6.0" - lodash.padstart "^4.6.1" - lodash.repeat "^4.1.0" - sprintf-js "^1.0.3" - util-deprecate "^1.0.2" - -ip@^1.1.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" - -ipfs-api@^11.1.0: - version "11.2.0" - resolved "https://registry.yarnpkg.com/ipfs-api/-/ipfs-api-11.2.0.tgz#06529d07e8025082b34bd87a05fc7167989fec98" - dependencies: - async "^2.1.2" - bl "^1.1.2" - bs58 "^3.0.0" - concat-stream "^1.5.2" - detect-node "^2.0.3" - flatmap "0.0.3" - glob "^7.1.1" - ipfs-block "^0.5.0" - ipld-dag-pb "^0.9.0" - is-ipfs "^0.2.1" - isstream "^0.1.2" - lru-cache "^4.0.1" - multiaddr "^2.0.3" - multipart-stream "^2.0.1" - ndjson "^1.4.3" - once "^1.4.0" - peer-id "^0.8.0" - peer-info "^0.8.0" - promisify-es6 "^1.0.2" - qs "^6.3.0" - readable-stream "^1.1.14" - stream-http "^2.5.0" - streamifier "^0.1.1" - tar-stream "^1.5.2" - -ipfs-bitswap@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/ipfs-bitswap/-/ipfs-bitswap-0.8.3.tgz#3545d91011d3562a8ccf878fc787e3b7bb55e7e3" - dependencies: - async "^2.1.4" - cids "^0.3.4" - debug "^2.3.3" - heap "^0.2.6" - ipfs-block "^0.5.3" - lodash.debounce "^4.0.8" - lodash.isequalwith "^4.4.0" - lodash.isundefined "^3.0.1" - multihashes "^0.3.0" - protocol-buffers "^3.2.1" - pull-defer "^0.2.2" - pull-length-prefixed "^1.2.0" - pull-paramap "^1.2.1" - pull-pushable "^2.0.1" - pull-stream "^3.5.0" - -ipfs-block-service@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/ipfs-block-service/-/ipfs-block-service-0.6.0.tgz#e537a4624eb006587f6e61a06bc1750eae4cb74a" - dependencies: - cids "^0.2.0" - pull-stream "^3.4.5" - run-parallel-limit "^1.0.3" - -ipfs-block-service@^0.7.0: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ipfs-block-service/-/ipfs-block-service-0.7.2.tgz#18592cf14819391d0dc7a1fdb3be6201d3c6fee2" - dependencies: - async "^2.1.4" - cids "^0.3.4" - -ipfs-block@^0.5.0, ipfs-block@^0.5.3, ipfs-block@~0.5.4, ipfs-block@~0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/ipfs-block/-/ipfs-block-0.5.5.tgz#956a4d1a758c2574fb5362634655ccfa1c0ebd24" - dependencies: - async "^2.1.4" - multihashing-async "~0.4.2" - -ipfs-multipart@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/ipfs-multipart/-/ipfs-multipart-0.1.0.tgz#5a8ed13f42e82d8bef7d2e151d8eaf5e3a30e3ea" - dependencies: - content "^3.0.0" - dicer "^0.2.5" - -ipfs-repo@^0.11.0, ipfs-repo@^0.11.1: - version "0.11.3" - resolved "https://registry.yarnpkg.com/ipfs-repo/-/ipfs-repo-0.11.3.tgz#eb9219fa0909559cf72c0ccb6549e208a8087a4a" - dependencies: - async "^2.1.4" - base32.js "^0.1.0" - ipfs-block "~0.5.5" - lock "^0.1.3" - multihashes "~0.3.3" - pull-defer "^0.2.2" - pull-stream "^3.5.0" - pull-write "^1.1.1" - safe-buffer "^5.0.1" - -ipfs-unixfs-engine@^0.13.0: - version "0.13.0" - resolved "https://registry.yarnpkg.com/ipfs-unixfs-engine/-/ipfs-unixfs-engine-0.13.0.tgz#4600434e4872c5588daf2c4e04ebcf519d7f3f8a" - dependencies: - async "^2.1.2" - cids "^0.2.0" - ipfs-unixfs "^0.1.5" - ipld-dag-pb "^0.8.0" - ipld-resolver "^0.2.0" - is-ipfs "^0.2.1" - multihashes "^0.2.2" - pull-block "^1.0.2" - pull-paramap "^1.2.0" - pull-pushable "^2.0.1" - pull-stream "^3.5.0" - pull-traverse "^1.0.3" - pull-write "^1.1.1" - -ipfs-unixfs@^0.1.5: - version "0.1.11" - resolved "https://registry.yarnpkg.com/ipfs-unixfs/-/ipfs-unixfs-0.1.11.tgz#4597ea60d3a4c51ed3e05da107e0473b01844bd4" - dependencies: - protocol-buffers "^3.2.1" - -ipfs@^0.18.0: - version "0.18.0" - resolved "https://registry.yarnpkg.com/ipfs/-/ipfs-0.18.0.tgz#8a1254bbbd1e9cb3f77fc6c66aee856b566a9189" - dependencies: - async "^2.1.2" - bl "^1.1.2" - boom "^4.2.0" - debug "^2.3.2" - fs-pull-blob-store "^0.3.0" - glob "^7.1.1" - hapi "^15.2.0" - hapi-set-header "^1.0.2" - idb-pull-blob-store "^0.5.1" - ipfs-api "^11.1.0" - ipfs-bitswap "^0.8.1" - ipfs-block "^0.5.0" - ipfs-block-service "^0.7.0" - ipfs-multipart "^0.1.0" - ipfs-repo "^0.11.1" - ipfs-unixfs "^0.1.5" - ipfs-unixfs-engine "^0.13.0" - ipld-resolver "^0.2.0" - isstream "^0.1.2" - joi "^9.2.0" - libp2p-ipfs "^0.15.0" - libp2p-ipfs-browser "^0.16.0" - lodash.flatmap "^4.5.0" - lodash.get "^4.4.2" - lodash.has "^4.5.2" - lodash.set "^4.3.2" - lodash.sortby "^4.7.0" - lodash.values "^4.3.0" - mafmt "^2.1.2" - multiaddr "^2.0.3" - multihashes "^0.2.2" - path-exists "^3.0.0" - peer-book "^0.3.0" - peer-id "^0.8.0" - peer-info "^0.8.0" - promisify-es6 "^1.0.2" - pull-file "^1.0.0" - pull-paramap "^1.2.1" - pull-pushable "^2.0.1" - pull-sort "^1.0.0" - pull-stream "^3.5.0" - pull-stream-to-stream "^1.3.3" - pull-zip "^2.0.1" - read-pkg-up "^2.0.0" - readable-stream "^1.1.14" - stream-to-pull-stream "^1.7.2" - tar-stream "^1.5.2" - temp "^0.8.3" - through2 "^2.0.1" - update-notifier "^1.0.2" - yargs "^6.3.0" - -ipld-dag-cbor@^0.8.0: - version "0.8.6" - resolved "https://registry.yarnpkg.com/ipld-dag-cbor/-/ipld-dag-cbor-0.8.6.tgz#a0a93f4f54db6b26200edb17dd50be1fdbbbd5d6" - dependencies: - async "^2.1.4" - borc "^2.0.2" - bs58 "^4.0.0" - cids "^0.4.0" - is-circular "^1.0.1" - multihashes "^0.3.2" - multihashing-async "^0.4.0" - traverse "^0.6.6" - -ipld-dag-pb@^0.8.0: - version "0.8.0" - resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.8.0.tgz#8ee35f2c681c6ac046300e8c81cc1ad9b840c4e2" - dependencies: - async "^2.1.2" - cids "^0.2.0" - ipfs-block "^0.5.0" - is-ipfs "^0.2.1" - multihashes "^0.2.2" - multihashing-async "^0.2.0" - protocol-buffers "^3.1.6" - pull-stream "^3.5.0" - pull-traverse "^1.0.3" - stable "^0.1.5" - -ipld-dag-pb@^0.9.0: - version "0.9.5" - resolved "https://registry.yarnpkg.com/ipld-dag-pb/-/ipld-dag-pb-0.9.5.tgz#e8c7dc61a4dd83a8658735559264ee4fedd8b635" - dependencies: - async "^2.1.4" - buffer-loader "0.0.1" - cids "~0.4.1" - ipfs-block "~0.5.4" - is-ipfs "~0.3.0" - multihashes "~0.3.3" - multihashing-async "~0.4.2" - protocol-buffers "^3.2.1" - pull-stream "^3.5.0" - pull-traverse "^1.0.3" - stable "^0.1.5" - -ipld-resolver@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/ipld-resolver/-/ipld-resolver-0.2.0.tgz#d278ed72a43a98a96df6119e543e512d6e25d1a2" - dependencies: - async "^2.1.2" - cids "^0.2.0" - interface-pull-blob-store "^0.6.0" - ipfs-block "^0.5.0" - ipfs-block-service "^0.6.0" - ipfs-repo "^0.11.0" - ipld-dag-cbor "^0.8.0" - ipld-dag-pb "^0.8.0" - is-ipfs "^0.2.1" - lodash.flatten "^4.4.0" - lodash.includes "^4.3.0" - multihashes "^0.2.2" - pull-stream "^3.5.0" - pull-traverse "^1.0.3" - -iron@4.x.x: - version "4.0.5" - resolved "https://registry.yarnpkg.com/iron/-/iron-4.0.5.tgz#4f042cceb8b9738f346b59aa734c83a89bc31428" - dependencies: - boom "5.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - dependencies: - binary-extensions "^1.0.0" - is-buffer@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" @@ -3195,32 +1988,10 @@ is-callable@^1.1.1, is-callable@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" -is-circular@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-circular/-/is-circular-1.0.1.tgz#65b0476a8588e546b8087c1d66d4c08d82a31679" - is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" -is-dotfile@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" - -is-equal-shallow@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" - dependencies: - is-primitive "^2.0.0" - -is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - -is-extglob@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" - is-finite@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" @@ -3241,30 +2012,10 @@ is-function@^1.0.1, is-function@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" -is-glob@^2.0.0, is-glob@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" - dependencies: - is-extglob "^1.0.0" - is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" -is-ipfs@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-0.2.1.tgz#10357d3fddc7cded4b6ea6cc1da6fe7d8d84b438" - dependencies: - bs58 "^3.0.0" - multihashes "^0.2.0" - -is-ipfs@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-ipfs/-/is-ipfs-0.3.0.tgz#c9935f22b19df50a97e7b265f95ade4c291ad395" - dependencies: - bs58 "^4.0.0" - multihashes "^0.3.2" - is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: version "2.16.0" resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" @@ -3274,26 +2025,6 @@ is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: jsonpointer "^4.0.0" xtend "^4.0.0" -is-npm@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-1.0.0.tgz#f2fb63a65e4905b406c86072765a1a4dc793b9f4" - -is-number@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" - dependencies: - kind-of "^3.0.2" - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - dependencies: - kind-of "^3.0.2" - -is-obj@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f" - is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -3310,26 +2041,10 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" -is-posix-bracket@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" - -is-primitive@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" - -is-promise@~1, is-promise@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-promise/-/is-promise-1.0.1.tgz#31573761c057e33c2e91aab9e96da08cefbe76e5" - is-property@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" -is-redirect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-redirect/-/is-redirect-1.0.0.tgz#1d03dded53bd8db0f30c26e4f95d36fc7c87dc24" - is-regex@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" @@ -3342,11 +2057,7 @@ is-resolvable@^1.0.0: dependencies: tryit "^1.0.1" -is-retry-allowed@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-1.1.0.tgz#11a060568b67339444033d0125a61a20d564fb34" - -is-stream@^1.0.0, is-stream@^1.0.1: +is-stream@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -3354,7 +2065,7 @@ is-symbol@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" -is-typedarray@^1.0.0, is-typedarray@~1.0.0: +is-typedarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" @@ -3366,7 +2077,7 @@ isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: +isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" @@ -3374,20 +2085,10 @@ isbuffer@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/isbuffer/-/isbuffer-0.0.0.tgz#38c146d9df528b8bf9b0701c3d43cf12df3fc39b" -isemail@2.x.x: - version "2.2.1" - resolved "https://registry.yarnpkg.com/isemail/-/isemail-2.2.1.tgz#0353d3d9a62951080c262c2aa0a42b8ea8e9e2a6" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - dependencies: - isarray "1.0.0" - isomorphic-fetch@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" @@ -3395,7 +2096,7 @@ isomorphic-fetch@^2.2.0: node-fetch "^1.0.1" whatwg-fetch ">=0.10.0" -isstream@^0.1.2, isstream@~0.1.2: +isstream@~0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" @@ -3418,10 +2119,6 @@ istanbul@^0.4.5: which "^1.1.1" wordwrap "^1.0.0" -items@2.x.x: - version "2.1.1" - resolved "https://registry.yarnpkg.com/items/-/items-2.1.1.tgz#8bd16d9c83b19529de5aea321acaada78364a198" - jade@0.26.3: version "0.26.3" resolved "https://registry.yarnpkg.com/jade/-/jade-0.26.3.tgz#8f10d7977d8d79f2f6ff862a81b0513ccb25686c" @@ -3429,37 +2126,10 @@ jade@0.26.3: commander "0.6.1" mkdirp "0.3.0" -joi@10.x.x: - version "10.5.2" - resolved "https://registry.yarnpkg.com/joi/-/joi-10.5.2.tgz#64f6853b080e9df0cf4cc9e204fa12cc8f792c48" - dependencies: - hoek "4.x.x" - isemail "2.x.x" - items "2.x.x" - topo "2.x.x" - -joi@9.x.x, joi@^9.2.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/joi/-/joi-9.2.0.tgz#3385ac790192130cbe230e802ec02c9215bbfeda" - dependencies: - hoek "4.x.x" - isemail "2.x.x" - items "2.x.x" - moment "2.x.x" - topo "2.x.x" - -js-sha3@0.5.5: - version "0.5.5" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.5.tgz#baf0c0e8c54ad5903447df96ade7a4a1bca79a4a" - js-sha3@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.3.1.tgz#86122802142f0828502a0d1dee1d95e253bb0243" -js-sha3@^0.5.1, js-sha3@^0.5.7: - version "0.5.7" - resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.5.7.tgz#0d4ffd8002d5333aabaf4a23eed2f6374c9f28e7" - js-tokens@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" @@ -3471,10 +2141,6 @@ js-yaml@3.6.1, js-yaml@3.x, js-yaml@^3.5.1: argparse "^1.0.7" esprima "^2.6.0" -jsbn@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.0.tgz#650987da0dd74f4ebf5a11377a2aa2d273e97dfd" - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -3487,10 +2153,6 @@ jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" -json-schema-to-markdown@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/json-schema-to-markdown/-/json-schema-to-markdown-1.0.3.tgz#4411ca222b2b6760e616663f0bb2bd76bb26ebb8" - json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -3501,16 +2163,10 @@ json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: dependencies: jsonify "~0.0.0" -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: +json-stringify-safe@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" -json-text-sequence@^0.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/json-text-sequence/-/json-text-sequence-0.1.1.tgz#a72f217dc4afc4629fff5feb304dc1bd51a2f3d2" - dependencies: - delimit-stream "0.1.0" - json3@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" @@ -3533,10 +2189,6 @@ jsonpointer@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" -jsonschema@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.1.1.tgz#3cede8e3e411d377872eefbc9fdf26383cbc3ed9" - jsprim@^1.2.2: version "1.4.0" resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" @@ -3563,42 +2215,22 @@ keccakjs@^0.2.0, keccakjs@^0.2.1: browserify-sha3 "^0.0.1" sha3 "^1.1.0" -keypair@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/keypair/-/keypair-1.0.1.tgz#7603719270afb6564ed38a22087a06fc9aa4ea1b" - kind-of@^3.0.2: version "3.2.2" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" dependencies: is-buffer "^1.1.5" -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - dependencies: - is-buffer "^1.1.5" - klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" optionalDependencies: graceful-fs "^4.1.9" -latest-version@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-2.0.0.tgz#56f8d6139620847b8017f8f1f4d78e211324168b" - dependencies: - package-json "^2.0.0" - lazy-cache@^1.0.3: version "1.0.4" resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" -lazy-req@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/lazy-req/-/lazy-req-1.1.0.tgz#bdaebead30f8d824039ce0ce149d4daa07ba1fac" - lcid@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" @@ -3609,10 +2241,6 @@ lcov-parse@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" -left-pad@^1.1.1, left-pad@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/left-pad/-/left-pad-1.1.3.tgz#612f61c033f3a9e08e939f1caebeea41b6f3199a" - level-browserify@^1.1.0: version "1.1.1" resolved "https://registry.yarnpkg.com/level-browserify/-/level-browserify-1.1.1.tgz#11b93f874c87232dc7509ad61a590ce65caf0503" @@ -3723,162 +2351,6 @@ levn@^0.3.0, levn@~0.3.0: prelude-ls "~1.1.2" type-check "~0.3.2" -libp2p-crypto-secp256k1@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/libp2p-crypto-secp256k1/-/libp2p-crypto-secp256k1-0.1.4.tgz#211378fe3a859d89ad1203aa9e0d75d686c85bdf" - dependencies: - async "^2.1.4" - libp2p-crypto "~0.8.4" - multihashing-async "~0.4.2" - nodeify "^1.0.0" - safe-buffer "^5.0.1" - secp256k1 "^3.2.5" - -libp2p-crypto@~0.8.4, libp2p-crypto@~0.8.6, libp2p-crypto@~0.8.7: - version "0.8.8" - resolved "https://registry.yarnpkg.com/libp2p-crypto/-/libp2p-crypto-0.8.8.tgz#dc8a49cbcedb5239de977619f2d18df9fc110f39" - dependencies: - asn1.js "^4.9.1" - async "^2.1.5" - browserify-aes "^1.0.6" - keypair "^1.0.1" - libp2p-crypto-secp256k1 "^0.1.4" - multihashing-async "~0.4.4" - nodeify "^1.0.1" - pem-jwk "^1.5.1" - protocol-buffers "^3.2.1" - rsa-pem-to-jwk "^1.1.3" - safe-buffer "^5.0.1" - tweetnacl "^1.0.0-rc.1" - webcrypto-shim "github:dignifiedquire/webcrypto-shim#master" - optionalDependencies: - node-webcrypto-ossl "^1.0.21" - -libp2p-identify@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/libp2p-identify/-/libp2p-identify-0.3.3.tgz#70e6c4d322b9ef475a75ce57b4bb6898adb75f29" - dependencies: - multiaddr "^2.2.2" - peer-id "~0.8.4" - peer-info "~0.8.4" - protocol-buffers "^3.2.1" - pull-length-prefixed "^1.2.0" - pull-stream "^3.5.0" - -libp2p-ipfs-browser@^0.16.0: - version "0.16.0" - resolved "https://registry.yarnpkg.com/libp2p-ipfs-browser/-/libp2p-ipfs-browser-0.16.0.tgz#fcb2c0b0dbca0a1c6175a9218d28f8861939c0f9" - dependencies: - libp2p-secio "^0.6.3" - libp2p-spdy "^0.10.0" - libp2p-swarm "^0.26.1" - libp2p-webrtc-star "^0.5.0" - libp2p-websockets "^0.9.1" - mafmt "^2.1.2" - multiaddr "^2.0.3" - peer-book "^0.3.0" - peer-id "^0.8.0" - peer-info "^0.8.0" - -libp2p-ipfs@^0.15.0: - version "0.15.0" - resolved "https://registry.yarnpkg.com/libp2p-ipfs/-/libp2p-ipfs-0.15.0.tgz#e2cba14185b04ebcf794886f9f48b04c48e390bb" - dependencies: - libp2p-secio "^0.6.2" - libp2p-spdy "^0.10.0" - libp2p-swarm "^0.26.0" - libp2p-tcp "^0.9.1" - libp2p-websockets "^0.9.0" - mafmt "^2.1.2" - multiaddr "^2.0.3" - peer-book "^0.3.0" - peer-id "^0.8.0" - peer-info "^0.8.0" - -libp2p-secio@^0.6.2, libp2p-secio@^0.6.3: - version "0.6.8" - resolved "https://registry.yarnpkg.com/libp2p-secio/-/libp2p-secio-0.6.8.tgz#29a44a7225a0f6149199fcc0bb09772ac915ee03" - dependencies: - async "^2.1.5" - debug "^2.6.3" - interface-connection "~0.3.2" - libp2p-crypto "~0.8.6" - multihashing-async "~0.4.4" - peer-id "~0.8.4" - protocol-buffers "^3.2.1" - pull-defer "^0.2.2" - pull-handshake "^1.1.4" - pull-length-prefixed "^1.2.0" - pull-stream "^3.5.0" - -libp2p-spdy@^0.10.0: - version "0.10.6" - resolved "https://registry.yarnpkg.com/libp2p-spdy/-/libp2p-spdy-0.10.6.tgz#a7c1828d1de61158e2c432f6c2d1dbc8e2538035" - dependencies: - browserify-zlib-next "^1.0.1" - interface-connection "~0.3.2" - lodash.noop "^3.0.1" - pull-stream-to-stream "^1.3.3" - spdy-transport "^2.0.18" - stream-to-pull-stream "^1.7.2" - -libp2p-swarm@^0.26.0, libp2p-swarm@^0.26.1: - version "0.26.19" - resolved "https://registry.yarnpkg.com/libp2p-swarm/-/libp2p-swarm-0.26.19.tgz#305fab108b6ebaeedaa190b1961a2cb0a224f97e" - dependencies: - async "^2.1.5" - browserify-zlib-next "^1.0.1" - debug "^2.6.3" - interface-connection "~0.3.2" - ip-address "^5.8.6" - libp2p-identify "~0.3.3" - lodash.includes "^4.3.0" - multiaddr "^2.2.2" - multistream-select "~0.13.5" - once "^1.4.0" - peer-id "~0.8.4" - peer-info "~0.8.4" - protocol-buffers "^3.2.1" - -libp2p-tcp@^0.9.1: - version "0.9.4" - resolved "https://registry.yarnpkg.com/libp2p-tcp/-/libp2p-tcp-0.9.4.tgz#9c0dc4177d3341e04f9f140bd55a4b8dc68772d8" - dependencies: - interface-connection "~0.3.2" - ip-address "^5.8.6" - lodash.includes "^4.3.0" - lodash.isfunction "^3.0.8" - mafmt "^2.1.6" - multiaddr "^2.2.2" - stream-to-pull-stream "^1.7.2" - -libp2p-webrtc-star@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/libp2p-webrtc-star/-/libp2p-webrtc-star-0.5.0.tgz#3cd1e55495100e4732f5e3fe78aaee28d8d0712a" - dependencies: - async "^2.1.2" - debug "^2.2.0" - hapi "^15.0.3" - interface-connection "^0.3.0" - mafmt "^2.1.0" - minimist "^1.2.0" - peer-id "^0.8.0" - peer-info "^0.8.0" - pull-stream "^3.4.3" - simple-peer "^6.0.4" - socket.io "^1.4.6" - socket.io-client "^1.4.6" - stream-to-pull-stream "^1.7.0" - -libp2p-websockets@^0.9.0, libp2p-websockets@^0.9.1: - version "0.9.6" - resolved "https://registry.yarnpkg.com/libp2p-websockets/-/libp2p-websockets-0.9.6.tgz#1edf2f543a94be1885ca7a56590d16cad567806b" - dependencies: - interface-connection "~0.3.2" - lodash.includes "^4.3.0" - mafmt "^2.1.6" - pull-ws "^3.2.8" - load-json-file@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" @@ -3889,26 +2361,6 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" -load-json-file@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" - dependencies: - graceful-fs "^4.1.2" - parse-json "^2.2.0" - pify "^2.0.0" - strip-bom "^3.0.0" - -locate-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" - dependencies: - p-locate "^2.0.0" - path-exists "^3.0.0" - -lock@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/lock/-/lock-0.1.3.tgz#f66c1caa0c41956e1426608039ed59b71bdf1854" - lodash._baseassign@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" @@ -3944,38 +2396,6 @@ lodash.create@3.1.1: lodash._basecreate "^3.0.0" lodash._isiterateecall "^3.0.0" -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - -lodash.filter@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.filter/-/lodash.filter-4.6.0.tgz#668b1d4981603ae1cc5a6fa760143e480b4c4ace" - -lodash.find@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.find/-/lodash.find-4.6.0.tgz#cb0704d47ab71789ffa0de8b97dd926fb88b13b1" - -lodash.flatmap@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.flatmap/-/lodash.flatmap-4.5.0.tgz#ef8cbf408f6e48268663345305c6acc0b778702e" - -lodash.flatten@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f" - -lodash.get@^4.4.2: - version "4.4.2" - resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" - -lodash.has@^4.5.2: - version "4.5.2" - resolved "https://registry.yarnpkg.com/lodash.has/-/lodash.has-4.5.2.tgz#d19f4dc1095058cccbe2b0cdf4ee0fe4aa37c862" - -lodash.includes@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.includes/-/lodash.includes-4.3.0.tgz#60bb98a87cb923c68ca1e51325483314849f553f" - lodash.isarguments@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" @@ -3984,18 +2404,6 @@ lodash.isarray@^3.0.0: version "3.0.4" resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" -lodash.isequalwith@^4.4.0: - version "4.4.0" - resolved "https://registry.yarnpkg.com/lodash.isequalwith/-/lodash.isequalwith-4.4.0.tgz#266726ddd528f854f21f4ea98a065606e0fbc6b0" - -lodash.isfunction@^3.0.8: - version "3.0.8" - resolved "https://registry.yarnpkg.com/lodash.isfunction/-/lodash.isfunction-3.0.8.tgz#4db709fc81bc4a8fd7127a458a5346c5cdce2c6b" - -lodash.isundefined@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash.isundefined/-/lodash.isundefined-3.0.1.tgz#23ef3d9535565203a66cefd5b830f848911afb48" - lodash.keys@^3.0.0: version "3.1.2" resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" @@ -4004,51 +2412,7 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" -lodash.map@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.map/-/lodash.map-4.6.0.tgz#771ec7839e3473d9c4cde28b19394c3562f4f6d3" - -lodash.max@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/lodash.max/-/lodash.max-4.0.1.tgz#8735566c618b35a9f760520b487ae79658af136a" - -lodash.merge@^4.6.0: - version "4.6.0" - resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.0.tgz#69884ba144ac33fe699737a6086deffadd0f89c5" - -lodash.noop@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/lodash.noop/-/lodash.noop-3.0.1.tgz#38188f4d650a3a474258439b96ec45b32617133c" - -lodash.padstart@^4.6.1: - version "4.6.1" - resolved "https://registry.yarnpkg.com/lodash.padstart/-/lodash.padstart-4.6.1.tgz#d2e3eebff0d9d39ad50f5cbd1b52a7bce6bb611b" - -lodash.range@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/lodash.range/-/lodash.range-3.2.0.tgz#f461e588f66683f7eadeade513e38a69a565a15d" - -lodash.repeat@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lodash.repeat/-/lodash.repeat-4.1.0.tgz#fc7de8131d8c8ac07e4b49f74ffe829d1f2bec44" - -lodash.set@^4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23" - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - -lodash.uniqby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.uniqby/-/lodash.uniqby-4.7.0.tgz#d99c07a669e9e6d24e1362dfe266c67616af1302" - -lodash.values@^4.3.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" - -lodash@^4.0.0, lodash@^4.11.1, lodash@^4.11.2, lodash@^4.14.0, lodash@^4.17.1, lodash@^4.17.4, lodash@^4.2.0, lodash@^4.3.0, lodash@^4.5.1: +lodash@^4.0.0, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -4064,45 +2428,24 @@ looper@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/looper/-/looper-2.0.0.tgz#66cd0c774af3d4fedac53794f742db56da8f09ec" -looper@^3.0.0, looper@~3.0.0: +looper@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/looper/-/looper-3.0.0.tgz#2efa54c3b1cbaba9b94aee2e5914b0be57fbb749" -looper@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/looper/-/looper-4.0.0.tgz#7706aded59a99edca06e6b54bb86c8ec19c95155" - loose-envify@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" dependencies: js-tokens "^3.0.0" -lowercase-keys@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.0.tgz#4e3366b39e7f5457e35f1324bdf6f88d0bfc7306" - lru-cache@2: version "2.7.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" -lru-cache@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.0.tgz#59be49a683b8d986a939f1ca60fdb6989f4b2046" - dependencies: - pseudomap "^1.0.1" - yallist "^2.0.0" - ltgt@^2.1.2, ltgt@~2.1.1, ltgt@~2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.1.3.tgz#10851a06d9964b971178441c23c9e52698eece34" -mafmt@^2.1.0, mafmt@^2.1.2, mafmt@^2.1.6: - version "2.1.8" - resolved "https://registry.yarnpkg.com/mafmt/-/mafmt-2.1.8.tgz#d8b7f763be56db62a0343bc5c47d38ab2cbef45e" - dependencies: - multiaddr "^2.2.3" - memdown@^1.0.0: version "1.2.4" resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.2.4.tgz#cd9a34aaf074d53445a271108eb4b8dd4ec0f27f" @@ -4130,45 +2473,16 @@ merkle-patricia-tree@^2.1.2, merkle-patricia-tree@~2.1.2: rlp "^2.0.0" semaphore ">=1.0.1" -micromatch@^2.1.5: - version "2.3.11" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" - dependencies: - arr-diff "^2.0.0" - array-unique "^0.2.1" - braces "^1.8.2" - expand-brackets "^0.1.4" - extglob "^0.3.1" - filename-regex "^2.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.1" - kind-of "^3.0.2" - normalize-path "^2.0.1" - object.omit "^2.0.0" - parse-glob "^3.0.4" - regex-cache "^0.4.2" - -mime-db@1.x.x, mime-db@~1.27.0: +mime-db@~1.27.0: version "1.27.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" -mime-types@^2.1.12, mime-types@~2.1.11, mime-types@~2.1.7: +mime-types@^2.1.12, mime-types@~2.1.7: version "2.1.15" resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" dependencies: mime-db "~1.27.0" -mime@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.3.4.tgz#115f9e3b6b3daf2959983cb38f149a2d40eb5d53" - -mimos@3.x.x: - version "3.0.3" - resolved "https://registry.yarnpkg.com/mimos/-/mimos-3.0.3.tgz#b9109072ad378c2b72f6a0101c43ddfb2b36641f" - dependencies: - hoek "4.x.x" - mime-db "1.x.x" - min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -4190,7 +2504,7 @@ minimatch@0.3: lru-cache "2" sigmund "~1.0.0" -"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -4200,7 +2514,7 @@ minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@1.2.0, minimist@^1.1.3, minimist@^1.2.0, minimist@~1.2.0: +minimist@1.2.0, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -4208,7 +2522,7 @@ mkdirp@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" -mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: +mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -4233,7 +2547,7 @@ mocha@^2.4.5: supports-color "1.2.0" to-iso-string "0.0.2" -mocha@^3.2.0: +mocha@^3.4.2: version "3.4.2" resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.4.2.tgz#d0ef4d332126dbf18d0d640c9b382dd48be97594" dependencies: @@ -4249,7 +2563,7 @@ mocha@^3.2.0: mkdirp "0.5.1" supports-color "3.1.2" -moment@2.x.x, moment@^2.18.1: +moment@^2.18.1: version "2.18.1" resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" @@ -4265,113 +2579,11 @@ ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -multiaddr@^2.0.3, multiaddr@^2.2.2, multiaddr@^2.2.3: - version "2.3.0" - resolved "https://registry.yarnpkg.com/multiaddr/-/multiaddr-2.3.0.tgz#56634824f48bcbd8405fd5434c31b277424c62fc" - dependencies: - bs58 "^4.0.0" - ip "^1.1.5" - lodash.filter "^4.6.0" - lodash.map "^4.6.0" - varint "^5.0.0" - xtend "^4.0.1" - -multibase@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.2.0.tgz#8c0f9d5ff33f863dc4722ca7d06dc1dd9e5f006e" - dependencies: - bs58 "^3.0.0" - -multibase@^0.3.0, multibase@~0.3.4: - version "0.3.4" - resolved "https://registry.yarnpkg.com/multibase/-/multibase-0.3.4.tgz#fba8b0aac9724f62e24782557e2a062e30d3ae7f" - dependencies: - base-x "3.0.0" - -multicodec@0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.1.0.tgz#00067fcc0517d571bec1c6f325d2c987b3a74cc8" - dependencies: - varint "^4.0.1" - -multicodec@^0.1.3, multicodec@~0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/multicodec/-/multicodec-0.1.7.tgz#658f2d15f42fa19e66092fe917a051a1bf07e41e" - dependencies: - varint "^5.0.0" - -multihashes@^0.2.0, multihashes@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.2.2.tgz#8ccf2e3ba3d041e1146728de0d8a4da9e8b18251" - dependencies: - bs58 "^3.0.0" - -multihashes@^0.3.0, multihashes@^0.3.1, multihashes@^0.3.2, multihashes@~0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.3.3.tgz#18d74d8c2393af39aaf0ac8f4fd6d888d43f2f29" - dependencies: - bs58 "^4.0.0" - -multihashes@~0.4.4, multihashes@~0.4.5: - version "0.4.5" - resolved "https://registry.yarnpkg.com/multihashes/-/multihashes-0.4.5.tgz#9b053c51fdc74d771edde20e1bc91d4bbec3fa69" - dependencies: - bs58 "^4.0.0" - varint "^5.0.0" - -multihashing-async@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-0.2.0.tgz#8dec195a20fe402cca38e2728d693607d1c5a37b" - dependencies: - browserify-sha3 "0.0.2" - multihashes "^0.2.2" - nodeify "^1.0.0" - sha3 "^1.2.0" - -multihashing-async@^0.4.0, multihashing-async@~0.4.2, multihashing-async@~0.4.4: - version "0.4.5" - resolved "https://registry.yarnpkg.com/multihashing-async/-/multihashing-async-0.4.5.tgz#e94b408a68c36c393180146e3fad9126108eb6a9" - dependencies: - async "^2.1.5" - blakejs "^1.0.1" - js-sha3 "^0.5.7" - multihashes "~0.4.5" - murmurhash3js "^3.0.1" - nodeify "^1.0.1" - -multipart-stream@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/multipart-stream/-/multipart-stream-2.0.1.tgz#195c9cb4b2c41e78c72a1e8f38c7d0eba1cd0ba0" - dependencies: - inherits "^2.0.1" - is-stream "^1.0.1" - sandwich-stream "^1.0.0" - -multistream-select@~0.13.5: - version "0.13.5" - resolved "https://registry.yarnpkg.com/multistream-select/-/multistream-select-0.13.5.tgz#fe33676202e64619054aeeb45336a881cc9c54e9" - dependencies: - async "^2.1.5" - debug "^2.6.3" - interface-connection "~0.3.1" - lodash.isfunction "^3.0.8" - lodash.range "^3.2.0" - once "^1.4.0" - pull-handshake "^1.1.4" - pull-length-prefixed "^1.2.0" - pull-stream "^3.5.0" - semver "^5.3.0" - varint "^5.0.0" - -murmurhash3js@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/murmurhash3js/-/murmurhash3js-3.0.1.tgz#3e983e5b47c2a06f43a713174e7e435ca044b998" - mute-stream@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" -nan@^2.0.5, nan@^2.0.8, nan@^2.2.1, nan@^2.3.0, nan@^2.5.1, nan@~2.6.1: +nan@^2.0.5, nan@^2.0.8, nan@^2.2.1, nan@~2.6.1: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" @@ -4379,36 +2591,10 @@ natural-compare@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" -ndjson@^1.4.3: - version "1.5.0" - resolved "https://registry.yarnpkg.com/ndjson/-/ndjson-1.5.0.tgz#ae603b36b134bcec347b452422b0bf98d5832ec8" - dependencies: - json-stringify-safe "^5.0.1" - minimist "^1.2.0" - split2 "^2.1.0" - through2 "^2.0.3" - -negotiator@0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" - -nigel@2.x.x: - version "2.0.2" - resolved "https://registry.yarnpkg.com/nigel/-/nigel-2.0.2.tgz#93a1866fb0c52d87390aa75e2b161f4b5c75e5b1" - dependencies: - hoek "4.x.x" - vise "2.x.x" - node-abi@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.0.3.tgz#0ca67e5e667b8e1343549ca17153a815d0bbfdaa" -node-dir@^0.1.10, node-dir@^0.1.16: - version "0.1.17" - resolved "https://registry.yarnpkg.com/node-dir/-/node-dir-0.1.17.tgz#5f5665d93351335caabef8f1c554516cf5f1e4e5" - dependencies: - minimatch "^3.0.2" - node-fetch@^1.0.1: version "1.7.1" resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.1.tgz#899cb3d0a3c92f952c47f1b876f4c8aeabd400d5" @@ -4416,49 +2602,6 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" -node-pre-gyp@^0.6.29: - version "0.6.36" - resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" - dependencies: - mkdirp "^0.5.1" - nopt "^4.0.1" - npmlog "^4.0.2" - rc "^1.1.7" - request "^2.81.0" - rimraf "^2.6.1" - semver "^5.3.0" - tar "^2.2.1" - tar-pack "^3.4.0" - -node-status-codes@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/node-status-codes/-/node-status-codes-1.0.0.tgz#5ae5541d024645d32a58fcddc9ceecea7ae3ac2f" - -node-webcrypto-ossl@^1.0.21: - version "1.0.25" - resolved "https://registry.yarnpkg.com/node-webcrypto-ossl/-/node-webcrypto-ossl-1.0.25.tgz#fcb48c25cea1f127b1efe9a2d7a2b847611b8c16" - dependencies: - "@types/mkdirp" "^0.3.29" - "@types/node" "^6.0.45" - mkdirp "^0.5.1" - nan "^2.5.1" - tslib "^1.5.0" - typescript "^2" - webcrypto-core "^0.1.16" - -nodegit-promise@~4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/nodegit-promise/-/nodegit-promise-4.0.0.tgz#5722b184f2df7327161064a791d2e842c9167b34" - dependencies: - asap "~2.0.3" - -nodeify@^1.0.0, nodeify@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/nodeify/-/nodeify-1.0.1.tgz#64ab69a7bdbaf03ce107b4f0335c87c0b9e91b1d" - dependencies: - is-promise "~1.0.0" - promise "~1.3.0" - noop-logger@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" @@ -4469,13 +2612,6 @@ nopt@3.x: dependencies: abbrev "1" -nopt@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" - dependencies: - abbrev "1" - osenv "^0.1.4" - normalize-package-data@^2.3.2: version "2.3.8" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" @@ -4485,19 +2621,7 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -normalize-path@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - dependencies: - remove-trailing-separator "^1.0.1" - -npm-programmatic@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/npm-programmatic/-/npm-programmatic-0.0.6.tgz#3c8f4dbb210efd65b99ee6a5ac76f27b4d5d6b78" - dependencies: - bluebird "^3.4.1" - -npmlog@^4.0.1, npmlog@^4.0.2: +npmlog@^4.0.1: version "4.1.0" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" dependencies: @@ -4510,42 +2634,19 @@ number-is-nan@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" -number-to-bn@1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/number-to-bn/-/number-to-bn-1.7.0.tgz#bb3623592f7e5f9e0030b1977bd41a0c53fe1ea0" - dependencies: - bn.js "4.11.6" - strip-hex-prefix "1.0.0" - oauth-sign@~0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" -object-assign@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.0.tgz#7a3b3d0e98063d43f4c03f2e8ae6cd51a86883a0" - -object-assign@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-2.1.1.tgz#43c36e5d569ff8e4816c4efa8be02d26967c18aa" - object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" -object-component@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/object-component/-/object-component-0.0.3.tgz#f0c69aa50efc95b866c186f400a33769cb2f1291" - -object-inspect@~0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-0.4.0.tgz#f5157c116c1455b243b06ee97703392c5ad89fec" - object-inspect@~1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.2.2.tgz#c82115e4fcc888aea14d64c22e4f17f6a70d5e5a" -object-keys@^1.0.6, object-keys@^1.0.8: +object-keys@^1.0.8: version "1.0.11" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" @@ -4553,24 +2654,7 @@ object-keys@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" -object.omit@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" - dependencies: - for-own "^0.1.4" - is-extendable "^0.1.1" - -obuf@^1.0.0, obuf@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.1.tgz#104124b6c602c6796881a042541d36db43a5264e" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - dependencies: - ee-first "1.1.1" - -once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -4587,12 +2671,6 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optimist@~0.3.5: - version "0.3.7" - resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.3.7.tgz#c90941ad59e4273328923074d2cf2e7cbc6ec0d9" - dependencies: - wordwrap "~0.0.2" - optionator@^0.8.1, optionator@^0.8.2: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" @@ -4604,9 +2682,9 @@ optionator@^0.8.1, optionator@^0.8.2: type-check "~0.3.2" wordwrap "~1.0.0" -options@>=0.0.5: - version "0.0.6" - resolved "https://registry.yarnpkg.com/options/-/options-0.0.6.tgz#ec22d312806bb53e731773e7cdaefcf1c643128f" +original-require@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/original-require/-/original-require-1.0.1.tgz#0f130471584cd33511c5ec38c8d59213f9ac5e20" os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" @@ -4622,53 +2700,6 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -osenv@^0.1.0, osenv@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" - dependencies: - os-homedir "^1.0.0" - os-tmpdir "^1.0.0" - -output-file-sync@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/output-file-sync/-/output-file-sync-1.1.2.tgz#d0a33eefe61a205facb90092e826598d5245ce76" - dependencies: - graceful-fs "^4.1.4" - mkdirp "^0.5.1" - object-assign "^4.1.0" - -p-limit@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" - -p-locate@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" - dependencies: - p-limit "^1.1.0" - -package-json@^2.0.0: - version "2.4.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-2.4.0.tgz#0d15bd67d1cbbddbb2ca222ff2edb86bcb31a8bb" - dependencies: - got "^5.0.0" - registry-auth-token "^3.0.1" - registry-url "^3.0.3" - semver "^5.1.0" - -pako@~1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.5.tgz#d2205dfe5b9da8af797e7c163db4d1f84e4600bc" - -parse-glob@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" - dependencies: - glob-base "^0.3.0" - is-dotfile "^1.0.0" - is-extglob "^1.0.0" - is-glob "^2.0.0" - parse-headers@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536" @@ -4676,44 +2707,18 @@ parse-headers@^2.0.0: for-each "^0.3.2" trim "0.0.1" -parse-json@^2.1.0, parse-json@^2.2.0: +parse-json@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" dependencies: error-ex "^1.2.0" -parsejson@0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/parsejson/-/parsejson-0.0.3.tgz#ab7e3759f209ece99437973f7d0f1f64ae0e64ab" - dependencies: - better-assert "~1.0.0" - -parseqs@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseqs/-/parseqs-0.0.5.tgz#d5208a3738e46766e291ba2ea173684921a8b89d" - dependencies: - better-assert "~1.0.0" - -parseuri@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/parseuri/-/parseuri-0.0.5.tgz#80204a50d4dbb779bfdc6ebe2778d90e4bce320a" - dependencies: - better-assert "~1.0.0" - -parseurl@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.1.tgz#c8ab8c9223ba34888aa64a297b28853bec18da56" - path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" dependencies: pinkie-promise "^2.0.0" -path-exists@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" - path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -4730,12 +2735,6 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" -path-type@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" - dependencies: - pify "^2.0.0" - pathval@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" @@ -4750,53 +2749,10 @@ pbkdf2@^3.0.0, pbkdf2@^3.0.3, pbkdf2@^3.0.9: safe-buffer "^5.0.1" sha.js "^2.4.8" -peer-book@^0.3.0: - version "0.3.2" - resolved "https://registry.yarnpkg.com/peer-book/-/peer-book-0.3.2.tgz#2a5f42acb19bbc3170a13aeffb4b3310388feaf4" - dependencies: - bs58 "^4.0.0" - -peer-id@^0.8.0, peer-id@^0.8.5, peer-id@~0.8.4: - version "0.8.7" - resolved "https://registry.yarnpkg.com/peer-id/-/peer-id-0.8.7.tgz#c9bd9d1588d4ccce71752a9049afa9f10176a33d" - dependencies: - async "^2.3.0" - libp2p-crypto "~0.8.7" - lodash "^4.17.4" - multihashes "~0.4.5" - -peer-info@^0.8.0, peer-info@~0.8.4: - version "0.8.5" - resolved "https://registry.yarnpkg.com/peer-info/-/peer-info-0.8.5.tgz#b8fbee6376405c04c8b644610cd06231c4262a1e" - dependencies: - lodash.uniqby "^4.7.0" - multiaddr "^2.2.3" - peer-id "^0.8.5" - pegjs@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" -pem-jwk@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/pem-jwk/-/pem-jwk-1.5.1.tgz#7a8637fd2f67a827e57c0c42e1c23c3fd52cfb01" - dependencies: - asn1.js "1.0.3" - -performance-now@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" - -pez@2.x.x: - version "2.1.5" - resolved "https://registry.yarnpkg.com/pez/-/pez-2.1.5.tgz#5ec2cc62500cc3eb4236d4a414cf5a17b5eb5007" - dependencies: - b64 "3.x.x" - boom "5.x.x" - content "3.x.x" - hoek "4.x.x" - nigel "2.x.x" - pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -4815,14 +2771,6 @@ pluralize@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" -podium@^1.2.x: - version "1.2.5" - resolved "https://registry.yarnpkg.com/podium/-/podium-1.2.5.tgz#87c566c2f0365bcf0a1ec7602c4d01948cdd2ad5" - dependencies: - hoek "4.x.x" - items "2.x.x" - joi "10.x.x" - prebuild-install@^2.0.0, prebuild-install@^2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.1.2.tgz#d9ae0ca85330e03962d93292f95a8b44c2ebf505" @@ -4846,14 +2794,6 @@ prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" -prepend-http@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" - -preserve@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" - private@^0.1.6: version "0.1.7" resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" @@ -4870,38 +2810,6 @@ progress@^1.1.8: version "1.1.8" resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" -promise@~1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/promise/-/promise-1.3.0.tgz#e5cc9a4c8278e4664ffedc01c7da84842b040175" - dependencies: - is-promise "~1" - -promisify-es6@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/promisify-es6/-/promisify-es6-1.0.2.tgz#63093553e39be5036d757b455fb93d155da4b589" - -promisify-node@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/promisify-node/-/promisify-node-0.4.0.tgz#32803874ec411784e4786c339902a87a179a469c" - dependencies: - nodegit-promise "~4.0.0" - object-assign "^4.0.1" - -protocol-buffers-schema@^3.1.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/protocol-buffers-schema/-/protocol-buffers-schema-3.3.1.tgz#ad151141877c6af8828647851af66a0db69275f5" - -protocol-buffers@^3.1.6, protocol-buffers@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/protocol-buffers/-/protocol-buffers-3.2.1.tgz#37258e17e24a082f06ebb17731e92851d1c76889" - dependencies: - brfs "^1.4.0" - generate-function "^2.0.0" - generate-object-property "^1.2.0" - protocol-buffers-schema "^3.1.1" - signed-varint "^2.0.0" - varint "^5.0.0" - prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -4910,55 +2818,10 @@ prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" -pseudomap@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" - -pull-block@^1.0.2: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pull-block/-/pull-block-1.2.0.tgz#e3947f0a83426e847ecececb0b9ba308b019b3e1" - dependencies: - pull-through "^1.0.18" - safe-buffer "^5.0.1" - -pull-cat@^1.1.11, pull-cat@^1.1.9: +pull-cat@^1.1.9: version "1.1.11" resolved "https://registry.yarnpkg.com/pull-cat/-/pull-cat-1.1.11.tgz#b642dd1255da376a706b6db4fa962f5fdb74c31b" -pull-defer@^0.2.2, pull-defer@~0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/pull-defer/-/pull-defer-0.2.2.tgz#0887b0ffb30af32a56dbecfa72c1672271f07b13" - -pull-file@^0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/pull-file/-/pull-file-0.5.0.tgz#b3ca405306e082f9d4528288933badb2b656365b" - dependencies: - pull-utf8-decoder "^1.0.2" - -pull-file@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pull-file/-/pull-file-1.0.0.tgz#5a0cb036d78ee10e3e0b4293dfcf6effa1036318" - dependencies: - pull-utf8-decoder "^1.0.2" - -pull-handshake@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/pull-handshake/-/pull-handshake-1.1.4.tgz#6000a0fd018884cdfd737254f8cc60ab2a637791" - dependencies: - pull-cat "^1.1.9" - pull-pair "~1.1.0" - pull-pushable "^2.0.0" - pull-reader "^1.2.3" - -pull-length-prefixed@^1.2.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/pull-length-prefixed/-/pull-length-prefixed-1.3.0.tgz#99f3dac7ea4f896d905f4d2da224460811703a5e" - dependencies: - pull-pushable "^2.0.1" - pull-reader "^1.2.9" - safe-buffer "^5.0.1" - varint "^5.0.0" - pull-level@^2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/pull-level/-/pull-level-2.0.3.tgz#9500635e257945d6feede185f5d7a24773455b17" @@ -4978,79 +2841,20 @@ pull-live@^1.0.1: pull-cat "^1.1.9" pull-stream "^3.4.0" -pull-pair@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pull-pair/-/pull-pair-1.1.0.tgz#7ee427263fdf4da825397ac0a05e1ab4b74bd76d" - -pull-paramap@^1.2.0, pull-paramap@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/pull-paramap/-/pull-paramap-1.2.2.tgz#51a4193ce9c8d7215d95adad45e2bcdb8493b23a" - dependencies: - looper "^4.0.0" - -pull-pushable@^2.0.0, pull-pushable@^2.0.1: +pull-pushable@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/pull-pushable/-/pull-pushable-2.1.1.tgz#86666abbe3f5402f1f7ead03eefd69b785eca5b8" -pull-reader@^1.2.3, pull-reader@^1.2.9: - version "1.2.9" - resolved "https://registry.yarnpkg.com/pull-reader/-/pull-reader-1.2.9.tgz#d2e9ad00bcfb54e62aa66d42c2dbbcb5eb6843b0" - -pull-sort@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/pull-sort/-/pull-sort-1.0.0.tgz#0e39fb9a38e54175befe418eaba21223f2c0e705" - -pull-stream-to-stream@^1.3.3: - version "1.3.4" - resolved "https://registry.yarnpkg.com/pull-stream-to-stream/-/pull-stream-to-stream-1.3.4.tgz#3f81d8216bd18d2bfd1a198190471180e2738399" - -pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.4.3, pull-stream@^3.4.5, pull-stream@^3.5.0: +pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.4.5: version "3.6.0" resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.6.0.tgz#59d033a6815d4e3097d47c3d2b1893a9e58a2351" -pull-through@^1.0.18: - version "1.0.18" - resolved "https://registry.yarnpkg.com/pull-through/-/pull-through-1.0.18.tgz#8dd62314263e59cf5096eafbb127a2b6ef310735" - dependencies: - looper "~3.0.0" - -pull-traverse@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/pull-traverse/-/pull-traverse-1.0.3.tgz#74fb5d7be7fa6bd7a78e97933e199b7945866938" - -pull-utf8-decoder@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/pull-utf8-decoder/-/pull-utf8-decoder-1.0.2.tgz#a7afa2384d1e6415a5d602054126cc8de3bcbce7" - pull-window@^2.1.4: version "2.1.4" resolved "https://registry.yarnpkg.com/pull-window/-/pull-window-2.1.4.tgz#fc3b86feebd1920c7ae297691e23f705f88552f0" dependencies: looper "^2.0.0" -pull-write-file@^0.2.1: - version "0.2.4" - resolved "https://registry.yarnpkg.com/pull-write-file/-/pull-write-file-0.2.4.tgz#437344aeb2189f65e678ed1af37f0f760a5453ef" - -pull-write@^1.0.2, pull-write@^1.1.1: - version "1.1.4" - resolved "https://registry.yarnpkg.com/pull-write/-/pull-write-1.1.4.tgz#dddea31493b48f6768b84a281d01eb3b531fe0b8" - dependencies: - looper "^4.0.0" - pull-cat "^1.1.11" - pull-stream "^3.4.5" - -pull-ws@^3.2.8: - version "3.2.9" - resolved "https://registry.yarnpkg.com/pull-ws/-/pull-ws-3.2.9.tgz#8a90502a41d9058fcb3096ad4823a0f189d613ba" - dependencies: - relative-url "^1.0.2" - ws "^1.1.0" - -pull-zip@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/pull-zip/-/pull-zip-2.0.1.tgz#e0641ceaff964af27596daac0700e79b381028f5" - pump@^1.0.0, pump@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/pump/-/pump-1.0.2.tgz#3b3ee6512f94f0e575538c17995f9f16990a5d51" @@ -5062,47 +2866,17 @@ punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" -qs@^6.3.0, qs@~6.3.0: +qs@~6.3.0: version "6.3.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" -qs@~6.4.0: - version "6.4.0" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" - -quote-stream@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" - dependencies: - buffer-equal "0.0.1" - minimist "^1.1.3" - through2 "^2.0.0" - -quote-stream@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-0.0.0.tgz#cde29e94c409b16e19dc7098b89b6658f9721d3b" - dependencies: - minimist "0.0.8" - through2 "~0.4.1" - -randomatic@^1.1.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -randombytes@^2.0.1, randombytes@^2.0.3: +randombytes@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" dependencies: safe-buffer "^5.1.0" -range-parser@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" - -rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: +rc@^1.1.6: version "1.2.1" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" dependencies: @@ -5111,13 +2885,6 @@ rc@^1.0.1, rc@^1.1.6, rc@^1.1.7: minimist "^1.2.0" strip-json-comments "~2.0.1" -read-all-stream@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/read-all-stream/-/read-all-stream-3.1.0.tgz#35c3e177f2078ef789ee4bfafa4373074eaef4fa" - dependencies: - pinkie-promise "^2.0.0" - readable-stream "^2.0.0" - read-pkg-up@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" @@ -5125,13 +2892,6 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" -read-pkg-up@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" - dependencies: - find-up "^2.0.0" - read-pkg "^2.0.0" - read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -5140,15 +2900,7 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -read-pkg@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" - dependencies: - load-json-file "^2.0.0" - normalize-package-data "^2.3.2" - path-type "^2.0.0" - -readable-stream@1.1.x, readable-stream@^1.0.33, readable-stream@^1.1.14, readable-stream@~1.1.9: +readable-stream@^1.0.33: version "1.1.14" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" dependencies: @@ -5157,7 +2909,7 @@ readable-stream@1.1.x, readable-stream@^1.0.33, readable-stream@^1.1.14, readabl isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.6, readable-stream@^2.2.9: +readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2: version "2.2.11" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.11.tgz#0796b31f8d7688007ff0b93a8088d34aa17c0f72" dependencies: @@ -5169,7 +2921,7 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.0.0" util-deprecate "~1.0.1" -readable-stream@~1.0.15, readable-stream@~1.0.17, readable-stream@~1.0.26, readable-stream@~1.0.27-1: +readable-stream@~1.0.15, readable-stream@~1.0.26: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -5178,15 +2930,6 @@ readable-stream@~1.0.15, readable-stream@~1.0.17, readable-stream@~1.0.26, reada isarray "0.0.1" string_decoder "~0.10.x" -readdirp@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" - dependencies: - graceful-fs "^4.1.2" - minimatch "^3.0.2" - readable-stream "^2.0.2" - set-immediate-shim "^1.0.1" - readline2@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" @@ -5217,13 +2960,6 @@ regenerator-transform@0.9.11: babel-types "^6.19.0" private "^0.1.6" -regex-cache@^0.4.2: - version "0.4.3" - resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" - dependencies: - is-equal-shallow "^0.1.3" - is-primitive "^2.0.0" - regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" @@ -5232,19 +2968,6 @@ regexpu-core@^2.0.0: regjsgen "^0.2.0" regjsparser "^0.1.4" -registry-auth-token@^3.0.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-3.3.1.tgz#fb0d3289ee0d9ada2cbb52af5dfe66cb070d3006" - dependencies: - rc "^1.1.6" - safe-buffer "^5.0.1" - -registry-url@^3.0.3: - version "3.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-3.1.0.tgz#3d4ef870f73dde1d77f0cf9a381432444e174942" - dependencies: - rc "^1.0.1" - regjsgen@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" @@ -5255,18 +2978,6 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" -relative-url@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/relative-url/-/relative-url-1.0.2.tgz#d21c52a72d6061018bcee9f9c9fc106bf7d65287" - -remove-trailing-separator@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511" - -repeat-element@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" - repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -5289,7 +3000,7 @@ req-from@^1.0.1: dependencies: resolve-from "^2.0.0" -request@2.79.0, request@^2.12.0, request@^2.67.0: +request@2.79.0, request@^2.67.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: @@ -5314,33 +3025,6 @@ request@2.79.0, request@^2.12.0, request@^2.67.0: tunnel-agent "~0.4.1" uuid "^3.0.0" -request@^2.81.0: - version "2.81.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.12.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~4.2.1" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - performance-now "^0.2.0" - qs "~6.4.0" - safe-buffer "^5.0.1" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "^0.6.0" - uuid "^3.0.0" - require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -5353,10 +3037,6 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" -require-nocache@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/require-nocache/-/require-nocache-1.0.0.tgz#a665d0b60a07e8249875790a4d350219d3c85fa3" - require-uncached@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" @@ -5372,7 +3052,7 @@ resolve-from@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" -resolve@1.1.x, resolve@^1.1.5, resolve@^1.1.6, resolve@~1.1.7: +resolve@1.1.x, resolve@^1.1.6, resolve@~1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" @@ -5395,13 +3075,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" - dependencies: - glob "^7.0.5" - -rimraf@^2.2.8, rimraf@~2.4.3: +rimraf@^2.2.8: version "2.4.5" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" dependencies: @@ -5422,33 +3096,12 @@ rlp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.0.0.tgz#9db384ff4b89a8f61563d92395d8625b18f3afb0" -rsa-pem-to-jwk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/rsa-pem-to-jwk/-/rsa-pem-to-jwk-1.1.3.tgz#245e76bdb7e7234cfee7ca032d31b54c38fab98e" - dependencies: - object-assign "^2.0.0" - rsa-unpack "0.0.6" - -rsa-unpack@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/rsa-unpack/-/rsa-unpack-0.0.6.tgz#f50ebd56a628378e631f297161026ce9ab4eddba" - dependencies: - optimist "~0.3.5" - run-async@^0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" dependencies: once "^1.3.0" -run-parallel-limit@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/run-parallel-limit/-/run-parallel-limit-1.0.3.tgz#6c3930cc7c0b47d35ae7420109f660aade2401e3" - -run-series@^1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/run-series/-/run-series-1.1.4.tgz#89a73ddc5e75c9ef8ab6320c0a1600d6a41179b9" - rx-lite@^3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" @@ -5461,10 +3114,6 @@ safe-buffer@~5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" -sandwich-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/sandwich-stream/-/sandwich-stream-1.0.0.tgz#7830e45797b5933287f1f9b28f871907456262f2" - scrypt.js@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/scrypt.js/-/scrypt.js-0.2.0.tgz#af8d1465b71e9990110bedfc593b9479e03a8ada" @@ -5484,7 +3133,7 @@ scryptsy@^1.2.1: dependencies: pbkdf2 "^3.0.3" -secp256k1@^3.0.1, secp256k1@^3.2.5: +secp256k1@^3.0.1: version "3.3.0" resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.3.0.tgz#50ec9b201ba401403dd13ccbf21d31eeb3ff43cf" dependencies: @@ -5506,13 +3155,7 @@ semaphore@>=1.0.1, semaphore@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.0.5.tgz#b492576e66af193db95d65e25ec53f5f19798d60" -semver-diff@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-2.1.0.tgz#4bbb8437c8d37e4b0cf1a68fd726ec6d645d6d36" - dependencies: - semver "^5.0.3" - -"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" @@ -5520,61 +3163,22 @@ semver@~5.1.0: version "5.1.1" resolved "https://registry.yarnpkg.com/semver/-/semver-5.1.1.tgz#a3292a373e6f3e0798da0b20641b9a9c5bc47e19" -send@0.15.3: - version "0.15.3" - resolved "https://registry.yarnpkg.com/send/-/send-0.15.3.tgz#5013f9f99023df50d1bd9892c19e3defd1d53309" - dependencies: - debug "2.6.7" - depd "~1.1.0" - destroy "~1.0.4" - encodeurl "~1.0.1" - escape-html "~1.0.3" - etag "~1.8.0" - fresh "0.5.0" - http-errors "~1.6.1" - mime "1.3.4" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.3.1" - -serve-static@^1.10.0: - version "1.12.3" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.12.3.tgz#9f4ba19e2f3030c547f8af99107838ec38d5b1e2" - dependencies: - encodeurl "~1.0.1" - escape-html "~1.0.3" - parseurl "~1.3.1" - send "0.15.3" - set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" -set-immediate-shim@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" - -setprototypeof@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" - sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.8" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" dependencies: inherits "^2.0.1" -sha3@^1.1.0, sha3@^1.2.0: +sha3@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/sha3/-/sha3-1.2.0.tgz#6989f1b70a498705876a373e2c62ace96aa9399a" dependencies: nan "^2.0.5" -shallow-copy@~0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" - shelljs@^0.7.4, shelljs@^0.7.5: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" @@ -5587,13 +3191,6 @@ shelljs@~0.6.0: version "0.6.1" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" -shot@3.x.x: - version "3.4.2" - resolved "https://registry.yarnpkg.com/shot/-/shot-3.4.2.tgz#1e5c3f6f2b26649adc42f7eb350214a5a0291d67" - dependencies: - hoek "4.x.x" - joi "10.x.x" - sigmund@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" @@ -5602,12 +3199,6 @@ signal-exit@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" -signed-varint@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/signed-varint/-/signed-varint-2.0.1.tgz#50a9989da7c98c2c61dad119bc97470ef8528129" - dependencies: - varint "~5.0.0" - simple-get@^1.4.2: version "1.4.3" resolved "https://registry.yarnpkg.com/simple-get/-/simple-get-1.4.3.tgz#e9755eda407e96da40c5e5158c9ea37b33becbeb" @@ -5616,16 +3207,6 @@ simple-get@^1.4.2: unzip-response "^1.0.0" xtend "^4.0.0" -simple-peer@^6.0.4: - version "6.4.4" - resolved "https://registry.yarnpkg.com/simple-peer/-/simple-peer-6.4.4.tgz#4e421f485ac7b13b08077a4476934d52c5ba3bb3" - dependencies: - debug "^2.1.0" - get-browser-rtc "^1.0.0" - inherits "^2.0.1" - randombytes "^2.0.3" - readable-stream "^2.0.5" - slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" @@ -5634,67 +3215,19 @@ slice-ansi@0.0.4: version "0.0.4" resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" -slide@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/slide/-/slide-1.1.6.tgz#56eb027d65b4d2dce6cb2e2d32c4d4afc9e1d707" - sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" dependencies: hoek "2.x.x" -socket.io-adapter@0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-0.5.0.tgz#cb6d4bb8bec81e1078b99677f9ced0046066bb8b" - dependencies: - debug "2.3.3" - socket.io-parser "2.3.1" - -socket.io-client@1.7.4, socket.io-client@^1.4.6: - version "1.7.4" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-1.7.4.tgz#ec9f820356ed99ef6d357f0756d648717bdd4281" - dependencies: - backo2 "1.0.2" - component-bind "1.0.0" - component-emitter "1.2.1" - debug "2.3.3" - engine.io-client "~1.8.4" - has-binary "0.1.7" - indexof "0.0.1" - object-component "0.0.3" - parseuri "0.0.5" - socket.io-parser "2.3.1" - to-array "0.1.4" - -socket.io-parser@2.3.1: - version "2.3.1" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-2.3.1.tgz#dd532025103ce429697326befd64005fcfe5b4a0" - dependencies: - component-emitter "1.1.2" - debug "2.2.0" - isarray "0.0.1" - json3 "3.3.2" - -socket.io@^1.4.6: - version "1.7.4" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-1.7.4.tgz#2f7ecedc3391bf2d5c73e291fe233e6e34d4dd00" - dependencies: - debug "2.3.3" - engine.io "~1.8.4" - has-binary "0.1.7" - object-assign "4.1.0" - socket.io-adapter "0.5.0" - socket.io-client "1.7.4" - socket.io-parser "2.3.1" - sol-explore@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/sol-explore/-/sol-explore-1.6.2.tgz#43ae8c419fd3ac056a05f8a9d1fb1022cd41ecc2" -solc@0.4.11, solc@^0.4.2: - version "0.4.11" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.11.tgz#2522eb43e7c0419bac2060b96e20a2593bfb5e8b" +solc@0.4.13: + version "0.4.13" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.13.tgz#aa5cbdcce3e6ae3c190d20f5fdf8bc880702ec75" dependencies: fs-extra "^0.30.0" memorystream "^0.3.1" @@ -5712,6 +3245,16 @@ solc@0.4.8: semver "^5.3.0" yargs "^4.7.1" +solc@^0.4.2: + version "0.4.11" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.11.tgz#2522eb43e7c0419bac2060b96e20a2593bfb5e8b" + dependencies: + fs-extra "^0.30.0" + memorystream "^0.3.1" + require-from-string "^1.1.0" + semver "^5.3.0" + yargs "^4.7.1" + solidity-coverage@^0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.1.7.tgz#dd83d0685fc3bb107355da3b7da2db576bbc7374" @@ -5726,7 +3269,7 @@ solidity-coverage@^0.1.7: sol-explore "^1.6.2" solidity-parser "git+https://github.com/sc-forks/solidity-parser.git" -solidity-parser@^0.3.0, "solidity-parser@git+https://github.com/sc-forks/solidity-parser.git": +"solidity-parser@git+https://github.com/sc-forks/solidity-parser.git": version "0.3.0" resolved "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0" dependencies: @@ -5734,37 +3277,21 @@ solidity-parser@^0.3.0, "solidity-parser@git+https://github.com/sc-forks/solidit pegjs "^0.10.0" yargs "^4.6.0" -solidity-sha3@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/solidity-sha3/-/solidity-sha3-0.4.1.tgz#17577e93f6cfd58489c4ec7f2da3047530329ec1" - dependencies: - babel-cli "*" - babel-preset-es2015 "*" - babel-register "*" - left-pad "^1.1.1" - web3 "^0.16.0" - source-map-support@^0.4.2: version "0.4.15" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" dependencies: source-map "^0.5.6" -"source-map@>= 0.1.2", source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.1: - version "0.5.6" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" - source-map@^0.4.4: version "0.4.4" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" dependencies: amdefine ">=0.0.4" -source-map@~0.1.33: - version "0.1.43" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" - dependencies: - amdefine ">=0.0.4" +source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" source-map@~0.2.0: version "0.2.0" @@ -5772,10 +3299,6 @@ source-map@~0.2.0: dependencies: amdefine ">=0.0.4" -spawn-args@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/spawn-args/-/spawn-args-0.1.0.tgz#3e0232a0571b387907f8b3f544aa531c6224848c" - spdx-correct@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-1.0.2.tgz#4b3073d933ff51f3912f03ac5519498a4150db40" @@ -5790,25 +3313,7 @@ spdx-license-ids@^1.0.2: version "1.2.2" resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz#c9df7a3424594ade6bd11900d596696dc06bac57" -spdy-transport@^2.0.18: - version "2.0.20" - resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.0.20.tgz#735e72054c486b2354fe89e702256004a39ace4d" - dependencies: - debug "^2.6.8" - detect-node "^2.0.3" - hpack.js "^2.1.6" - obuf "^1.1.1" - readable-stream "^2.2.9" - safe-buffer "^5.0.1" - wbuf "^1.7.2" - -split2@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/split2/-/split2-2.1.1.tgz#7a1f551e176a90ecd3345f7246a0cfe175ef4fd0" - dependencies: - through2 "^2.0.2" - -sprintf-js@^1.0.3, sprintf-js@~1.0.2: +sprintf-js@~1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" @@ -5826,72 +3331,13 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -stable@^0.1.5: - version "0.1.6" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.6.tgz#910f5d2aed7b520c6e777499c1f32e139fdecb10" - -statehood@5.x.x: - version "5.0.2" - resolved "https://registry.yarnpkg.com/statehood/-/statehood-5.0.2.tgz#c6b3baa16ed8b121d3f09a3ffa85e22195a7f2a9" - dependencies: - boom "5.x.x" - cryptiles "3.x.x" - hoek "4.x.x" - iron "4.x.x" - items "2.x.x" - joi "10.x.x" - -static-eval@~0.2.0: - version "0.2.4" - resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-0.2.4.tgz#b7d34d838937b969f9641ca07d48f8ede263ea7b" - dependencies: - escodegen "~0.0.24" - -static-module@^1.1.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/static-module/-/static-module-1.3.2.tgz#329fb9f223a566266bda71843b7d932c767174f3" - dependencies: - concat-stream "~1.6.0" - duplexer2 "~0.0.2" - escodegen "~1.3.2" - falafel "^1.0.0" - has "^1.0.0" - object-inspect "~0.4.0" - quote-stream "~0.0.0" - readable-stream "~1.0.27-1" - shallow-copy "~0.0.1" - static-eval "~0.2.0" - through2 "~0.4.1" - -"statuses@>= 1.3.1 < 2", statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - -stream-http@^2.5.0: - version "2.7.1" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.1.tgz#546a51741ad5a6b07e9e31b0b10441a917df528a" - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.2.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -stream-to-pull-stream@^1.7.0, stream-to-pull-stream@^1.7.1, stream-to-pull-stream@^1.7.2: +stream-to-pull-stream@^1.7.1: version "1.7.2" resolved "https://registry.yarnpkg.com/stream-to-pull-stream/-/stream-to-pull-stream-1.7.2.tgz#757609ae1cebd33c7432d4afbe31ff78650b9dde" dependencies: looper "^3.0.0" pull-stream "^3.2.3" -streamifier@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/streamifier/-/streamifier-0.1.1.tgz#97e98d8fa4d105d62a2691d1dc07e820db8dfc4f" - -streamsearch@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-0.1.2.tgz#808b9d0e56fc273d809ba57338e929919a1a9f1a" - string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -5961,16 +3407,6 @@ strip-json-comments@~2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" -subtext@^4.3.x: - version "4.4.1" - resolved "https://registry.yarnpkg.com/subtext/-/subtext-4.4.1.tgz#2fcec945de429283c3d18b151ff0fa1f1b87aec9" - dependencies: - boom "5.x.x" - content "3.x.x" - hoek "4.x.x" - pez "2.x.x" - wreck "12.x.x" - supports-color@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" @@ -6023,20 +3459,7 @@ tar-fs@^1.13.0: pump "^1.0.0" tar-stream "^1.1.2" -tar-pack@^3.4.0: - version "3.4.0" - resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" - dependencies: - debug "^2.2.0" - fstream "^1.0.10" - fstream-ignore "^1.0.5" - once "^1.3.3" - readable-stream "^2.1.4" - rimraf "^2.5.1" - tar "^2.2.1" - uid-number "^0.0.6" - -tar-stream@^1.1.2, tar-stream@^1.5.2: +tar-stream@^1.1.2: version "1.5.4" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016" dependencies: @@ -6045,14 +3468,6 @@ tar-stream@^1.1.2, tar-stream@^1.5.2: readable-stream "^2.0.0" xtend "^4.0.0" -tar@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" - dependencies: - block-stream "*" - fstream "^1.0.2" - inherits "2" - temp@^0.8.3: version "0.8.3" resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" @@ -6064,46 +3479,16 @@ text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" -through2@^2.0.0, through2@^2.0.1, through2@^2.0.2, through2@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" - dependencies: - readable-stream "^2.1.5" - xtend "~4.0.1" - -through2@~0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/through2/-/through2-0.4.2.tgz#dbf5866031151ec8352bb6c4db64a2292a840b9b" - dependencies: - readable-stream "~1.0.17" - xtend "~2.1.1" - through@^2.3.6, through@~2.3.4, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -timed-out@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-3.1.3.tgz#95860bfcc5c76c277f8f8326fd0f5b2e20eba217" - -timed-tape@~0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/timed-tape/-/timed-tape-0.1.1.tgz#9b6e569f17e66c79f1eed2d25ff7962fc7418e49" - tmp@0.0.31: version "0.0.31" resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" dependencies: os-tmpdir "~1.0.1" -to-array@0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/to-array/-/to-array-0.1.4.tgz#17e6c11f73dd4f3d74cda7a4ff3238e9ad9bf890" - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - to-fast-properties@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" @@ -6112,22 +3497,12 @@ to-iso-string@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/to-iso-string/-/to-iso-string-0.0.2.tgz#4dc19e664dfccbe25bd8db508b00c6da158255d1" -topo@2.x.x: - version "2.0.2" - resolved "https://registry.yarnpkg.com/topo/-/topo-2.0.2.tgz#cd5615752539057c0dc0491a621c3bc6fbe1d182" - dependencies: - hoek "4.x.x" - tough-cookie@~2.3.0: version "2.3.2" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.2.tgz#f081f76e4c85720e6c37a5faced737150d84072a" dependencies: punycode "^1.4.1" -traverse@^0.6.6: - version "0.6.6" - resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.6.tgz#cbdf560fd7b9af632502fed40f918c157ea97137" - trim-right@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" @@ -6136,105 +3511,6 @@ trim@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/trim/-/trim-0.0.1.tgz#5858547f6b290757ee95cccc666fb50084c460dd" -truffle-artifactor@^2.1.2, truffle-artifactor@~2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/truffle-artifactor/-/truffle-artifactor-2.1.4.tgz#320b38e102a7f9abb7f2aa9af6781b99d735bd13" - dependencies: - async "^1.5.2" - fs-extra "^1.0.0" - lodash "^4.11.2" - truffle-contract "^2.0.0" - truffle-contract-schema "0.0.5" - -truffle-blockchain-utils@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/truffle-blockchain-utils/-/truffle-blockchain-utils-0.0.1.tgz#07a58e55bb0555a64208c9119c0b04ffe1464aa4" - dependencies: - web3 "^0.18.0" - -truffle-compile@~2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/truffle-compile/-/truffle-compile-2.0.3.tgz#a62d95898611f14f778de992d4dd5cea643a5df7" - dependencies: - async "^2.1.4" - colors "^1.1.2" - graphlib "^2.1.1" - solc "0.4.11" - solidity-parser "^0.3.0" - truffle-config "0.0.7" - truffle-contract-sources "^0.0.1" - truffle-error "0.0.2" - truffle-expect "0.0.3" - -truffle-config@0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/truffle-config/-/truffle-config-0.0.6.tgz#9bfceee29f0b62e1adef37f0305df313f63d456b" - dependencies: - find-up "^2.1.0" - lodash "^4.17.4" - require-nocache "^1.0.0" - truffle-error "0.0.1" - truffle-provider "0.0.1" - -truffle-config@0.0.7, truffle-config@~0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/truffle-config/-/truffle-config-0.0.7.tgz#03185bb9ddd88c62a6a306cfdfc495b3c715e7c4" - dependencies: - find-up "^2.1.0" - lodash "^4.17.4" - require-nocache "^1.0.0" - truffle-error "0.0.2" - truffle-provider "0.0.1" - -truffle-contract-schema@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/truffle-contract-schema/-/truffle-contract-schema-0.0.5.tgz#5e9d20bd0bf2a27fe94310748249d484eee49961" - dependencies: - crypto-js "^3.1.9-1" - -truffle-contract-sources@^0.0.1, truffle-contract-sources@~0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/truffle-contract-sources/-/truffle-contract-sources-0.0.1.tgz#29b6270366c86109cbb0eb307418fc6b2795d7fd" - dependencies: - node-dir "^0.1.16" - -truffle-contract@^1.1.6: - version "1.1.11" - resolved "https://registry.yarnpkg.com/truffle-contract/-/truffle-contract-1.1.11.tgz#ce1fa787f797758aff572f45e8b1174527f6edaa" - dependencies: - ethjs-abi "0.1.8" - truffle-blockchain-utils "0.0.1" - truffle-contract-schema "0.0.5" - web3 "^0.16.0" - -truffle-contract@^2.0.0, truffle-contract@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/truffle-contract/-/truffle-contract-2.0.1.tgz#f83e3f18d8044027f2a9ee7c33767ba10fd39dd8" - dependencies: - ethjs-abi "0.1.8" - truffle-blockchain-utils "0.0.1" - truffle-contract-schema "0.0.5" - web3 "^0.18.0" - -truffle-deployer@^1.0.0, truffle-deployer@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/truffle-deployer/-/truffle-deployer-1.0.1.tgz#014cce6e59989c446290db7e9c6c8f7df3ccb0e2" - dependencies: - truffle-contract "^2.0.0" - truffle-expect "^0.0.3" - -truffle-error@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/truffle-error/-/truffle-error-0.0.1.tgz#4b39badf54805a206e95fca72becabcec2c05a6f" - -truffle-error@0.0.2, truffle-error@~0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/truffle-error/-/truffle-error-0.0.2.tgz#01b189b78505566ae1689c239c7ca2dd121cfe4c" - -truffle-expect@0.0.3, truffle-expect@^0.0.3, truffle-expect@~0.0.3: - version "0.0.3" - resolved "https://registry.yarnpkg.com/truffle-expect/-/truffle-expect-0.0.3.tgz#9b75cef343bd596e7e5dbc878f5f1b2e318a944c" - truffle-hdwallet-provider@0.0.3: version "0.0.3" resolved "https://registry.yarnpkg.com/truffle-hdwallet-provider/-/truffle-hdwallet-provider-0.0.3.tgz#0e1de02104b73d3875e1cf7093305b4ea8a2d843" @@ -6244,145 +3520,32 @@ truffle-hdwallet-provider@0.0.3: web3 "^0.18.2" web3-provider-engine "^8.4.0" -truffle-init@~1.0.5: - version "1.0.6" - resolved "https://registry.yarnpkg.com/truffle-init/-/truffle-init-1.0.6.tgz#80765a409d9f2f5c3e8b66b6ed4ac5dbe75c9d94" +truffle@^3.4.6: + version "3.4.6" + resolved "https://registry.yarnpkg.com/truffle/-/truffle-3.4.6.tgz#72a07154233b4d1198ecb991a5fab468a0c54671" dependencies: - fs-extra "^2.0.0" - github-download "^0.5.0" - npm-programmatic "0.0.6" - rimraf "^2.5.4" - temp "^0.8.3" - truffle-config "0.0.7" - -truffle-migrate@~1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/truffle-migrate/-/truffle-migrate-1.1.2.tgz#b6dca908d84382d080315968c0da0344bfaed7d8" - dependencies: - async "^2.1.4" - node-dir "^0.1.16" - truffle-deployer "^1.0.0" - truffle-expect "0.0.3" - truffle-require "1.0.0" - web3 "^0.18.0" - -truffle-provider@0.0.1, truffle-provider@~0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/truffle-provider/-/truffle-provider-0.0.1.tgz#9d0ddb01131de1e3c59c4f8a0532bd2770811f1f" - dependencies: - web3 "^0.18.0" - -truffle-provisioner@^0.1.0, truffle-provisioner@~0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/truffle-provisioner/-/truffle-provisioner-0.1.0.tgz#029e5249c1015300738535e04fded931a53c4f62" - -truffle-require@1.0.0, truffle-require@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/truffle-require/-/truffle-require-1.0.0.tgz#b17aa5e3c27eb4b3a26ddcf76c55ccb01d62ead9" - dependencies: - truffle-config "0.0.6" - truffle-expect "0.0.3" - web3 "^0.18.0" - -truffle-resolver@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/truffle-resolver/-/truffle-resolver-3.0.0.tgz#1b0f36594f3da54084a7149c06a1ffe517068e1c" - dependencies: - async "^2.1.4" - truffle-contract "^2.0.0" - truffle-expect "0.0.3" - truffle-provisioner "^0.1.0" - -truffle-solidity-utils@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/truffle-solidity-utils/-/truffle-solidity-utils-1.0.0.tgz#5320416dcd3702a775e4cca5c5731d465dab30ae" - dependencies: - solidity-parser "^0.3.0" - -truffle@3.2.2: - version "3.2.2" - resolved "https://registry.yarnpkg.com/truffle/-/truffle-3.2.2.tgz#540a09922b01fc41d59162a7a88e398a8be3de31" - dependencies: - async "^1.4.2" - chai "^3.3.0" - chokidar "^1.4.2" - colors "^1.1.2" - cpr "^0.4.3" - del "^2.2.0" - diff "1.4.0" - ethpm "0.0.10" - ethpm-registry "0.0.9" - finalhandler "^0.4.0" - fs-extra "^2.0.0" - lodash "^4.5.1" - mkdirp "^0.5.1" - mocha "^3.2.0" - node-dir "^0.1.10" - serve-static "^1.10.0" - spawn-args "^0.1.0" - temp "^0.8.3" - truffle-artifactor "~2.1.4" - truffle-compile "~2.0.0" - truffle-config "~0.0.7" - truffle-contract "~2.0.0" - truffle-contract-sources "~0.0.1" - truffle-deployer "~1.0.0" - truffle-error "~0.0.2" - truffle-expect "~0.0.3" - truffle-init "~1.0.5" - truffle-migrate "~1.1.1" - truffle-provider "~0.0.1" - truffle-provisioner "~0.1.0" - truffle-require "~1.0.0" - truffle-resolver "~3.0.0" - truffle-solidity-utils "~1.0.0" - web3 "^0.18.0" - yargs "^6.6.0" + mocha "^3.4.2" + original-require "^1.0.1" + solc "0.4.13" tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" -tslib@^1.5.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/tslib/-/tslib-1.7.1.tgz#bc8004164691923a79fe8378bbeb3da2017538ec" - tunnel-agent@^0.4.3, tunnel-agent@~0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - dependencies: - safe-buffer "^5.0.1" - -tunnel@0.0.2: - version "0.0.2" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.2.tgz#f23bcd8b7a7b8a864261b2084f66f93193396334" - tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" -tweetnacl@^1.0.0-rc.1: - version "1.0.0" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.0.tgz#713d8b818da42068740bf68386d0479e66fc8a7b" - type-check@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" dependencies: prelude-ls "~1.1.2" -type-detect@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-0.1.1.tgz#0ba5ec2a885640e470ea4e8505971900dac58822" - -type-detect@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-1.0.0.tgz#762217cc06db258ec48908a1298e8b95121e8ea2" - type-detect@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-3.0.0.tgz#46d0cc8553abb7b13a352b0d6dea2fd58f2d9b55" @@ -6391,12 +3554,6 @@ type-detect@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.3.tgz#0e3f2670b44099b0b46c284d136a7ef49c74c2ea" -typedarray-to-buffer@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.2.tgz#1017b32d984ff556eba100f501589aba1ace2e04" - dependencies: - is-typedarray "^1.0.0" - typedarray-to-buffer@~1.0.0: version "1.0.4" resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz#9bb8ba0e841fb3f4cf1fe7c245e9f3fa8a5fe99c" @@ -6405,10 +3562,6 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typescript@^2: - version "2.3.4" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-2.3.4.tgz#3d38321828231e434f287514959c37a82b629f42" - typewise-core@^1.2, typewise-core@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/typewise-core/-/typewise-core-1.2.0.tgz#97eb91805c7f55d2f941748fa50d315d991ef195" @@ -6436,49 +3589,14 @@ uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" -uid-number@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" - -ultron@1.0.x: - version "1.0.2" - resolved "https://registry.yarnpkg.com/ultron/-/ultron-1.0.2.tgz#ace116ab557cd197386a4e88f4685378c8b2e4fa" - unorm@^1.3.3: version "1.4.1" resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.4.1.tgz#364200d5f13646ca8bcd44490271335614792300" -unpipe@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" - -unzip-response@^1.0.0, unzip-response@^1.0.2: +unzip-response@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" -update-notifier@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-1.0.3.tgz#8f92c515482bd6831b7c93013e70f87552c7cf5a" - dependencies: - boxen "^0.6.0" - chalk "^1.0.0" - configstore "^2.0.0" - is-npm "^1.0.0" - latest-version "^2.0.0" - lazy-req "^1.1.0" - semver-diff "^2.0.0" - xdg-basedir "^2.0.0" - -url-parse-lax@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-1.0.0.tgz#7af8f303645e9bd79a272e7a14ac68bc0609da73" - dependencies: - prepend-http "^1.0.1" - -user-home@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-1.1.1.tgz#2b5be23a32b63a7c9deb8d0f28d485724a3df190" - user-home@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" @@ -6489,7 +3607,7 @@ utf8@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" -util-deprecate@^1.0.2, util-deprecate@~1.0.1: +util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -6501,12 +3619,6 @@ uuid@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" -v8flags@^2.0.10: - version "2.1.1" - resolved "https://registry.yarnpkg.com/v8flags/-/v8flags-2.1.1.tgz#aab1a1fa30d45f88dd321148875ac02c0b55e5b4" - dependencies: - user-home "^1.1.1" - validate-npm-package-license@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz#2804babe712ad3379459acfbe24746ab2c303fbc" @@ -6514,36 +3626,12 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" -varint@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/varint/-/varint-4.0.1.tgz#490829b942d248463b2b35097995c3bf737198e9" - -varint@^5.0.0, varint@~5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/varint/-/varint-5.0.0.tgz#d826b89f7490732fabc0c0ed693ed475dcb29ebf" - -vcsurl@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/vcsurl/-/vcsurl-0.1.1.tgz#5e00a109e7381b55b5d45b892533c8ec35c9320c" - verror@1.3.6: version "1.3.6" resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" dependencies: extsprintf "1.0.2" -vise@2.x.x: - version "2.0.2" - resolved "https://registry.yarnpkg.com/vise/-/vise-2.0.2.tgz#6b08e8fb4cb76e3a50cd6dd0ec37338e811a0d39" - dependencies: - hoek "4.x.x" - -wbuf@^1.1.0, wbuf@^1.7.2: - version "1.7.2" - resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.2.tgz#d697b99f1f59512df2751be42769c1580b5801fe" - dependencies: - minimalistic-assert "^1.0.0" - web3-provider-engine@^8.4.0: version "8.6.1" resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-8.6.1.tgz#4d86e19e30caaf97df351511ec0f60136e5b30eb" @@ -6591,7 +3679,7 @@ web3@^0.16.0, web3@~0.16.0: utf8 "^2.1.1" xmlhttprequest "*" -web3@^0.18.0, web3@^0.18.2: +web3@^0.18.2: version "0.18.4" resolved "https://registry.yarnpkg.com/web3/-/web3-0.18.4.tgz#81ec1784145491f2eaa8955b31c06049e07c5e7d" dependencies: @@ -6601,24 +3689,6 @@ web3@^0.18.0, web3@^0.18.2: xhr2 "*" xmlhttprequest "*" -webcrypto-core@^0.1.16: - version "0.1.16" - resolved "https://registry.yarnpkg.com/webcrypto-core/-/webcrypto-core-0.1.16.tgz#de4914b59148db73287bc4f8e61cf4fb2f56f020" - dependencies: - "@types/node" "^6" - tslib "^1.5.0" - -"webcrypto-shim@github:dignifiedquire/webcrypto-shim#master": - version "0.1.1" - resolved "https://codeload.github.com/dignifiedquire/webcrypto-shim/tar.gz/effe03d3401ccbfb4837191bc393bb347e0c0f0a" - -wget-improved@^1.4.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/wget-improved/-/wget-improved-1.5.0.tgz#fc9e89379f6eba72a5586ccc9d52f5580616f20f" - dependencies: - minimist "1.2.0" - tunnel "0.0.2" - whatwg-fetch@>=0.10.0: version "2.0.3" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" @@ -6639,12 +3709,6 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2" -widest-line@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-1.0.0.tgz#0c09c85c2a94683d0d7eaf8ee097d564bf0e105c" - dependencies: - string-width "^1.0.1" - window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" @@ -6680,51 +3744,12 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -wreck@12.x.x: - version "12.2.2" - resolved "https://registry.yarnpkg.com/wreck/-/wreck-12.2.2.tgz#e21823d34c36d672004eefa347ae8c4f6050e3db" - dependencies: - boom "5.x.x" - hoek "4.x.x" - -write-file-atomic@^1.1.2: - version "1.3.4" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-1.3.4.tgz#f807a4f0b1d9e913ae7a48112e6cc3af1991b45f" - dependencies: - graceful-fs "^4.1.11" - imurmurhash "^0.1.4" - slide "^1.1.5" - write@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" dependencies: mkdirp "^0.5.1" -ws@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.2.tgz#8a244fa052401e08c9886cf44a85189e1fd4067f" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - -ws@1.1.4, ws@^1.1.0: - version "1.1.4" - resolved "https://registry.yarnpkg.com/ws/-/ws-1.1.4.tgz#57f40d036832e5f5055662a397c4de76ed66bf61" - dependencies: - options ">=0.0.5" - ultron "1.0.x" - -wtf-8@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/wtf-8/-/wtf-8-1.0.0.tgz#392d8ba2d0f1c34d1ee2d630f15d0efb68e1048a" - -xdg-basedir@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-2.0.0.tgz#edbc903cc385fc04523d966a335504b5504d1bd2" - dependencies: - os-homedir "^1.0.0" - xhr2@*: version "0.1.4" resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f" @@ -6738,15 +3763,11 @@ xhr@^2.2.0: parse-headers "^2.0.0" xtend "^4.0.0" -xmlhttprequest-ssl@1.5.3: - version "1.5.3" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.3.tgz#185a888c04eca46c3e4070d99f7b49de3528992d" - xmlhttprequest@*: version "1.8.0" resolved "https://registry.yarnpkg.com/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz#67fe075c5c24fef39f9d65f5f7b7fe75171968fc" -xtend@4.0.1, xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0, xtend@~4.0.1: +xtend@4.0.1, xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" @@ -6764,10 +3785,6 @@ y18n@^3.2.0, y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" -yallist@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" - yargs-parser@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" @@ -6775,12 +3792,6 @@ yargs-parser@^2.4.1: camelcase "^3.0.0" lodash.assign "^4.0.6" -yargs-parser@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" - dependencies: - camelcase "^3.0.0" - yargs@^4.6.0, yargs@^4.7.1: version "4.8.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" @@ -6800,24 +3811,6 @@ yargs@^4.6.0, yargs@^4.7.1: y18n "^3.2.1" yargs-parser "^2.4.1" -yargs@^6.3.0, yargs@^6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" - yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" @@ -6837,7 +3830,3 @@ yargs@~3.29.0: os-locale "^1.4.0" window-size "^0.1.2" y18n "^3.2.0" - -yeast@0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/yeast/-/yeast-0.1.2.tgz#008e06d8094320c372dbc2f8ed76a0ca6c8ac419" From 6fccd202fe637b9820907ecf0d7824f40b50e398 Mon Sep 17 00:00:00 2001 From: Santiago Palladino Date: Wed, 26 Jul 2017 17:20:28 -0300 Subject: [PATCH 084/160] Fix invalid number of args for solidity function errors in tests --- test/Crowdsale.js | 2 +- test/DayLimit.js | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/test/Crowdsale.js b/test/Crowdsale.js index 3e697b05a..5160fea42 100644 --- a/test/Crowdsale.js +++ b/test/Crowdsale.js @@ -45,7 +45,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { it('should reject payments before start', async function () { await this.crowdsale.send(value).should.be.rejectedWith(EVMThrow) - await this.crowdsale.buyTokens(investor, value, {from: purchaser}).should.be.rejectedWith(EVMThrow) + await this.crowdsale.buyTokens(investor, {from: purchaser, value: value}).should.be.rejectedWith(EVMThrow) }) it('should accept payments after start', async function () { diff --git a/test/DayLimit.js b/test/DayLimit.js index bad39fdc8..66befb00e 100644 --- a/test/DayLimit.js +++ b/test/DayLimit.js @@ -13,7 +13,7 @@ contract('DayLimit', function(accounts) { beforeEach( async function() { dayLimit = await DayLimitMock.new(initLimit); }); - + it('should construct with the passed daily limit', async function() { let dailyLimit = await dayLimit.dailyLimit(); assert.equal(initLimit, dailyLimit); @@ -76,7 +76,7 @@ contract('DayLimit', function(accounts) { spentToday = await dayLimit.spentToday(); assert.equal(spentToday, 8); - await dayLimit.resetSpentToday(15); + await dayLimit.resetSpentToday(); await dayLimit.attemptSpend(3); spentToday = await dayLimit.spentToday(); assert.equal(spentToday, 3); From 5e7c168b25add343981f6801090375a21463252e Mon Sep 17 00:00:00 2001 From: Santiago Palladino Date: Wed, 26 Jul 2017 17:23:20 -0300 Subject: [PATCH 085/160] Fix missing storage keyword warnings --- contracts/token/VestedToken.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index 5a3087723..5bee34dc2 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -72,7 +72,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @param _grantId The id of the token grant. */ function revokeTokenGrant(address _holder, uint256 _grantId) public { - TokenGrant grant = grants[_holder][_grantId]; + TokenGrant storage grant = grants[_holder][_grantId]; require(grant.revokable); require(grant.granter == msg.sender); // Only granter can revoke it @@ -186,7 +186,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * revokability, burnsOnRevoke, and vesting) plus the vested value at the current time. */ function tokenGrant(address _holder, uint256 _grantId) constant returns (address granter, uint256 value, uint256 vested, uint64 start, uint64 cliff, uint64 vesting, bool revokable, bool burnsOnRevoke) { - TokenGrant grant = grants[_holder][_grantId]; + TokenGrant storage grant = grants[_holder][_grantId]; granter = grant.granter; value = grant.value; From 09a8da5d6a84f7f6993fb991169978a5ace4ff41 Mon Sep 17 00:00:00 2001 From: Jeremy Grenier Date: Fri, 28 Jul 2017 17:35:27 +0200 Subject: [PATCH 086/160] Remove return values of pause() and unpause() of Pausable --- contracts/lifecycle/Pausable.sol | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/contracts/lifecycle/Pausable.sol b/contracts/lifecycle/Pausable.sol index 9f2e719cd..1099d83b2 100644 --- a/contracts/lifecycle/Pausable.sol +++ b/contracts/lifecycle/Pausable.sol @@ -34,18 +34,16 @@ contract Pausable is Ownable { /** * @dev called by the owner to pause, triggers stopped state */ - function pause() onlyOwner whenNotPaused returns (bool) { + function pause() onlyOwner whenNotPaused { paused = true; Pause(); - return true; } /** * @dev called by the owner to unpause, returns to normal state */ - function unpause() onlyOwner whenPaused returns (bool) { + function unpause() onlyOwner whenPaused { paused = false; Unpause(); - return true; } } From e5da857d4f9820a9705fb0d67bfc3602e767aa25 Mon Sep 17 00:00:00 2001 From: Ariel Barmat Date: Fri, 28 Jul 2017 20:53:55 +0200 Subject: [PATCH 087/160] Fix typos in SafeMath doc --- docs/source/safemath.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/safemath.rst b/docs/source/safemath.rst index 892c45a77..d269c9030 100644 --- a/docs/source/safemath.rst +++ b/docs/source/safemath.rst @@ -11,7 +11,7 @@ Throws an error if the passed result is false. Used in this contract by checking mul(uint256 a, uint256 b) internal returns (uint256) """"""""""""""""""""""""""""""""""""""""""""""""" -Multiplies two unisgned integers. Asserts that dividing the product by the non-zero multiplicand results in the multiplier. +Multiplies two unsigned integers. Asserts that dividing the product by the non-zero multiplicand results in the multiplier. sub(uint256 a, uint256 b) internal returns (uint256) """"""""""""""""""""""""""""""""""""""""""""""""" From eb5b6252bcfbfc0ed179d39961ab5c62a89e8e53 Mon Sep 17 00:00:00 2001 From: Ariel Barmat Date: Fri, 28 Jul 2017 20:59:11 +0200 Subject: [PATCH 088/160] Add missing parentheses in modifier --- contracts/lifecycle/Pausable.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/lifecycle/Pausable.sol b/contracts/lifecycle/Pausable.sol index 9f2e719cd..80038ecbe 100644 --- a/contracts/lifecycle/Pausable.sol +++ b/contracts/lifecycle/Pausable.sol @@ -26,7 +26,7 @@ contract Pausable is Ownable { /** * @dev modifier to allow actions only when the contract IS NOT paused */ - modifier whenPaused { + modifier whenPaused() { require(paused); _; } From 3296471bdaf3dc08e1f2fbd4e9ab3a5aa2589846 Mon Sep 17 00:00:00 2001 From: lsaether Date: Fri, 28 Jul 2017 16:07:04 -0700 Subject: [PATCH 089/160] Added contracts/token/BurnableToken.sol --- contracts/token/BurnableToken.sol | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 contracts/token/BurnableToken.sol diff --git a/contracts/token/BurnableToken.sol b/contracts/token/BurnableToken.sol new file mode 100644 index 000000000..2ae294aaf --- /dev/null +++ b/contracts/token/BurnableToken.sol @@ -0,0 +1,27 @@ +pragma solidity ^0.4.13; + +import './StandardToken.sol'; + +/** + * @title Burnable Token + * @dev Token that can be irreversibly burned (destroyed). + */ +contract BurnableToken is StandardToken{ + + /** + * @dev Burns a specific amount of tokens. + * @param _value The amount of token to be burned. + */ + function burn(uint _value) + public + { + require(_value > 0); + + address burner = masg.sender; + balances[burner] = balanced[burner].sub(_value); + totalSupply = totalSupply.sub(_value); + Burn(burner, _value); + } + + event Burn(address indexed burner, uint indexed value); +} \ No newline at end of file From b414545b6ef56dd0cb6265e95ede94d2df8af6b4 Mon Sep 17 00:00:00 2001 From: Logan Saether Date: Fri, 28 Jul 2017 16:11:27 -0700 Subject: [PATCH 090/160] fixed typos XP --- contracts/token/BurnableToken.sol | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/contracts/token/BurnableToken.sol b/contracts/token/BurnableToken.sol index 2ae294aaf..5498cb3ae 100644 --- a/contracts/token/BurnableToken.sol +++ b/contracts/token/BurnableToken.sol @@ -6,7 +6,7 @@ import './StandardToken.sol'; * @title Burnable Token * @dev Token that can be irreversibly burned (destroyed). */ -contract BurnableToken is StandardToken{ +contract BurnableToken is StandardToken { /** * @dev Burns a specific amount of tokens. @@ -17,11 +17,11 @@ contract BurnableToken is StandardToken{ { require(_value > 0); - address burner = masg.sender; - balances[burner] = balanced[burner].sub(_value); + address burner = msg.sender; + balances[burner] = balances[burner].sub(_value); totalSupply = totalSupply.sub(_value); Burn(burner, _value); } event Burn(address indexed burner, uint indexed value); -} \ No newline at end of file +} From 2403508e1b60a7b2a75b8df9aaae00f0c6eddd4e Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sat, 29 Jul 2017 00:29:17 +0100 Subject: [PATCH 091/160] Add complex crowdsale example #331 --- .../examples/crowdsale/SampleCrowdsale.sol | 27 +++++++++++++++++++ .../crowdsale/SampleCrowdsaleToken.sol | 18 +++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 contracts/examples/crowdsale/SampleCrowdsale.sol create mode 100644 contracts/examples/crowdsale/SampleCrowdsaleToken.sol diff --git a/contracts/examples/crowdsale/SampleCrowdsale.sol b/contracts/examples/crowdsale/SampleCrowdsale.sol new file mode 100644 index 000000000..82071c08d --- /dev/null +++ b/contracts/examples/crowdsale/SampleCrowdsale.sol @@ -0,0 +1,27 @@ +pragma solidity ^0.4.11; + +import "../../crowdsale/CappedCrowdsale.sol"; +import "../../crowdsale/RefundableCrowdsale.sol"; +import "./SampleCrowdsaleToken.sol"; + +/** + * @title SampleCrowdsale + * @dev This is an example of a fully fledged crowdsale that incorporates + * ability to finalize sale and checks for both cap and goal. + */ +contract SampleCrowdsale is CappedCrowdsale, RefundableCrowdsale { + + function SampleCrowdsale(uint256 _startBlock, uint256 _endBlock, uint256 _rate, uint256 _goal, uint256 _cap, address _wallet) + CappedCrowdsale(_cap) + FinalizableCrowdsale() + RefundableCrowdsale(_goal) + Crowdsale(_startBlock, _endBlock, _rate, _wallet) + { + require(_goal <= _cap); + } + + function createTokenContract() internal returns (MintableToken) { + return new SampleCrowdsaleToken(); + } + +} \ No newline at end of file diff --git a/contracts/examples/crowdsale/SampleCrowdsaleToken.sol b/contracts/examples/crowdsale/SampleCrowdsaleToken.sol new file mode 100644 index 000000000..155b3e439 --- /dev/null +++ b/contracts/examples/crowdsale/SampleCrowdsaleToken.sol @@ -0,0 +1,18 @@ +pragma solidity ^0.4.11; + + +import "../../token/MintableToken.sol"; + + +/** + * @title SampleCrowdsaleToken + * @dev Very simple ERC20 Token that can be minted. + * It is meant to be used in a crowdsale contract. + */ +contract SampleCrowdsaleToken is MintableToken { + + string public constant name = "Sample Crowdsale Token"; + string public constant symbol = "SCT"; + uint256 public constant decimals = 18; + +} From 04e0b2e5c2c61d4672b0e1bdb00d8e4796ee8267 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sat, 29 Jul 2017 00:29:59 +0100 Subject: [PATCH 092/160] Add complex crowdsale example #331 tests --- test/SampleCrowdsale.js | 95 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 95 insertions(+) create mode 100644 test/SampleCrowdsale.js diff --git a/test/SampleCrowdsale.js b/test/SampleCrowdsale.js new file mode 100644 index 000000000..2f6ddea41 --- /dev/null +++ b/test/SampleCrowdsale.js @@ -0,0 +1,95 @@ +import ether from './helpers/ether' +import advanceToBlock from './helpers/advanceToBlock' +import EVMThrow from './helpers/EVMThrow' + +const BigNumber = web3.BigNumber; + +const should = require('chai') + .use(require('chai-as-promised')) + .use(require('chai-bignumber')(BigNumber)) + .should(); + +const SampleCrowdsale = artifacts.require('SampleCrowdsale'); +const SampleCrowdsaleToken = artifacts.require('SampleCrowdsaleToken'); + +contract('Crowdsale', function ([owner, wallet, investor]) { + + const RATE = new BigNumber(10); + const GOAL = ether(10); + const CAP = ether(20); + + beforeEach(async function () { + this.startBlock = web3.eth.blockNumber + 10; + this.endBlock = web3.eth.blockNumber + 20; + + this.crowdsale = await SampleCrowdsale.new(this.startBlock, this.endBlock, RATE, GOAL, CAP, wallet); + this.token = SampleCrowdsaleToken.at(await this.crowdsale.token()); + }); + + + it('should create crowdsale with correct parameters', async function () { + this.crowdsale.should.exist; + this.token.should.exist; + + (await this.crowdsale.startBlock()).should.be.bignumber.equal(this.startBlock); + (await this.crowdsale.endBlock()).should.be.bignumber.equal(this.endBlock); + (await this.crowdsale.rate()).should.be.bignumber.equal(RATE); + (await this.crowdsale.wallet()).should.be.bignumber.equal(wallet); + (await this.crowdsale.goal()).should.be.bignumber.equal(GOAL); + (await this.crowdsale.cap()).should.be.bignumber.equal(CAP); + }); + + it('should not accept payments before start', async function () { + await this.crowdsale.send(ether(1)).should.be.rejectedWith(EVMThrow); + await this.crowdsale.buyTokens(investor, {from: investor, value: ether(1)}).should.be.rejectedWith(EVMThrow); + }); + + it('should accept payments during the sale', async function () { + const investmentAmount = ether(1); + const expectedTokenAmount = RATE.mul(investmentAmount); + + await advanceToBlock(this.startBlock - 1); + await this.crowdsale.buyTokens(investor, {value: investmentAmount, from: investor}).should.be.fulfilled; + + (await this.token.balanceOf(investor)).should.be.bignumber.equal(expectedTokenAmount); + (await this.token.totalSupply()).should.be.bignumber.equal(expectedTokenAmount); + }); + + it('should reject payments after end', async function () { + await advanceToBlock(this.endBlock); + await this.crowdsale.send(ether(1)).should.be.rejectedWith(EVMThrow); + await this.crowdsale.buyTokens(investor, {value: ether(1), from: investor}).should.be.rejectedWith(EVMThrow); + }); + + it('should reject payments over cap', async function () { + await advanceToBlock(this.startBlock - 1); + await this.crowdsale.send(CAP); + await this.crowdsale.send(1).should.be.rejectedWith(EVMThrow); + }); + + it('should allow finalization and transfer funds to wallet if the goal is reached', async function () { + await advanceToBlock(this.endBlock - 1); + await this.crowdsale.send(GOAL); + + const beforeFinalization = web3.eth.getBalance(wallet); + await this.crowdsale.finalize({from: owner}); + const afterFinalization = web3.eth.getBalance(wallet); + + afterFinalization.minus(beforeFinalization).should.be.bignumber.equal(GOAL); + }); + + it('should allow refunds if the goal is not reached', async function () { + const balanceBeforeInvestment = web3.eth.getBalance(investor); + + await advanceToBlock(this.startBlock - 1); + await this.crowdsale.sendTransaction({value: ether(1), from: investor, gasPrice: 0}); + await advanceToBlock(this.endBlock); + + await this.crowdsale.finalize({from: owner}); + await this.crowdsale.claimRefund({from: investor, gasPrice: 0}).should.be.fulfilled; + + const balanceAfterRefund = web3.eth.getBalance(investor); + balanceBeforeInvestment.should.be.bignumber.equal(balanceAfterRefund); + }); + +}); From a9e1fcd623b0ed7a3a8a186ed66a1469e1d405af Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sat, 29 Jul 2017 09:00:54 +0100 Subject: [PATCH 093/160] Add complex crowdsale example #331 requested changes --- contracts/examples/SampleCrowdsale.sol | 48 +++++++++++++++++++ .../examples/crowdsale/SampleCrowdsale.sol | 27 ----------- .../crowdsale/SampleCrowdsaleToken.sol | 18 ------- test/SampleCrowdsale.js | 2 +- 4 files changed, 49 insertions(+), 46 deletions(-) create mode 100644 contracts/examples/SampleCrowdsale.sol delete mode 100644 contracts/examples/crowdsale/SampleCrowdsale.sol delete mode 100644 contracts/examples/crowdsale/SampleCrowdsaleToken.sol diff --git a/contracts/examples/SampleCrowdsale.sol b/contracts/examples/SampleCrowdsale.sol new file mode 100644 index 000000000..2fc95c610 --- /dev/null +++ b/contracts/examples/SampleCrowdsale.sol @@ -0,0 +1,48 @@ +pragma solidity ^0.4.11; + +import "../crowdsale/CappedCrowdsale.sol"; +import "../crowdsale/RefundableCrowdsale.sol"; +import "../token/MintableToken.sol"; + +/** + * @title SampleCrowdsaleToken + * @dev Very simple ERC20 Token that can be minted. + * It is meant to be used in a crowdsale contract. + */ +contract SampleCrowdsaleToken is MintableToken { + + string public constant name = "Sample Crowdsale Token"; + string public constant symbol = "SCT"; + uint8 public constant decimals = 18; + +} + +/** + * @title SampleCrowdsale + * @dev This is an example of a fully fledged crowdsale. + * The way to add new features to a base crowdsale is by multiple inheritance. + * In this example we are providing following extensions: + * CappedCrowdsale - sets a max boundary for raised funds + * RefundableCrowdsale - set a min goal to be reached and returns funds if it's not met + * + * After adding multiple features it's good practice to run integration tests + * to ensure that subcontracts works together as intended. + */ +contract SampleCrowdsale is CappedCrowdsale, RefundableCrowdsale { + + function SampleCrowdsale(uint256 _startBlock, uint256 _endBlock, uint256 _rate, uint256 _goal, uint256 _cap, address _wallet) + CappedCrowdsale(_cap) + FinalizableCrowdsale() + RefundableCrowdsale(_goal) + Crowdsale(_startBlock, _endBlock, _rate, _wallet) + { + //As goal needs to be met for a successful crowdsale + //the value needs to less or equal than a cap which is limit for accepted funds + require(_goal <= _cap); + } + + function createTokenContract() internal returns (MintableToken) { + return new SampleCrowdsaleToken(); + } + +} \ No newline at end of file diff --git a/contracts/examples/crowdsale/SampleCrowdsale.sol b/contracts/examples/crowdsale/SampleCrowdsale.sol deleted file mode 100644 index 82071c08d..000000000 --- a/contracts/examples/crowdsale/SampleCrowdsale.sol +++ /dev/null @@ -1,27 +0,0 @@ -pragma solidity ^0.4.11; - -import "../../crowdsale/CappedCrowdsale.sol"; -import "../../crowdsale/RefundableCrowdsale.sol"; -import "./SampleCrowdsaleToken.sol"; - -/** - * @title SampleCrowdsale - * @dev This is an example of a fully fledged crowdsale that incorporates - * ability to finalize sale and checks for both cap and goal. - */ -contract SampleCrowdsale is CappedCrowdsale, RefundableCrowdsale { - - function SampleCrowdsale(uint256 _startBlock, uint256 _endBlock, uint256 _rate, uint256 _goal, uint256 _cap, address _wallet) - CappedCrowdsale(_cap) - FinalizableCrowdsale() - RefundableCrowdsale(_goal) - Crowdsale(_startBlock, _endBlock, _rate, _wallet) - { - require(_goal <= _cap); - } - - function createTokenContract() internal returns (MintableToken) { - return new SampleCrowdsaleToken(); - } - -} \ No newline at end of file diff --git a/contracts/examples/crowdsale/SampleCrowdsaleToken.sol b/contracts/examples/crowdsale/SampleCrowdsaleToken.sol deleted file mode 100644 index 155b3e439..000000000 --- a/contracts/examples/crowdsale/SampleCrowdsaleToken.sol +++ /dev/null @@ -1,18 +0,0 @@ -pragma solidity ^0.4.11; - - -import "../../token/MintableToken.sol"; - - -/** - * @title SampleCrowdsaleToken - * @dev Very simple ERC20 Token that can be minted. - * It is meant to be used in a crowdsale contract. - */ -contract SampleCrowdsaleToken is MintableToken { - - string public constant name = "Sample Crowdsale Token"; - string public constant symbol = "SCT"; - uint256 public constant decimals = 18; - -} diff --git a/test/SampleCrowdsale.js b/test/SampleCrowdsale.js index 2f6ddea41..a589194f7 100644 --- a/test/SampleCrowdsale.js +++ b/test/SampleCrowdsale.js @@ -34,7 +34,7 @@ contract('Crowdsale', function ([owner, wallet, investor]) { (await this.crowdsale.startBlock()).should.be.bignumber.equal(this.startBlock); (await this.crowdsale.endBlock()).should.be.bignumber.equal(this.endBlock); (await this.crowdsale.rate()).should.be.bignumber.equal(RATE); - (await this.crowdsale.wallet()).should.be.bignumber.equal(wallet); + (await this.crowdsale.wallet()).should.be.equal(wallet); (await this.crowdsale.goal()).should.be.bignumber.equal(GOAL); (await this.crowdsale.cap()).should.be.bignumber.equal(CAP); }); From cf5833093677d9462f8c3028ac1955d4ef4711f2 Mon Sep 17 00:00:00 2001 From: lsaether Date: Mon, 31 Jul 2017 17:23:23 -0700 Subject: [PATCH 094/160] added tests for BurnableToken --- package-lock.json | 3226 ++++++++++++++++++++++++++++ test/BurnableToken.js | 39 + test/helpers/BurnableTokenMock.sol | 12 + 3 files changed, 3277 insertions(+) create mode 100644 package-lock.json create mode 100644 test/BurnableToken.js create mode 100644 test/helpers/BurnableTokenMock.sol diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 000000000..0f45b961b --- /dev/null +++ b/package-lock.json @@ -0,0 +1,3226 @@ +{ + "name": "zeppelin-solidity", + "version": "1.2.0", + "lockfileVersion": 1, + "dependencies": { + "abbrev": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz", + "integrity": "sha1-kbR5JYinc4wl813W9jdSovh3YTU=", + "dev": true + }, + "abstract-leveldown": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.2.tgz", + "integrity": "sha512-6RmGuGZSsvwIYS9otANM+Rie7/6UNdE0IbxwUiXFjXmjHNCJZEjyX2Pltl5BvIYszLODlsnXtyA7A7Ujlca4Gw==" + }, + "aes-js": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-0.2.4.tgz", + "integrity": "sha1-lLiBq3FyhtAV+iGeCPtmcJ3aWj0=" + }, + "ajv": { + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", + "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" + }, + "align-text": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", + "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", + "dev": true + }, + "amdefine": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz", + "integrity": "sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU=", + "dev": true + }, + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + }, + "aproba": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", + "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==" + }, + "are-we-there-yet": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=" + }, + "argparse": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", + "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", + "dev": true + }, + "asn1": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + }, + "assert-plus": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + }, + "assertion-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.0.2.tgz", + "integrity": "sha1-E8pRXYYgbaC6xm6DTdOX2HWBCUw=", + "dev": true + }, + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==" + }, + "async-eventemitter": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.3.tgz", + "integrity": "sha1-959IDf2mZFqXvWFCwBcVDWO05w4=" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "aws-sign2": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + }, + "aws4": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + }, + "babel-code-frame": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=" + }, + "babel-core": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", + "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=" + }, + "babel-generator": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", + "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=", + "dependencies": { + "jsesc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + } + } + }, + "babel-helper-bindify-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", + "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", + "dev": true + }, + "babel-helper-builder-binary-assignment-operator-visitor": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", + "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", + "dev": true + }, + "babel-helper-call-delegate": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=" + }, + "babel-helper-define-map": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", + "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=" + }, + "babel-helper-explode-assignable-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", + "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", + "dev": true + }, + "babel-helper-explode-class": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", + "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", + "dev": true + }, + "babel-helper-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=" + }, + "babel-helper-get-function-arity": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=" + }, + "babel-helper-hoist-variables": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=" + }, + "babel-helper-optimise-call-expression": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=" + }, + "babel-helper-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", + "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=" + }, + "babel-helper-remap-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", + "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", + "dev": true + }, + "babel-helper-replace-supers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=" + }, + "babel-helpers": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=" + }, + "babel-messages": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=" + }, + "babel-plugin-check-es2015-constants": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=" + }, + "babel-plugin-syntax-async-functions": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz", + "integrity": "sha1-ytnK0RkbWtY0vzCuCHI5HgZHvpU=", + "dev": true + }, + "babel-plugin-syntax-async-generators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-async-generators/-/babel-plugin-syntax-async-generators-6.13.0.tgz", + "integrity": "sha1-a8lj67FuzLrmuStZbrfzXDQqi5o=", + "dev": true + }, + "babel-plugin-syntax-class-properties": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-class-properties/-/babel-plugin-syntax-class-properties-6.13.0.tgz", + "integrity": "sha1-1+sjt5oxf4VDlixQW4J8fWysJ94=", + "dev": true + }, + "babel-plugin-syntax-decorators": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-decorators/-/babel-plugin-syntax-decorators-6.13.0.tgz", + "integrity": "sha1-MSVjtNvePMgGzuPkFszurd0RrAs=", + "dev": true + }, + "babel-plugin-syntax-dynamic-import": { + "version": "6.18.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-dynamic-import/-/babel-plugin-syntax-dynamic-import-6.18.0.tgz", + "integrity": "sha1-jWomIpyDdFqZgqRBBRVyyqF5sdo=", + "dev": true + }, + "babel-plugin-syntax-exponentiation-operator": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz", + "integrity": "sha1-nufoM3KQ2pUoggGmpX9BcDF4MN4=", + "dev": true + }, + "babel-plugin-syntax-object-rest-spread": { + "version": "6.13.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-object-rest-spread/-/babel-plugin-syntax-object-rest-spread-6.13.0.tgz", + "integrity": "sha1-/WU28rzhODb/o6VFjEkDpZe7O/U=", + "dev": true + }, + "babel-plugin-syntax-trailing-function-commas": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz", + "integrity": "sha1-ugNgk3+NBuQBgKQ/4NVhb/9TLPM=", + "dev": true + }, + "babel-plugin-transform-async-generator-functions": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", + "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", + "dev": true + }, + "babel-plugin-transform-async-to-generator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", + "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", + "dev": true + }, + "babel-plugin-transform-class-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", + "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", + "dev": true + }, + "babel-plugin-transform-decorators": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", + "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", + "dev": true + }, + "babel-plugin-transform-es2015-arrow-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=" + }, + "babel-plugin-transform-es2015-block-scoped-functions": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=" + }, + "babel-plugin-transform-es2015-block-scoping": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", + "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=" + }, + "babel-plugin-transform-es2015-classes": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=" + }, + "babel-plugin-transform-es2015-computed-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=" + }, + "babel-plugin-transform-es2015-destructuring": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=" + }, + "babel-plugin-transform-es2015-duplicate-keys": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=" + }, + "babel-plugin-transform-es2015-for-of": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=" + }, + "babel-plugin-transform-es2015-function-name": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=" + }, + "babel-plugin-transform-es2015-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=" + }, + "babel-plugin-transform-es2015-modules-amd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=" + }, + "babel-plugin-transform-es2015-modules-commonjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", + "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=" + }, + "babel-plugin-transform-es2015-modules-systemjs": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=" + }, + "babel-plugin-transform-es2015-modules-umd": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=" + }, + "babel-plugin-transform-es2015-object-super": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=" + }, + "babel-plugin-transform-es2015-parameters": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=" + }, + "babel-plugin-transform-es2015-shorthand-properties": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=" + }, + "babel-plugin-transform-es2015-spread": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=" + }, + "babel-plugin-transform-es2015-sticky-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=" + }, + "babel-plugin-transform-es2015-template-literals": { + "version": "6.22.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=" + }, + "babel-plugin-transform-es2015-typeof-symbol": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=" + }, + "babel-plugin-transform-es2015-unicode-regex": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=" + }, + "babel-plugin-transform-exponentiation-operator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", + "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", + "dev": true + }, + "babel-plugin-transform-object-rest-spread": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz", + "integrity": "sha1-h11ryb52HFiirj/u5dxIldjH+SE=", + "dev": true + }, + "babel-plugin-transform-regenerator": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", + "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=" + }, + "babel-plugin-transform-strict-mode": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=" + }, + "babel-polyfill": { + "version": "6.23.0", + "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", + "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", + "dev": true + }, + "babel-preset-es2015": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=" + }, + "babel-preset-stage-2": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", + "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", + "dev": true + }, + "babel-preset-stage-3": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", + "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", + "dev": true + }, + "babel-register": { + "version": "6.24.1", + "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", + "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=" + }, + "babel-runtime": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", + "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=" + }, + "babel-template": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", + "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=" + }, + "babel-traverse": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", + "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=" + }, + "babel-types": { + "version": "6.25.0", + "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", + "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=" + }, + "babelify": { + "version": "7.3.0", + "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", + "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=" + }, + "babylon": { + "version": "6.17.4", + "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", + "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==" + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + }, + "base-x": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-1.1.0.tgz", + "integrity": "sha1-QtPXF0dPnqAiB/bRqh9CaRPut6w=" + }, + "bcrypt-pbkdf": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", + "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", + "optional": true + }, + "bignumber.js": { + "version": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" + }, + "bindings": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" + }, + "bip39": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.3.1.tgz", + "integrity": "sha1-yCOKvAnXGcbwETbvBC2szF3DWBs=" + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=" + }, + "bl": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=" + }, + "bn.js": { + "version": "4.11.7", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", + "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==" + }, + "boom": { + "version": "2.10.1", + "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" + }, + "brace-expansion": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=" + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + }, + "browser-stdout": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.0.tgz", + "integrity": "sha1-81HTKWnTL6XXpVZxVCY9korjvR8=", + "dev": true + }, + "browserify-aes": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", + "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=" + }, + "browserify-sha3": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/browserify-sha3/-/browserify-sha3-0.0.1.tgz", + "integrity": "sha1-P/NKMAbvFcD7NWflQbkaI0ASPRE=" + }, + "bs58": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-3.1.0.tgz", + "integrity": "sha1-1MJjiL9IBMrHFBQbGUWqR+XrJI4=" + }, + "bs58check": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-1.3.4.tgz", + "integrity": "sha1-xSVABzdJEXcU+gQsMEfrj5FRy/g=" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + }, + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + }, + "bytewise": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", + "integrity": "sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4=", + "dev": true + }, + "bytewise-core": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", + "integrity": "sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI=", + "dev": true + }, + "camelcase": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + }, + "center-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", + "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", + "dev": true, + "optional": true + }, + "chai": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.0.tgz", + "integrity": "sha1-MxoDkbVcOvh0CunDt0WLwcOAXm0=", + "dev": true + }, + "chai-as-promised": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", + "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", + "dev": true + }, + "chai-bignumber": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/chai-bignumber/-/chai-bignumber-2.0.1.tgz", + "integrity": "sha1-jjNq/F1WqxbCf5Xi9Zsl4KCvyBw=", + "dev": true + }, + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", + "dev": true + }, + "checkpoint-store": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", + "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=" + }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==" + }, + "cliui": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=" + }, + "clone": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" + }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + }, + "coinstring": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/coinstring/-/coinstring-2.3.0.tgz", + "integrity": "sha1-zbYzY6lhUCQEolr7gsLibV/2J6Q=", + "dependencies": { + "bs58": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-2.0.1.tgz", + "integrity": "sha1-VZCNWPGYKrogCPob7Y+RmYopv40=" + } + } + }, + "combined-stream": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" + }, + "commander": { + "version": "2.11.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.11.0.tgz", + "integrity": "sha512-b0553uYA5YAEGgyYIGYROzKQ7X5RAqedkfjiZxwi0kL1g3bOaBNNZfYkzt/CL0umgD5wc9Jec2FbB98CjkMRvQ==", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + }, + "convert-source-map": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" + }, + "core-js": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", + "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + }, + "coveralls": { + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.1.tgz", + "integrity": "sha1-1wu5rMGDXsTwY/+drFQjwXsR8Xg=", + "dev": true, + "dependencies": { + "caseless": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true + }, + "har-validator": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true + }, + "qs": { + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true + }, + "request": { + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true + }, + "tunnel-agent": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true + }, + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true + } + } + }, + "create-hash": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=" + }, + "create-hmac": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=" + }, + "cryptiles": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" + }, + "crypto-js": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.8.tgz", + "integrity": "sha1-cV8HC/YBTyrpkqmLOSkli3E/CNU=" + }, + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "death": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", + "integrity": "sha1-AaqcQB7dknUFFEcLgmY5DGbGcxg=", + "dev": true + }, + "debug": { + "version": "2.6.8", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" + }, + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + }, + "deep-eql": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-2.0.2.tgz", + "integrity": "sha1-sbrAblbwp2d3aG1Qyf63XC7XZ5o=", + "dev": true, + "dependencies": { + "type-detect": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-3.0.0.tgz", + "integrity": "sha1-RtDMhVOrt7E6NSsNbeov1Y8tm1U=", + "dev": true + } + } + }, + "deep-equal": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + }, + "deep-extend": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + }, + "deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", + "dev": true + }, + "deferred-leveldown": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==" + }, + "define-properties": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", + "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dependencies": { + "object-keys": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" + } + } + }, + "defined": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + }, + "detect-indent": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=" + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", + "dev": true + }, + "dom-walk": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + }, + "drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=" + }, + "ecc-jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", + "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", + "optional": true + }, + "elliptic": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=" + }, + "encoding": { + "version": "0.1.12", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=" + }, + "end-of-stream": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=" + }, + "errno": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", + "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "dependencies": { + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" + } + } + }, + "error-ex": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=" + }, + "es-abstract": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", + "integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=" + }, + "es-to-primitive": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "escodegen": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", + "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", + "dev": true, + "dependencies": { + "source-map": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", + "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", + "dev": true, + "optional": true + } + } + }, + "esprima": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", + "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", + "dev": true + }, + "estraverse": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", + "integrity": "sha1-r2fy3JIlgkFZUJJgkaQAXSnJu0Q=", + "dev": true + }, + "esutils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + }, + "ethereumjs-account": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.4.tgz", + "integrity": "sha1-+MMCMby3B/RRTYoFLB+doQNiTUc=" + }, + "ethereumjs-block": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.6.0.tgz", + "integrity": "sha1-ze1JYt6soe7xc3K00pDoSzXIQ3I=", + "dependencies": { + "ethereumjs-util": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", + "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=" + } + } + }, + "ethereumjs-testrpc": { + "version": "3.9.2", + "resolved": "https://registry.npmjs.org/ethereumjs-testrpc/-/ethereumjs-testrpc-3.9.2.tgz", + "integrity": "sha1-uw8tPDqjk1CHKtOOQMg+nXhzMck=", + "dev": true + }, + "ethereumjs-testrpc-sc": { + "version": "git+https://github.com/sc-forks/testrpc-sc.git#a11b9b530caf2785ff24f749fa2d5b0cb59a2810", + "dev": true, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + }, + "bignumber.js": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.1.4.tgz", + "integrity": "sha1-KbO7aT27I46Ity6sL7iWUIiLLVk=", + "dev": true + }, + "bip39": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.2.0.tgz", + "integrity": "sha1-QOc/cGdMJn8UjNv4N08qUL4Waw0=", + "dev": true + }, + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "ethereum-common": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.16.tgz", + "integrity": "sha1-mh4Wnq00q3XgifUMpRK/0PvRJlU=" + }, + "ethereumjs-block": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.2.2.tgz", + "integrity": "sha1-LsdTSlkCG47JuDww5JaQxuuu3aE=", + "dependencies": { + "ethereumjs-util": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=" + } + } + }, + "ethereumjs-tx": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.1.2.tgz", + "integrity": "sha1-wVFHfGIF0YYGAOKRCMPqyul+Kfo=", + "dependencies": { + "ethereum-common": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.17.tgz", + "integrity": "sha1-C1VMqdUSytyL4EVvvQAP/MOsT28=" + }, + "ethereumjs-util": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=" + } + } + }, + "ethereumjs-util": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", + "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=", + "dev": true + }, + "ethereumjs-vm": { + "version": "git+https://github.com/sc-forks/ethereumjs-vm-sc.git#328771cace30ed16ad5c1d13a69cda13d31173f9", + "dev": true, + "dependencies": { + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dev": true + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", + "dev": true + }, + "ethereumjs-util": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "dev": true + } + } + }, + "shelljs": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz", + "integrity": "sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=", + "dev": true + }, + "solc": { + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.8.tgz", + "integrity": "sha1-lqu+4SZjQa6X+0vcOrzJvBtQUqs=", + "dev": true, + "dependencies": { + "yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", + "dev": true + } + } + }, + "web3": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-0.16.0.tgz", + "integrity": "sha1-pFVBdc1GKUMDWx8dOUMvdBxrYBk=", + "dev": true, + "dependencies": { + "bignumber.js": { + "version": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9", + "dev": true + } + } + }, + "web3-provider-engine": { + "version": "git+https://github.com/sc-forks/provider-engine-sc.git#0e7af0eb99dfb21d399766bc031cf02e89536fe1", + "dev": true, + "dependencies": { + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==" + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + }, + "ethereumjs-tx": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.3.tgz", + "integrity": "sha1-7OBR0+/b53GtKlGNYWMsoqt17Ls=", + "dev": true + }, + "ethereumjs-vm": { + "version": "git+https://github.com/sc-forks/ethereumjs-vm-sc.git#328771cace30ed16ad5c1d13a69cda13d31173f9", + "dependencies": { + "ethereumjs-util": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=" + } + } + } + } + }, + "yargs": { + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz", + "integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=", + "dev": true, + "dependencies": { + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "dev": true + } + } + } + } + }, + "ethereumjs-tx": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.3.tgz", + "integrity": "sha1-7OBR0+/b53GtKlGNYWMsoqt17Ls=", + "dependencies": { + "ethereumjs-util": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", + "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=" + } + } + }, + "ethereumjs-util": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=" + }, + "ethereumjs-vm": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.2.0.tgz", + "integrity": "sha1-qyKWsaYo7+xFA/ZpHH2jzQ6R0yM=", + "dependencies": { + "ethereum-common": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.1.0.tgz", + "integrity": "sha1-h03Q+uXpYqVsUOvyjvpv45SSsOc=" + } + } + }, + "ethereumjs-wallet": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.0.tgz", + "integrity": "sha1-gnY7Fpfuenlr5xVdqd+0my+Yz9s=" + }, + "ethjs-util": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.4.tgz", + "integrity": "sha1-HItoeSV0RO9NPz+7rC3tEs2ZfZM=" + }, + "evp_bytestokey": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", + "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=" + }, + "expand-template": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.0.3.tgz", + "integrity": "sha1-bDAzIxd6YrGyLAcCefeGEoe2mxo=" + }, + "extend": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + }, + "extsprintf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", + "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + }, + "fake-merkle-patricia-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", + "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=" + }, + "fast-future": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/fast-future/-/fast-future-1.0.2.tgz", + "integrity": "sha1-hDWpqqAteSSNF9cE52JZMB2ZKAo=", + "dev": true + }, + "fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", + "dev": true + }, + "find-up": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=" + }, + "for-each": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", + "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=" + }, + "foreach": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + }, + "form-data": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=" + }, + "fs-extra": { + "version": "0.30.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=" + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "function-bind": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" + }, + "functional-red-black-tree": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" + }, + "generate-function": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/generate-function/-/generate-function-2.0.0.tgz", + "integrity": "sha1-aFj+fAlpt9TpCTM3ZHrHn2DfvnQ=", + "dev": true + }, + "generate-object-property": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", + "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", + "dev": true + }, + "get-caller-file": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "github-from-package": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" + }, + "global": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=" + }, + "globals": { + "version": "9.18.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + }, + "graceful-readlink": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/graceful-readlink/-/graceful-readlink-1.0.1.tgz", + "integrity": "sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=", + "dev": true + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=", + "dev": true + }, + "handlebars": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", + "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", + "dev": true, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "source-map": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", + "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", + "dev": true + } + } + }, + "har-schema": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", + "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" + }, + "har-validator": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", + "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=" + }, + "has": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=" + }, + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" + }, + "has-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-1.0.0.tgz", + "integrity": "sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo=", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + }, + "hash-base": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=" + }, + "hash.js": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==" + }, + "hawk": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" + }, + "hdkey": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-0.7.1.tgz", + "integrity": "sha1-yu5L6BqneSHpCbjSKN0PKayu5jI=" + }, + "heap": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", + "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=", + "dev": true + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=" + }, + "hoek": { + "version": "2.16.3", + "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + }, + "home-or-tmp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=" + }, + "hosted-git-info": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + }, + "http-signature": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" + }, + "iconv-lite": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", + "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==" + }, + "idb-wrapper": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.1.tgz", + "integrity": "sha1-ajJnASLhc6hOzFz6lmj6LOsiGwQ=", + "dev": true + }, + "immediate": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + }, + "ini": { + "version": "1.3.4", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + }, + "interpret": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.0.3.tgz", + "integrity": "sha1-y8NcYu7uc/Gat7EKgBURQBr8D5A=", + "dev": true + }, + "invariant": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", + "integrity": "sha1-Hzsm72E7IUuIy8ojzGwB2Hlh7sw=", + "dev": true + }, + "is-builtin-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=" + }, + "is-callable": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" + }, + "is-date-object": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + }, + "is-finite": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" + }, + "is-function": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + }, + "is-my-json-valid": { + "version": "2.16.0", + "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", + "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", + "dev": true + }, + "is-property": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", + "integrity": "sha1-V/4cTkhHTt1lsJkR8msc1Ald2oQ=", + "dev": true + }, + "is-regex": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" + }, + "is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + }, + "is-symbol": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isbuffer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", + "integrity": "sha1-OMFG2d9Si4v5sHAcPUPPEt8/w5s=", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isomorphic-fetch": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=" + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + }, + "istanbul": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", + "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", + "dev": true, + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "glob": { + "version": "5.0.15", + "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", + "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", + "dev": true + }, + "resolve": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", + "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", + "dev": true + }, + "supports-color": { + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", + "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", + "dev": true + } + } + }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "dev": true, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=", + "dev": true + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=", + "dev": true + } + } + }, + "js-sha3": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.3.1.tgz", + "integrity": "sha1-hhIoAhQvCChQKg0d7h2V4lO7AkM=" + }, + "js-tokens": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + }, + "js-yaml": { + "version": "3.6.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", + "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", + "dev": true + }, + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "optional": true + }, + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + }, + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + }, + "json3": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.2.tgz", + "integrity": "sha1-PAQ0dD35Pi9cQq7nsZvLSDV19OE=", + "dev": true + }, + "json5": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + }, + "jsonfile": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=" + }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + }, + "jsonpointer": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", + "integrity": "sha1-T9kss04OnbPInIYi7PUfm5eMbLk=", + "dev": true + }, + "jsprim": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", + "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "keccak": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.3.0.tgz", + "integrity": "sha512-JgsKPxYhcJxKrV+TrCyg/GwZbOjhpRPrz2kG8xbAsUaIDelUlKjm08YcwBO9Fm8sqf/Kg8ZWkk6nWujhLykfvw==" + }, + "keccakjs": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/keccakjs/-/keccakjs-0.2.1.tgz", + "integrity": "sha1-HWM6+QfvMFu/ny+mFtVsRFYd+k0=" + }, + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true + }, + "klaw": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=" + }, + "lazy-cache": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", + "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", + "dev": true, + "optional": true + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=" + }, + "lcov-parse": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/lcov-parse/-/lcov-parse-0.0.10.tgz", + "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", + "dev": true + }, + "level-browserify": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/level-browserify/-/level-browserify-1.1.1.tgz", + "integrity": "sha1-Ebk/h0yHIy3HUJrWGlkM5lyvBQM=", + "dev": true + }, + "level-codec": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.0.tgz", + "integrity": "sha1-x1W2jQ1E/6Cxy6BEuPgaVaFK05s=" + }, + "level-errors": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.4.tgz", + "integrity": "sha1-NYXmI5dMc3qTdVSSpDwCZ82kQl8=" + }, + "level-iterator-stream": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", + "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=" + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + } + } + }, + "level-js": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", + "integrity": "sha1-vAVfQYBjXUSJtWHJSG+jcOjBFpc=", + "dev": true, + "dependencies": { + "abstract-leveldown": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", + "integrity": "sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=", + "dev": true, + "dependencies": { + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true + } + } + }, + "level-packager": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-1.2.1.tgz", + "integrity": "sha1-Bn/t/Qcrf+PGvsYIDAy9SmsuEfQ=", + "dev": true + }, + "level-post": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/level-post/-/level-post-1.0.5.tgz", + "integrity": "sha1-KmY5BAm/ahYhpES6tvAWREzJgCw=", + "dev": true + }, + "level-sublevel": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.1.tgz", + "integrity": "sha1-+ad/dSGrcKj46S7VbyGjx4hqRIU=", + "dev": true, + "dependencies": { + "abstract-leveldown": { + "version": "0.12.4", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", + "integrity": "sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=", + "dev": true, + "dependencies": { + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, + "bl": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", + "integrity": "sha1-yba8oI0bwuoA/Ir7Txpf0eHGbk4=", + "dev": true + }, + "deferred-leveldown": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", + "integrity": "sha1-LO8fER4cV4cNi7uK8mUOWHzS9bQ=", + "dev": true + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true + }, + "levelup": { + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.19.1.tgz", + "integrity": "sha1-86anIFJyxLXzXkEv8ASgOgrt9Qs=", + "dev": true, + "dependencies": { + "xtend": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", + "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", + "dev": true + } + } + }, + "prr": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "dev": true + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true + }, + "semver": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.1.tgz", + "integrity": "sha1-oykqNz5vPgeY2gsgZBuanFvEfhk=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, + "level-ws": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", + "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "dependencies": { + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + }, + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=" + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + }, + "xtend": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=" + } + } + }, + "leveldown": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-1.7.2.tgz", + "integrity": "sha1-XjRnuyfuJGpKe429j7KxYgam64s=", + "dev": true, + "dependencies": { + "bindings": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", + "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=", + "dev": true + } + } + }, + "levelup": { + "version": "1.3.9", + "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==" + }, + "levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dev": true + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=" + }, + "lodash": { + "version": "4.17.4", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + }, + "lodash._baseassign": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", + "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", + "dev": true + }, + "lodash._basecopy": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz", + "integrity": "sha1-jaDmqHbPNEwK2KVIghEd08XHyjY=", + "dev": true + }, + "lodash._basecreate": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/lodash._basecreate/-/lodash._basecreate-3.0.3.tgz", + "integrity": "sha1-G8ZhYU2qf8MRt9A78WgGoCE8+CE=", + "dev": true + }, + "lodash._getnative": { + "version": "3.9.1", + "resolved": "https://registry.npmjs.org/lodash._getnative/-/lodash._getnative-3.9.1.tgz", + "integrity": "sha1-VwvH3t5G1hzc3mh9ZdPuy6o6r/U=", + "dev": true + }, + "lodash._isiterateecall": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz", + "integrity": "sha1-UgOte6Ql+uhCRg5pbbnPPmqsBXw=", + "dev": true + }, + "lodash.assign": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + }, + "lodash.create": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", + "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", + "dev": true + }, + "lodash.isarguments": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", + "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "dev": true + }, + "lodash.isarray": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/lodash.isarray/-/lodash.isarray-3.0.4.tgz", + "integrity": "sha1-eeTriMNqgSKvhvhEqpvNhRtfu1U=", + "dev": true + }, + "lodash.keys": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", + "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", + "dev": true + }, + "log-driver": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/log-driver/-/log-driver-1.2.5.tgz", + "integrity": "sha1-euTsJXMC/XkNVXyxDJcQDYV7AFY=", + "dev": true + }, + "longest": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", + "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", + "dev": true + }, + "looper": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/looper/-/looper-2.0.0.tgz", + "integrity": "sha1-Zs0Md0rz1P7axTeU90LbVtqPCew=", + "dev": true + }, + "loose-envify": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=" + }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=", + "dev": true + }, + "ltgt": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.1.3.tgz", + "integrity": "sha1-EIUaBtmWS5cReEQcI8nlJpjuzjQ=" + }, + "memdown": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.2.4.tgz", + "integrity": "sha1-zZo0qvB01TRFonEQjrS43U7A8n8=", + "dependencies": { + "abstract-leveldown": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.4.1.tgz", + "integrity": "sha1-s7/tuITraToSd18MVenwpCDM7mQ=" + } + } + }, + "memorystream": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=" + }, + "merkle-patricia-tree": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.1.2.tgz", + "integrity": "sha1-ckSD1Ut1YxpI/t2lXhFAUXBqcpE=", + "dependencies": { + "async": { + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + } + } + }, + "mime-db": { + "version": "1.29.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", + "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" + }, + "mime-types": { + "version": "2.1.16", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", + "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=" + }, + "min-document": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=" + }, + "minimalistic-assert": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + }, + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dependencies": { + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + } + } + }, + "mocha": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", + "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "dev": true, + "dependencies": { + "commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=", + "dev": true + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=", + "dev": true + }, + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "dev": true + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "dev": true + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=", + "dev": true + }, + "supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=", + "dev": true + } + } + }, + "mocha-lcov-reporter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mocha-lcov-reporter/-/mocha-lcov-reporter-1.3.0.tgz", + "integrity": "sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q=", + "dev": true + }, + "moment": { + "version": "2.18.1", + "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", + "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "nan": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" + }, + "node-abi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.1.0.tgz", + "integrity": "sha512-AbW35CPRE4vdieOse46V+16dKispLNv3PQwgqlcfg7GQeQHcLu3gvp3fbU2gTh7d8NfGjp5CJh+j4Hpyb0XzaA==" + }, + "node-fetch": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz", + "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ==" + }, + "noop-logger": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" + }, + "nopt": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", + "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", + "dev": true + }, + "normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==" + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==" + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "oauth-sign": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + }, + "object-inspect": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.2.2.tgz", + "integrity": "sha1-yCEV5PzIiK6hTWTCLk8X9qcNXlo=" + }, + "object-keys": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + }, + "optimist": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", + "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "dev": true, + "dependencies": { + "minimist": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", + "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", + "dev": true + }, + "wordwrap": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", + "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", + "dev": true + } + } + }, + "optionator": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", + "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", + "dev": true + }, + "original-require": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/original-require/-/original-require-1.0.1.tgz", + "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=", + "dev": true + }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=" + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + }, + "parse-headers": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", + "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=" + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-parse": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=" + }, + "pathval": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", + "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", + "dev": true + }, + "pbkdf2": { + "version": "3.0.12", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", + "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=" + }, + "pegjs": { + "version": "0.10.0", + "resolved": "https://registry.npmjs.org/pegjs/-/pegjs-0.10.0.tgz", + "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=", + "dev": true + }, + "performance-now": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", + "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" + }, + "prebuild-install": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.2.1.tgz", + "integrity": "sha512-y/sgNJ49vjXQ3qYdSI/jTRZq6D7g5Q2euK6x0/L8dvwK1EGvNLidtg2t4PZzTgkR6LahkzpYVshOmHKYtp0AlQ==" + }, + "prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "dev": true + }, + "private": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", + "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=" + }, + "process": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + }, + "process-nextick-args": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" + }, + "pull-cat": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz", + "integrity": "sha1-tkLdElXaN2pwa220+pYvX9t0wxs=", + "dev": true + }, + "pull-level": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/pull-level/-/pull-level-2.0.3.tgz", + "integrity": "sha1-lQBjXiV5Rdb+7eGF9deiR3NFWxc=", + "dev": true + }, + "pull-live": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/pull-live/-/pull-live-1.0.1.tgz", + "integrity": "sha1-pOzuAeMwFV6RJLu89HYfIbOPUfU=", + "dev": true + }, + "pull-pushable": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.1.1.tgz", + "integrity": "sha1-hmZqu+P1QC8ffq0D7v1pt4Xspbg=", + "dev": true + }, + "pull-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.0.tgz", + "integrity": "sha1-WdAzpoFdTjCX1Hw9KxiTqeWKI1E=", + "dev": true + }, + "pull-window": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/pull-window/-/pull-window-2.1.4.tgz", + "integrity": "sha1-/DuG/uvRkgx64pdpHiP3BfiFUvA=", + "dev": true + }, + "pump": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", + "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=" + }, + "punycode": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + }, + "qs": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", + "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + }, + "randombytes": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==" + }, + "rc": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=" + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=" + }, + "readable-stream": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==" + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", + "dev": true + }, + "regenerate": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", + "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=" + }, + "regenerator-runtime": { + "version": "0.10.5", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + }, + "regenerator-transform": { + "version": "0.9.11", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", + "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=" + }, + "regexpu-core": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=" + }, + "regjsgen": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + }, + "regjsparser": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=" + }, + "repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "dev": true + }, + "repeating": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=" + }, + "req-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-1.0.1.tgz", + "integrity": "sha1-DXOurpJm5penj3l2AZZ352rPD/8=", + "dev": true + }, + "req-from": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/req-from/-/req-from-1.0.1.tgz", + "integrity": "sha1-v4HaUUeUfTLRO5R9wSpYrUWHNQ4=", + "dev": true + }, + "request": { + "version": "2.81.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", + "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", + "dependencies": { + "uuid": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" + } + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", + "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=" + }, + "resolve-from": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-2.0.0.tgz", + "integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c=", + "dev": true + }, + "resumer": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=" + }, + "right-align": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", + "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", + "dev": true, + "optional": true + }, + "rimraf": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=" + }, + "ripemd160": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=" + }, + "rlp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.0.0.tgz", + "integrity": "sha1-nbOE/0uJqPYVY9kjldhiWxjzr7A=" + }, + "safe-buffer": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + }, + "scrypt": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", + "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=" + }, + "scrypt.js": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", + "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=" + }, + "scryptsy": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", + "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=" + }, + "secp256k1": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.3.0.tgz", + "integrity": "sha512-CbrQoeGG5V0kQ1ohEMGI+J7oKerapLTpivLICBaXR0R4HyQcN3kM9itLsV5fdpV1UR1bD14tOkJ1xughmlDIiQ==" + }, + "seedrandom": { + "version": "2.4.3", + "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz", + "integrity": "sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw=", + "dev": true + }, + "semaphore": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.0.5.tgz", + "integrity": "sha1-tJJXbmavGT25XWXiXsU/Xxl5jWA=" + }, + "semver": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "sha.js": { + "version": "2.4.8", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", + "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=" + }, + "sha3": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-1.2.0.tgz", + "integrity": "sha1-aYnxtwpJhwWHajc+LGKs6WqpOZo=" + }, + "shelljs": { + "version": "0.7.8", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", + "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", + "dev": true + }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=", + "dev": true + }, + "signal-exit": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + }, + "simple-get": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", + "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=" + }, + "slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + }, + "sntp": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" + }, + "sol-explore": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/sol-explore/-/sol-explore-1.6.2.tgz", + "integrity": "sha1-Q66MQZ/TrAVqBfip0fsQIs1B7MI=", + "dev": true + }, + "solc": { + "version": "0.4.14", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.14.tgz", + "integrity": "sha1-phS7zxWYOePwIh0cQbudq53Hg/4=" + }, + "solidity-coverage": { + "version": "0.1.10", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.1.10.tgz", + "integrity": "sha512-DhYv8gVneDaDA1Nk//OXxW8Jh3RT7wYGfqEc8I8lbUPPGbBrUfgBMv999iPt2BeK91jhVUvGW987HWS+sZGvGg==", + "dev": true + }, + "solidity-parser": { + "version": "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0", + "dev": true + }, + "source-map": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + }, + "source-map-support": { + "version": "0.4.15", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", + "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=" + }, + "spdx-correct": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=" + }, + "spdx-expression-parse": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + }, + "spdx-license-ids": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + }, + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", + "dev": true + }, + "sshpk": { + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", + "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + } + } + }, + "stream-to-pull-stream": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.2.tgz", + "integrity": "sha1-dXYJrhzr0zx0MtSvvjH/eGULnd4=", + "dev": true, + "dependencies": { + "looper": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", + "integrity": "sha1-LvpUw7HLq6m5Su4uWRSwvlf7t0k=", + "dev": true + } + } + }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" + }, + "string.prototype.trim": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", + "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=" + }, + "stringstream": { + "version": "0.0.5", + "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=" + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=" + }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + }, + "supports-color": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + }, + "tape": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.7.0.tgz", + "integrity": "sha512-ePzu2KfZYVtq0v+KKGxBJ9HJWYZ4MaQWeGabD+KpVdMKRen3NJPf6EiwA5BxfMkhQPGtCwnOFWelcB39bhOUng==" + }, + "tar-fs": { + "version": "1.15.3", + "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.15.3.tgz", + "integrity": "sha1-7M+TXpQUk9gVECjmNuUc5MPKfyA=" + }, + "tar-stream": { + "version": "1.5.4", + "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", + "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=" + }, + "temp": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", + "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", + "dev": true, + "dependencies": { + "rimraf": { + "version": "2.2.8", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", + "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", + "dev": true + } + } + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + }, + "tmp": { + "version": "0.0.31", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", + "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "dev": true + }, + "to-fast-properties": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + }, + "to-iso-string": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", + "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=", + "dev": true + }, + "tough-cookie": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=" + }, + "trim": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + }, + "trim-right": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + }, + "truffle": { + "version": "3.4.6", + "resolved": "https://registry.npmjs.org/truffle/-/truffle-3.4.6.tgz", + "integrity": "sha1-cqBxVCM7TRGY7LmRpfq0aKDFRnE=", + "dev": true, + "dependencies": { + "commander": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", + "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", + "dev": true + }, + "diff": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.2.0.tgz", + "integrity": "sha1-yc45Okt8vQsFinJck98pkCeGj/k=", + "dev": true + }, + "glob": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", + "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", + "dev": true + }, + "mocha": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.0.tgz", + "integrity": "sha512-pIU2PJjrPYvYRqVpjXzj76qltO9uBYI7woYAMoxbSefsa+vqAfptjoeevd6bUgwD0mPIO+hv9f7ltvsNreL2PA==", + "dev": true + }, + "solc": { + "version": "0.4.13", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.13.tgz", + "integrity": "sha1-qly9zOPmrjwZDSD1/fi8iAcC7HU=", + "dev": true + }, + "supports-color": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", + "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", + "dev": true + } + } + }, + "truffle-hdwallet-provider": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/truffle-hdwallet-provider/-/truffle-hdwallet-provider-0.0.3.tgz", + "integrity": "sha1-Dh3gIQS3PTh14c9wkzBbTqii2EM=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" + }, + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "optional": true + }, + "type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dev": true + }, + "type-detect": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.3.tgz", + "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=", + "dev": true + }, + "typedarray-to-buffer": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", + "integrity": "sha1-m7i6DoQfs/TPH+fCRenz+opf6Zw=", + "dev": true + }, + "typewise": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", + "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE=", + "dev": true + }, + "typewise-core": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", + "integrity": "sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU=", + "dev": true + }, + "typewiselite": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/typewiselite/-/typewiselite-1.0.0.tgz", + "integrity": "sha1-yIgvobsQksBgBal/NO9chQjjZk4=", + "dev": true + }, + "uglify-js": { + "version": "2.8.29", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", + "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", + "dev": true, + "optional": true, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true, + "optional": true + }, + "cliui": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", + "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", + "dev": true, + "optional": true + }, + "window-size": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", + "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", + "dev": true, + "optional": true + }, + "wordwrap": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", + "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", + "dev": true, + "optional": true + }, + "yargs": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", + "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", + "dev": true, + "optional": true + } + } + }, + "uglify-to-browserify": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz", + "integrity": "sha1-bgkk1r2mta/jSeOabWMoUKD4grc=", + "dev": true, + "optional": true + }, + "unorm": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", + "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA=" + }, + "unzip-response": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", + "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=" + }, + "utf8": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz", + "integrity": "sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY=" + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" + }, + "validate-npm-package-license": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=" + }, + "verror": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", + "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=" + }, + "web3": { + "version": "0.18.4", + "resolved": "https://registry.npmjs.org/web3/-/web3-0.18.4.tgz", + "integrity": "sha1-gewXhBRUkfLqqJVbMcBgSeB8Xn0=" + }, + "web3-provider-engine": { + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-8.6.1.tgz", + "integrity": "sha1-TYbhnjDKr5ffNRUR7A9gE25bMOs=", + "dependencies": { + "bignumber.js": { + "version": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9" + }, + "ethereumjs-util": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", + "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=" + }, + "web3": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-0.16.0.tgz", + "integrity": "sha1-pFVBdc1GKUMDWx8dOUMvdBxrYBk=" + } + } + }, + "whatwg-fetch": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", + "dev": true + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "wide-align": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==" + }, + "window-size": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", + "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=" + }, + "wordwrap": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", + "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", + "dev": true + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=" + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "xhr": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", + "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=" + }, + "xhr2": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", + "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" + }, + "xmlhttprequest": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + }, + "y18n": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + }, + "yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=" + }, + "yargs-parser": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", + "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=" + } + } +} diff --git a/test/BurnableToken.js b/test/BurnableToken.js new file mode 100644 index 000000000..c5776aaa8 --- /dev/null +++ b/test/BurnableToken.js @@ -0,0 +1,39 @@ +'use strict' + +const EVMThrow = require('./helpers/EVMThrow.js') +const BurnableTokenMock = artifacts.require("./helpers/BurnableTokenMock.sol") +const BigNumber = web3.BigNumber + +require('chai') + .use(require('chai-as-promised')) + .use(require('chai-bignumber')(BigNumber)) + .should() + +const expect = require('chai').expect + +contract('BurnableToken', function (accounts) { + let token + let expectedTokenSupply = new BigNumber(999) + + beforeEach(async function () { + token = await BurnableTokenMock.new(accounts[0], 1000) + }) + + it('owner should be able to burn tokens', async function () { + const { logs } = await token.burn(1, { from: accounts[0] }) + + const balance = await token.balanceOf(accounts[0]) + balance.should.be.bignumber.equal(expectedTokenSupply) + + const totalSupply = await token.totalSupply() + totalSupply.should.be.bignumber.equal(expectedTokenSupply) + + const event = logs.find(e => e.event === 'Burn') + expect(event).to.exist + }) + + it('cannot burn more tokens than your balance', async function () { + await token.burn(2000, { from: accounts[0] }) + .should.be.rejectedWith(EVMThrow) + }) +}) \ No newline at end of file diff --git a/test/helpers/BurnableTokenMock.sol b/test/helpers/BurnableTokenMock.sol new file mode 100644 index 000000000..a8bc38b9a --- /dev/null +++ b/test/helpers/BurnableTokenMock.sol @@ -0,0 +1,12 @@ +pragma solidity ^0.4.13; + +import '../../contracts/token/BurnableToken.sol'; + +contract BurnableTokenMock is BurnableToken { + + function BurnableTokenMock(address initialAccount, uint initialBalance) { + balances[initialAccount] = initialBalance; + totalSupply = initialBalance; + } + +} \ No newline at end of file From 4fe837704b7a2eb6167e5f3a1a720eaf8fd02451 Mon Sep 17 00:00:00 2001 From: SylTi Date: Wed, 2 Aug 2017 01:44:18 +0200 Subject: [PATCH 095/160] Add Transfer event when token is minted to be fully ERC20 compliant & tests --- contracts/token/MintableToken.sol | 1 + test/MintableToken.js | 9 +++++++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/contracts/token/MintableToken.sol b/contracts/token/MintableToken.sol index e2854d56a..92f591012 100644 --- a/contracts/token/MintableToken.sol +++ b/contracts/token/MintableToken.sol @@ -35,6 +35,7 @@ contract MintableToken is StandardToken, Ownable { totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); Mint(_to, _amount); + Transfer(0x0, _to, _amount); return true; } diff --git a/test/MintableToken.js b/test/MintableToken.js index 4f574d51d..a3ae8968e 100644 --- a/test/MintableToken.js +++ b/test/MintableToken.js @@ -23,8 +23,13 @@ contract('Mintable', function(accounts) { }); it('should mint a given amount of tokens to a given address', async function() { - await token.mint(accounts[0], 100); - + const result = await token.mint(accounts[0], 100); + assert.equal(result.logs[0].event, 'Mint'); + assert.equal(result.logs[0].args.to.valueOf(), accounts[0]); + assert.equal(result.logs[0].args.amount.valueOf(), 100); + assert.equal(result.logs[1].event, 'Transfer'); + assert.equal(result.logs[1].args.from.valueOf(), 0x0); + let balance0 = await token.balanceOf(accounts[0]); assert(balance0, 100); From 77dfcb6e23b452031e478f8f3794a9dbe90b7c64 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sun, 6 Aug 2017 16:40:19 +0200 Subject: [PATCH 096/160] Change crowdsales to use timestamps instead of block numbers #350 --- contracts/crowdsale/Crowdsale.sol | 23 +++++++++++------------ test/Crowdsale.js | 26 +++++++++++++++++--------- 2 files changed, 28 insertions(+), 21 deletions(-) diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 4c1e526ff..e4cc4eb07 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -6,7 +6,7 @@ import '../math/SafeMath.sol'; /** * @title Crowdsale * @dev Crowdsale is a base contract for managing a token crowdsale. - * Crowdsales have a start and end block, where investors can make + * Crowdsales have a start and end timestamps, where investors can make * token purchases and the crowdsale will assign them tokens based * on a token per ETH rate. Funds collected are forwarded to a wallet * as they arrive. @@ -17,9 +17,9 @@ contract Crowdsale { // The token being sold MintableToken public token; - // start and end block where investments are allowed (both inclusive) - uint256 public startBlock; - uint256 public endBlock; + // start and end timestamps where investments are allowed (both inclusive) + uint256 public startTime; + uint256 public endTime; // address where funds are collected address public wallet; @@ -40,15 +40,15 @@ contract Crowdsale { event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); - function Crowdsale(uint256 _startBlock, uint256 _endBlock, uint256 _rate, address _wallet) { - require(_startBlock >= block.number); - require(_endBlock >= _startBlock); + function Crowdsale(uint256 _startTime, uint256 _endTime, uint256 _rate, address _wallet) { + require(_startTime >= now); + require(_endTime >= _startTime); require(_rate > 0); require(_wallet != 0x0); token = createTokenContract(); - startBlock = _startBlock; - endBlock = _endBlock; + startTime = _startTime; + endTime = _endTime; rate = _rate; wallet = _wallet; } @@ -92,15 +92,14 @@ contract Crowdsale { // @return true if the transaction can buy tokens function validPurchase() internal constant returns (bool) { - uint256 current = block.number; - bool withinPeriod = current >= startBlock && current <= endBlock; + bool withinPeriod = now >= startTime && now <= endTime; bool nonZeroPurchase = msg.value != 0; return withinPeriod && nonZeroPurchase; } // @return true if crowdsale event has ended function hasEnded() public constant returns (bool) { - return block.number > endBlock; + return now > endTime; } diff --git a/test/Crowdsale.js b/test/Crowdsale.js index 5160fea42..698592690 100644 --- a/test/Crowdsale.js +++ b/test/Crowdsale.js @@ -1,5 +1,8 @@ +import moment from 'moment' import ether from './helpers/ether' import advanceToBlock from './helpers/advanceToBlock' +import increaseTime from './helpers/increaseTime' +import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' const BigNumber = web3.BigNumber @@ -19,11 +22,16 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { const expectedTokenAmount = rate.mul(value) - beforeEach(async function () { - this.startBlock = web3.eth.blockNumber + 10 - this.endBlock = web3.eth.blockNumber + 20 + before(async function() { + //Advance to the next block to correctly read time in the solidity "now" function interpreted by testrpc + await advanceToBlock(web3.eth.getBlock('latest').number + 1) + }) - this.crowdsale = await Crowdsale.new(this.startBlock, this.endBlock, rate, wallet) + beforeEach(async function () { + this.startTime = latestTime().unix() + moment.duration(1, 'week').asSeconds(); + this.endTime = latestTime().unix() + moment.duration(2, 'week').asSeconds(); + + this.crowdsale = await Crowdsale.new(this.startTime, this.endTime, rate, wallet) this.token = MintableToken.at(await this.crowdsale.token()) }) @@ -36,7 +44,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { it('should be ended only after end', async function () { let ended = await this.crowdsale.hasEnded() ended.should.equal(false) - await advanceToBlock(this.endBlock + 1) + await increaseTime(moment.duration(2.1, 'week')) ended = await this.crowdsale.hasEnded() ended.should.equal(true) }) @@ -49,13 +57,13 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { }) it('should accept payments after start', async function () { - await advanceToBlock(this.startBlock - 1) + await increaseTime(moment.duration(1, 'week')) await this.crowdsale.send(value).should.be.fulfilled await this.crowdsale.buyTokens(investor, {value: value, from: purchaser}).should.be.fulfilled }) it('should reject payments after end', async function () { - await advanceToBlock(this.endBlock) + await increaseTime(moment.duration(2.1, 'week')) await this.crowdsale.send(value).should.be.rejectedWith(EVMThrow) await this.crowdsale.buyTokens(investor, {value: value, from: purchaser}).should.be.rejectedWith(EVMThrow) }) @@ -65,7 +73,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { describe('high-level purchase', function () { beforeEach(async function() { - await advanceToBlock(this.startBlock) + await increaseTime(moment.duration(1, 'week')) }) it('should log purchase', async function () { @@ -104,7 +112,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { describe('low-level purchase', function () { beforeEach(async function() { - await advanceToBlock(this.startBlock) + await increaseTime(moment.duration(1, 'week')) }) it('should log purchase', async function () { From 2b5192b9ce1f56a21ddde643af0f9661ee7ef3d3 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sun, 6 Aug 2017 16:41:43 +0200 Subject: [PATCH 097/160] Change crowdsales to use timestamps instead of block numbers #350 update derived crowdsales --- test/CappedCrowdsale.js | 34 ++++++++++++-------- test/FinalizableCrowdsale.js | 26 +++++++++------ test/RefundableCrowdsale.js | 39 +++++++++++++---------- test/helpers/CappedCrowdsaleImpl.sol | 6 ++-- test/helpers/FinalizableCrowdsaleImpl.sol | 6 ++-- test/helpers/RefundableCrowdsaleImpl.sol | 6 ++-- 6 files changed, 70 insertions(+), 47 deletions(-) diff --git a/test/CappedCrowdsale.js b/test/CappedCrowdsale.js index 753da5c18..96fcd0c89 100644 --- a/test/CappedCrowdsale.js +++ b/test/CappedCrowdsale.js @@ -1,5 +1,8 @@ +import moment from 'moment' import ether from './helpers/ether' import advanceToBlock from './helpers/advanceToBlock' +import increaseTime from './helpers/increaseTime' +import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' const BigNumber = web3.BigNumber @@ -19,28 +22,33 @@ contract('CappedCrowdsale', function ([_, wallet]) { const cap = ether(300) const lessThanCap = ether(60) - describe('creating a valid crowdsale', function () { - - it('should fail with zero cap', async function () { - await CappedCrowdsale.new(this.startBlock, this.endBlock, rate, wallet, 0).should.be.rejectedWith(EVMThrow); - }) - - }); - + before(async function() { + //Advance to the next block to correctly read time in the solidity "now" function interpreted by testrpc + await advanceToBlock(web3.eth.getBlock('latest').number + 1) + }) beforeEach(async function () { - this.startBlock = web3.eth.blockNumber + 10 - this.endBlock = web3.eth.blockNumber + 20 + this.startTime = latestTime().unix() + moment.duration(1, 'week').asSeconds(); + this.endTime = latestTime().unix() + moment.duration(2, 'week').asSeconds(); - this.crowdsale = await CappedCrowdsale.new(this.startBlock, this.endBlock, rate, wallet, cap) + + this.crowdsale = await CappedCrowdsale.new(this.startTime, this.endTime, rate, wallet, cap) this.token = MintableToken.at(await this.crowdsale.token()) }) + describe('creating a valid crowdsale', function () { + + it('should fail with zero cap', async function () { + await CappedCrowdsale.new(this.startTime, this.endTime, rate, wallet, 0).should.be.rejectedWith(EVMThrow); + }) + + }); + describe('accepting payments', function () { beforeEach(async function () { - await advanceToBlock(this.startBlock - 1) + await increaseTime(moment.duration(1, 'week')) }) it('should accept payments within cap', async function () { @@ -62,7 +70,7 @@ contract('CappedCrowdsale', function ([_, wallet]) { describe('ending', function () { beforeEach(async function () { - await advanceToBlock(this.startBlock - 1) + await increaseTime(moment.duration(1, 'week')) }) it('should not be ended if under cap', async function () { diff --git a/test/FinalizableCrowdsale.js b/test/FinalizableCrowdsale.js index 53224bb76..5675c7557 100644 --- a/test/FinalizableCrowdsale.js +++ b/test/FinalizableCrowdsale.js @@ -1,4 +1,7 @@ +import moment from 'moment' import advanceToBlock from './helpers/advanceToBlock' +import increaseTime from './helpers/increaseTime' +import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' const BigNumber = web3.BigNumber @@ -15,11 +18,16 @@ contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { const rate = new BigNumber(1000) - beforeEach(async function () { - this.startBlock = web3.eth.blockNumber + 10 - this.endBlock = web3.eth.blockNumber + 20 + before(async function() { + //Advance to the next block to correctly read time in the solidity "now" function interpreted by testrpc + await advanceToBlock(web3.eth.getBlock('latest').number + 1) + }) - this.crowdsale = await FinalizableCrowdsale.new(this.startBlock, this.endBlock, rate, wallet, {from: owner}) + beforeEach(async function () { + this.startTime = latestTime().unix() + moment.duration(1, 'week').asSeconds(); + this.endTime = latestTime().unix() + moment.duration(2, 'week').asSeconds(); + + this.crowdsale = await FinalizableCrowdsale.new(this.startTime, this.endTime, rate, wallet, {from: owner}) this.token = MintableToken.at(await this.crowdsale.token()) }) @@ -29,30 +37,30 @@ contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { }) it('cannot be finalized by third party after ending', async function () { - await advanceToBlock(this.endBlock) + await increaseTime(moment.duration(2.1, 'week')) await this.crowdsale.finalize({from: thirdparty}).should.be.rejectedWith(EVMThrow) }) it('can be finalized by owner after ending', async function () { - await advanceToBlock(this.endBlock) + await increaseTime(moment.duration(2.1, 'week')) await this.crowdsale.finalize({from: owner}).should.be.fulfilled }) it('cannot be finalized twice', async function () { - await advanceToBlock(this.endBlock + 1) + await increaseTime(moment.duration(2.1, 'week')) await this.crowdsale.finalize({from: owner}) await this.crowdsale.finalize({from: owner}).should.be.rejectedWith(EVMThrow) }) it('logs finalized', async function () { - await advanceToBlock(this.endBlock) + await increaseTime(moment.duration(2.1, 'week')) const {logs} = await this.crowdsale.finalize({from: owner}) const event = logs.find(e => e.event === 'Finalized') should.exist(event) }) it('finishes minting of token', async function () { - await advanceToBlock(this.endBlock) + await increaseTime(moment.duration(2.1, 'week')) await this.crowdsale.finalize({from: owner}) const finished = await this.token.mintingFinished() finished.should.equal(true) diff --git a/test/RefundableCrowdsale.js b/test/RefundableCrowdsale.js index f1d6fda68..518f92047 100644 --- a/test/RefundableCrowdsale.js +++ b/test/RefundableCrowdsale.js @@ -1,5 +1,8 @@ +import moment from 'moment' import ether from './helpers/ether' import advanceToBlock from './helpers/advanceToBlock' +import increaseTime from './helpers/increaseTime' +import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' const BigNumber = web3.BigNumber @@ -17,39 +20,43 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { const goal = ether(800) const lessThanGoal = ether(750) + before(async function() { + //Advance to the next block to correctly read time in the solidity "now" function interpreted by testrpc + await advanceToBlock(web3.eth.getBlock('latest').number + 1) + }) + + beforeEach(async function () { + this.startTime = latestTime().unix() + moment.duration(1, 'week').asSeconds(); + this.endTime = latestTime().unix() + moment.duration(2, 'week').asSeconds(); + + this.crowdsale = await RefundableCrowdsale.new(this.startTime, this.endTime, rate, wallet, goal, {from: owner}) + }) + describe('creating a valid crowdsale', function () { it('should fail with zero goal', async function () { - await RefundableCrowdsale.new(this.startBlock, this.endBlock, rate, wallet, 0, {from: owner}).should.be.rejectedWith(EVMThrow); + await RefundableCrowdsale.new(this.startTime, this.endTime, rate, wallet, 0, {from: owner}).should.be.rejectedWith(EVMThrow); }) }); - - beforeEach(async function () { - this.startBlock = web3.eth.blockNumber + 10 - this.endBlock = web3.eth.blockNumber + 20 - - this.crowdsale = await RefundableCrowdsale.new(this.startBlock, this.endBlock, rate, wallet, goal, {from: owner}) - }) - it('should deny refunds before end', async function () { await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) - await advanceToBlock(this.endBlock - 1) + await increaseTime(moment.duration(2, 'week')) await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) }) it('should deny refunds after end if goal was reached', async function () { - await advanceToBlock(this.startBlock - 1) + await increaseTime(moment.duration(1, 'week')) await this.crowdsale.sendTransaction({value: goal, from: investor}) - await advanceToBlock(this.endBlock) + await increaseTime(moment.duration(1.1, 'week')) await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) }) it('should allow refunds after end if goal was not reached', async function () { - await advanceToBlock(this.startBlock - 1) + await increaseTime(moment.duration(1, 'week')) await this.crowdsale.sendTransaction({value: lessThanGoal, from: investor}) - await advanceToBlock(this.endBlock) + await increaseTime(moment.duration(1.1, 'week')) await this.crowdsale.finalize({from: owner}) @@ -62,9 +69,9 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { }) it('should forward funds to wallet after end if goal was reached', async function () { - await advanceToBlock(this.startBlock - 1) + await increaseTime(moment.duration(1, 'week')) await this.crowdsale.sendTransaction({value: goal, from: investor}) - await advanceToBlock(this.endBlock) + await increaseTime(moment.duration(1.1, 'week')) const pre = web3.eth.getBalance(wallet) await this.crowdsale.finalize({from: owner}) diff --git a/test/helpers/CappedCrowdsaleImpl.sol b/test/helpers/CappedCrowdsaleImpl.sol index 6a255dca3..1a9497498 100644 --- a/test/helpers/CappedCrowdsaleImpl.sol +++ b/test/helpers/CappedCrowdsaleImpl.sol @@ -7,13 +7,13 @@ import '../../contracts/crowdsale/CappedCrowdsale.sol'; contract CappedCrowdsaleImpl is CappedCrowdsale { function CappedCrowdsaleImpl ( - uint256 _startBlock, - uint256 _endBlock, + uint256 _startTime, + uint256 _endTime, uint256 _rate, address _wallet, uint256 _cap ) - Crowdsale(_startBlock, _endBlock, _rate, _wallet) + Crowdsale(_startTime, _endTime, _rate, _wallet) CappedCrowdsale(_cap) { } diff --git a/test/helpers/FinalizableCrowdsaleImpl.sol b/test/helpers/FinalizableCrowdsaleImpl.sol index b35b633a9..cc6d31c09 100644 --- a/test/helpers/FinalizableCrowdsaleImpl.sol +++ b/test/helpers/FinalizableCrowdsaleImpl.sol @@ -7,12 +7,12 @@ import '../../contracts/crowdsale/FinalizableCrowdsale.sol'; contract FinalizableCrowdsaleImpl is FinalizableCrowdsale { function FinalizableCrowdsaleImpl ( - uint256 _startBlock, - uint256 _endBlock, + uint256 _startTime, + uint256 _endTime, uint256 _rate, address _wallet ) - Crowdsale(_startBlock, _endBlock, _rate, _wallet) + Crowdsale(_startTime, _endTime, _rate, _wallet) FinalizableCrowdsale() { } diff --git a/test/helpers/RefundableCrowdsaleImpl.sol b/test/helpers/RefundableCrowdsaleImpl.sol index 5250f56f8..2db8257fc 100644 --- a/test/helpers/RefundableCrowdsaleImpl.sol +++ b/test/helpers/RefundableCrowdsaleImpl.sol @@ -7,13 +7,13 @@ import '../../contracts/crowdsale/RefundableCrowdsale.sol'; contract RefundableCrowdsaleImpl is RefundableCrowdsale { function RefundableCrowdsaleImpl ( - uint256 _startBlock, - uint256 _endBlock, + uint256 _startTime, + uint256 _endTime, uint256 _rate, address _wallet, uint256 _goal ) - Crowdsale(_startBlock, _endBlock, _rate, _wallet) + Crowdsale(_startTime, _endTime, _rate, _wallet) RefundableCrowdsale(_goal) { } From c6e055689b90853460e2ce4eb3cc4dbca07b5eec Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sun, 6 Aug 2017 16:42:16 +0200 Subject: [PATCH 098/160] Change crowdsales to use timestamps instead of block numbers #350 update example --- contracts/examples/SampleCrowdsale.sol | 4 +-- test/SampleCrowdsale.js | 34 +++++++++++++++++--------- 2 files changed, 24 insertions(+), 14 deletions(-) diff --git a/contracts/examples/SampleCrowdsale.sol b/contracts/examples/SampleCrowdsale.sol index 2fc95c610..554aa6be8 100644 --- a/contracts/examples/SampleCrowdsale.sol +++ b/contracts/examples/SampleCrowdsale.sol @@ -30,11 +30,11 @@ contract SampleCrowdsaleToken is MintableToken { */ contract SampleCrowdsale is CappedCrowdsale, RefundableCrowdsale { - function SampleCrowdsale(uint256 _startBlock, uint256 _endBlock, uint256 _rate, uint256 _goal, uint256 _cap, address _wallet) + function SampleCrowdsale(uint256 _startTime, uint256 _endTime, uint256 _rate, uint256 _goal, uint256 _cap, address _wallet) CappedCrowdsale(_cap) FinalizableCrowdsale() RefundableCrowdsale(_goal) - Crowdsale(_startBlock, _endBlock, _rate, _wallet) + Crowdsale(_startTime, _endTime, _rate, _wallet) { //As goal needs to be met for a successful crowdsale //the value needs to less or equal than a cap which is limit for accepted funds diff --git a/test/SampleCrowdsale.js b/test/SampleCrowdsale.js index a589194f7..b2669699a 100644 --- a/test/SampleCrowdsale.js +++ b/test/SampleCrowdsale.js @@ -1,5 +1,8 @@ +import moment from 'moment' import ether from './helpers/ether' import advanceToBlock from './helpers/advanceToBlock' +import increaseTime from './helpers/increaseTime' +import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' const BigNumber = web3.BigNumber; @@ -18,11 +21,17 @@ contract('Crowdsale', function ([owner, wallet, investor]) { const GOAL = ether(10); const CAP = ether(20); - beforeEach(async function () { - this.startBlock = web3.eth.blockNumber + 10; - this.endBlock = web3.eth.blockNumber + 20; + before(async function() { + //Advance to the next block to correctly read time in the solidity "now" function interpreted by testrpc + await advanceToBlock(web3.eth.getBlock('latest').number + 1) + }) - this.crowdsale = await SampleCrowdsale.new(this.startBlock, this.endBlock, RATE, GOAL, CAP, wallet); + beforeEach(async function () { + this.startTime = latestTime().unix() + moment.duration(1, 'week').asSeconds(); + this.endTime = latestTime().unix() + moment.duration(2, 'week').asSeconds(); + + + this.crowdsale = await SampleCrowdsale.new(this.startTime, this.endTime, RATE, GOAL, CAP, wallet); this.token = SampleCrowdsaleToken.at(await this.crowdsale.token()); }); @@ -31,8 +40,8 @@ contract('Crowdsale', function ([owner, wallet, investor]) { this.crowdsale.should.exist; this.token.should.exist; - (await this.crowdsale.startBlock()).should.be.bignumber.equal(this.startBlock); - (await this.crowdsale.endBlock()).should.be.bignumber.equal(this.endBlock); + (await this.crowdsale.startTime()).should.be.bignumber.equal(this.startTime); + (await this.crowdsale.endTime()).should.be.bignumber.equal(this.endTime); (await this.crowdsale.rate()).should.be.bignumber.equal(RATE); (await this.crowdsale.wallet()).should.be.equal(wallet); (await this.crowdsale.goal()).should.be.bignumber.equal(GOAL); @@ -48,7 +57,7 @@ contract('Crowdsale', function ([owner, wallet, investor]) { const investmentAmount = ether(1); const expectedTokenAmount = RATE.mul(investmentAmount); - await advanceToBlock(this.startBlock - 1); + await increaseTime(moment.duration(1, 'week')); await this.crowdsale.buyTokens(investor, {value: investmentAmount, from: investor}).should.be.fulfilled; (await this.token.balanceOf(investor)).should.be.bignumber.equal(expectedTokenAmount); @@ -56,22 +65,23 @@ contract('Crowdsale', function ([owner, wallet, investor]) { }); it('should reject payments after end', async function () { - await advanceToBlock(this.endBlock); + await increaseTime(moment.duration(2.1, 'week')); await this.crowdsale.send(ether(1)).should.be.rejectedWith(EVMThrow); await this.crowdsale.buyTokens(investor, {value: ether(1), from: investor}).should.be.rejectedWith(EVMThrow); }); it('should reject payments over cap', async function () { - await advanceToBlock(this.startBlock - 1); + await increaseTime(moment.duration(1, 'week')); await this.crowdsale.send(CAP); await this.crowdsale.send(1).should.be.rejectedWith(EVMThrow); }); it('should allow finalization and transfer funds to wallet if the goal is reached', async function () { - await advanceToBlock(this.endBlock - 1); + await increaseTime(moment.duration(1, 'week')); await this.crowdsale.send(GOAL); const beforeFinalization = web3.eth.getBalance(wallet); + await increaseTime(moment.duration(1.1, 'week')); await this.crowdsale.finalize({from: owner}); const afterFinalization = web3.eth.getBalance(wallet); @@ -81,9 +91,9 @@ contract('Crowdsale', function ([owner, wallet, investor]) { it('should allow refunds if the goal is not reached', async function () { const balanceBeforeInvestment = web3.eth.getBalance(investor); - await advanceToBlock(this.startBlock - 1); + await increaseTime(moment.duration(1, 'week')); await this.crowdsale.sendTransaction({value: ether(1), from: investor, gasPrice: 0}); - await advanceToBlock(this.endBlock); + await increaseTime(moment.duration(1.1, 'week')); await this.crowdsale.finalize({from: owner}); await this.crowdsale.claimRefund({from: investor, gasPrice: 0}).should.be.fulfilled; From 2261039d52fe0e433a041c377658bfaab132761b Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Mon, 7 Aug 2017 18:29:09 +0200 Subject: [PATCH 099/160] Simplify advanceBlock in tests --- test/CappedCrowdsale.js | 4 ++-- test/Crowdsale.js | 4 ++-- test/FinalizableCrowdsale.js | 4 ++-- test/RefundableCrowdsale.js | 4 ++-- test/SampleCrowdsale.js | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/test/CappedCrowdsale.js b/test/CappedCrowdsale.js index 96fcd0c89..65d4ac9bd 100644 --- a/test/CappedCrowdsale.js +++ b/test/CappedCrowdsale.js @@ -1,6 +1,6 @@ import moment from 'moment' import ether from './helpers/ether' -import advanceToBlock from './helpers/advanceToBlock' +import {advanceBlock} from './helpers/advanceToBlock' import increaseTime from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -24,7 +24,7 @@ contract('CappedCrowdsale', function ([_, wallet]) { before(async function() { //Advance to the next block to correctly read time in the solidity "now" function interpreted by testrpc - await advanceToBlock(web3.eth.getBlock('latest').number + 1) + await advanceBlock() }) beforeEach(async function () { diff --git a/test/Crowdsale.js b/test/Crowdsale.js index 698592690..4be913404 100644 --- a/test/Crowdsale.js +++ b/test/Crowdsale.js @@ -1,6 +1,6 @@ import moment from 'moment' import ether from './helpers/ether' -import advanceToBlock from './helpers/advanceToBlock' +import {advanceBlock} from './helpers/advanceToBlock' import increaseTime from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -24,7 +24,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { before(async function() { //Advance to the next block to correctly read time in the solidity "now" function interpreted by testrpc - await advanceToBlock(web3.eth.getBlock('latest').number + 1) + await advanceBlock() }) beforeEach(async function () { diff --git a/test/FinalizableCrowdsale.js b/test/FinalizableCrowdsale.js index 5675c7557..d92fe6608 100644 --- a/test/FinalizableCrowdsale.js +++ b/test/FinalizableCrowdsale.js @@ -1,5 +1,5 @@ import moment from 'moment' -import advanceToBlock from './helpers/advanceToBlock' +import {advanceBlock} from './helpers/advanceToBlock' import increaseTime from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -20,7 +20,7 @@ contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { before(async function() { //Advance to the next block to correctly read time in the solidity "now" function interpreted by testrpc - await advanceToBlock(web3.eth.getBlock('latest').number + 1) + await advanceBlock() }) beforeEach(async function () { diff --git a/test/RefundableCrowdsale.js b/test/RefundableCrowdsale.js index 518f92047..7423fd37f 100644 --- a/test/RefundableCrowdsale.js +++ b/test/RefundableCrowdsale.js @@ -1,6 +1,6 @@ import moment from 'moment' import ether from './helpers/ether' -import advanceToBlock from './helpers/advanceToBlock' +import {advanceBlock} from './helpers/advanceToBlock' import increaseTime from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -22,7 +22,7 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { before(async function() { //Advance to the next block to correctly read time in the solidity "now" function interpreted by testrpc - await advanceToBlock(web3.eth.getBlock('latest').number + 1) + await advanceBlock() }) beforeEach(async function () { diff --git a/test/SampleCrowdsale.js b/test/SampleCrowdsale.js index b2669699a..2e64111c9 100644 --- a/test/SampleCrowdsale.js +++ b/test/SampleCrowdsale.js @@ -1,6 +1,6 @@ import moment from 'moment' import ether from './helpers/ether' -import advanceToBlock from './helpers/advanceToBlock' +import {advanceBlock} from './helpers/advanceToBlock' import increaseTime from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -23,7 +23,7 @@ contract('Crowdsale', function ([owner, wallet, investor]) { before(async function() { //Advance to the next block to correctly read time in the solidity "now" function interpreted by testrpc - await advanceToBlock(web3.eth.getBlock('latest').number + 1) + await advanceBlock() }) beforeEach(async function () { From 7c883b6368419c39f316e78dda5043fe46987605 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Thu, 10 Aug 2017 13:13:49 +0200 Subject: [PATCH 100/160] Duration helper and eliminated hardcoded periods --- test/CappedCrowdsale.js | 13 ++++++++----- test/Crowdsale.js | 32 ++++++++++++++++++-------------- test/FinalizableCrowdsale.js | 20 ++++++++++++-------- test/RefundableCrowdsale.js | 24 ++++++++++++++---------- test/SampleCrowdsale.js | 24 ++++++++++++++---------- test/TokenTimelock.js | 8 ++++---- test/helpers/increaseTime.js | 12 +++++++++++- 7 files changed, 81 insertions(+), 52 deletions(-) diff --git a/test/CappedCrowdsale.js b/test/CappedCrowdsale.js index 65d4ac9bd..bcc4e4a78 100644 --- a/test/CappedCrowdsale.js +++ b/test/CappedCrowdsale.js @@ -1,7 +1,7 @@ -import moment from 'moment' import ether from './helpers/ether' import {advanceBlock} from './helpers/advanceToBlock' import increaseTime from './helpers/increaseTime' +import {duration, increaseTimeHandicap} from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -28,8 +28,11 @@ contract('CappedCrowdsale', function ([_, wallet]) { }) beforeEach(async function () { - this.startTime = latestTime().unix() + moment.duration(1, 'week').asSeconds(); - this.endTime = latestTime().unix() + moment.duration(2, 'week').asSeconds(); + this.timeToStart = duration.weeks(1); + this.crowdsalePeriod = duration.weeks(1); + + this.startTime = latestTime().unix() + this.timeToStart; + this.endTime = this.startTime + this.crowdsalePeriod; this.crowdsale = await CappedCrowdsale.new(this.startTime, this.endTime, rate, wallet, cap) @@ -48,7 +51,7 @@ contract('CappedCrowdsale', function ([_, wallet]) { describe('accepting payments', function () { beforeEach(async function () { - await increaseTime(moment.duration(1, 'week')) + await increaseTime(this.timeToStart) }) it('should accept payments within cap', async function () { @@ -70,7 +73,7 @@ contract('CappedCrowdsale', function ([_, wallet]) { describe('ending', function () { beforeEach(async function () { - await increaseTime(moment.duration(1, 'week')) + await increaseTime(this.timeToStart) }) it('should not be ended if under cap', async function () { diff --git a/test/Crowdsale.js b/test/Crowdsale.js index 4be913404..20c1b365d 100644 --- a/test/Crowdsale.js +++ b/test/Crowdsale.js @@ -1,7 +1,7 @@ -import moment from 'moment' import ether from './helpers/ether' import {advanceBlock} from './helpers/advanceToBlock' import increaseTime from './helpers/increaseTime' +import {duration, increaseTimeHandicap} from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -28,8 +28,12 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { }) beforeEach(async function () { - this.startTime = latestTime().unix() + moment.duration(1, 'week').asSeconds(); - this.endTime = latestTime().unix() + moment.duration(2, 'week').asSeconds(); + this.timeToStart = duration.weeks(1); + this.crowdsalePeriod = duration.weeks(1); + this.timeToEnd = this.timeToStart + this.crowdsalePeriod + increaseTimeHandicap; + + this.startTime = latestTime().unix() + this.timeToStart; + this.endTime = this.startTime + this.crowdsalePeriod; this.crowdsale = await Crowdsale.new(this.startTime, this.endTime, rate, wallet) @@ -44,7 +48,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { it('should be ended only after end', async function () { let ended = await this.crowdsale.hasEnded() ended.should.equal(false) - await increaseTime(moment.duration(2.1, 'week')) + await increaseTime(this.timeToEnd) ended = await this.crowdsale.hasEnded() ended.should.equal(true) }) @@ -57,13 +61,13 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { }) it('should accept payments after start', async function () { - await increaseTime(moment.duration(1, 'week')) + await increaseTime(this.timeToStart) await this.crowdsale.send(value).should.be.fulfilled await this.crowdsale.buyTokens(investor, {value: value, from: purchaser}).should.be.fulfilled }) it('should reject payments after end', async function () { - await increaseTime(moment.duration(2.1, 'week')) + await increaseTime(this.timeToEnd) await this.crowdsale.send(value).should.be.rejectedWith(EVMThrow) await this.crowdsale.buyTokens(investor, {value: value, from: purchaser}).should.be.rejectedWith(EVMThrow) }) @@ -73,7 +77,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { describe('high-level purchase', function () { beforeEach(async function() { - await increaseTime(moment.duration(1, 'week')) + await increaseTime(this.timeToStart) }) it('should log purchase', async function () { @@ -112,33 +116,33 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { describe('low-level purchase', function () { beforeEach(async function() { - await increaseTime(moment.duration(1, 'week')) + await increaseTime(this.timeToStart) }) - + it('should log purchase', async function () { const {logs} = await this.crowdsale.buyTokens(investor, {value: value, from: purchaser}) - + const event = logs.find(e => e.event === 'TokenPurchase') - + should.exist(event) event.args.purchaser.should.equal(purchaser) event.args.beneficiary.should.equal(investor) event.args.value.should.be.bignumber.equal(value) event.args.amount.should.be.bignumber.equal(expectedTokenAmount) }) - + it('should increase totalSupply', async function () { await this.crowdsale.buyTokens(investor, {value, from: purchaser}) const totalSupply = await this.token.totalSupply() totalSupply.should.be.bignumber.equal(expectedTokenAmount) }) - + it('should assign tokens to beneficiary', async function () { await this.crowdsale.buyTokens(investor, {value, from: purchaser}) const balance = await this.token.balanceOf(investor) balance.should.be.bignumber.equal(expectedTokenAmount) }) - + it('should forward funds to wallet', async function () { const pre = web3.eth.getBalance(wallet) await this.crowdsale.buyTokens(investor, {value, from: purchaser}) diff --git a/test/FinalizableCrowdsale.js b/test/FinalizableCrowdsale.js index d92fe6608..af14708ea 100644 --- a/test/FinalizableCrowdsale.js +++ b/test/FinalizableCrowdsale.js @@ -1,6 +1,6 @@ -import moment from 'moment' import {advanceBlock} from './helpers/advanceToBlock' import increaseTime from './helpers/increaseTime' +import {duration, increaseTimeHandicap} from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -24,8 +24,12 @@ contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { }) beforeEach(async function () { - this.startTime = latestTime().unix() + moment.duration(1, 'week').asSeconds(); - this.endTime = latestTime().unix() + moment.duration(2, 'week').asSeconds(); + this.timeToStart = duration.weeks(1); + this.crowdsalePeriod = duration.weeks(1); + this.timeToEnd = this.timeToStart + this.crowdsalePeriod + increaseTimeHandicap; + + this.startTime = latestTime().unix() + this.timeToStart; + this.endTime = this.startTime + this.crowdsalePeriod; this.crowdsale = await FinalizableCrowdsale.new(this.startTime, this.endTime, rate, wallet, {from: owner}) @@ -37,30 +41,30 @@ contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { }) it('cannot be finalized by third party after ending', async function () { - await increaseTime(moment.duration(2.1, 'week')) + await increaseTime(this.timeToEnd) await this.crowdsale.finalize({from: thirdparty}).should.be.rejectedWith(EVMThrow) }) it('can be finalized by owner after ending', async function () { - await increaseTime(moment.duration(2.1, 'week')) + await increaseTime(this.timeToEnd) await this.crowdsale.finalize({from: owner}).should.be.fulfilled }) it('cannot be finalized twice', async function () { - await increaseTime(moment.duration(2.1, 'week')) + await increaseTime(this.timeToEnd) await this.crowdsale.finalize({from: owner}) await this.crowdsale.finalize({from: owner}).should.be.rejectedWith(EVMThrow) }) it('logs finalized', async function () { - await increaseTime(moment.duration(2.1, 'week')) + await increaseTime(this.timeToEnd) const {logs} = await this.crowdsale.finalize({from: owner}) const event = logs.find(e => e.event === 'Finalized') should.exist(event) }) it('finishes minting of token', async function () { - await increaseTime(moment.duration(2.1, 'week')) + await increaseTime(this.timeToEnd) await this.crowdsale.finalize({from: owner}) const finished = await this.token.mintingFinished() finished.should.equal(true) diff --git a/test/RefundableCrowdsale.js b/test/RefundableCrowdsale.js index 7423fd37f..6f0fc39a7 100644 --- a/test/RefundableCrowdsale.js +++ b/test/RefundableCrowdsale.js @@ -1,7 +1,7 @@ -import moment from 'moment' import ether from './helpers/ether' import {advanceBlock} from './helpers/advanceToBlock' import increaseTime from './helpers/increaseTime' +import {duration, increaseTimeHandicap} from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -26,8 +26,12 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { }) beforeEach(async function () { - this.startTime = latestTime().unix() + moment.duration(1, 'week').asSeconds(); - this.endTime = latestTime().unix() + moment.duration(2, 'week').asSeconds(); + this.timeToStart = duration.weeks(1); + this.crowdsalePeriod = duration.weeks(1); + this.timeToEnd = this.timeToStart + this.crowdsalePeriod + increaseTimeHandicap; + + this.startTime = latestTime().unix() + this.timeToStart; + this.endTime = this.startTime + this.crowdsalePeriod; this.crowdsale = await RefundableCrowdsale.new(this.startTime, this.endTime, rate, wallet, goal, {from: owner}) }) @@ -42,21 +46,21 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { it('should deny refunds before end', async function () { await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) - await increaseTime(moment.duration(2, 'week')) + await increaseTime(this.timeToStart) await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) }) it('should deny refunds after end if goal was reached', async function () { - await increaseTime(moment.duration(1, 'week')) + await increaseTime(this.timeToStart) await this.crowdsale.sendTransaction({value: goal, from: investor}) - await increaseTime(moment.duration(1.1, 'week')) + await increaseTime(this.crowdsalePeriod + increaseTimeHandicap) await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) }) it('should allow refunds after end if goal was not reached', async function () { - await increaseTime(moment.duration(1, 'week')) + await increaseTime(this.timeToStart) await this.crowdsale.sendTransaction({value: lessThanGoal, from: investor}) - await increaseTime(moment.duration(1.1, 'week')) + await increaseTime(this.crowdsalePeriod + increaseTimeHandicap) await this.crowdsale.finalize({from: owner}) @@ -69,9 +73,9 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { }) it('should forward funds to wallet after end if goal was reached', async function () { - await increaseTime(moment.duration(1, 'week')) + await increaseTime(this.timeToStart) await this.crowdsale.sendTransaction({value: goal, from: investor}) - await increaseTime(moment.duration(1.1, 'week')) + await increaseTime(this.crowdsalePeriod + increaseTimeHandicap) const pre = web3.eth.getBalance(wallet) await this.crowdsale.finalize({from: owner}) diff --git a/test/SampleCrowdsale.js b/test/SampleCrowdsale.js index 2e64111c9..dbcf2ba56 100644 --- a/test/SampleCrowdsale.js +++ b/test/SampleCrowdsale.js @@ -1,7 +1,7 @@ -import moment from 'moment' import ether from './helpers/ether' import {advanceBlock} from './helpers/advanceToBlock' import increaseTime from './helpers/increaseTime' +import {duration, increaseTimeHandicap} from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -27,8 +27,12 @@ contract('Crowdsale', function ([owner, wallet, investor]) { }) beforeEach(async function () { - this.startTime = latestTime().unix() + moment.duration(1, 'week').asSeconds(); - this.endTime = latestTime().unix() + moment.duration(2, 'week').asSeconds(); + this.timeToStart = duration.weeks(1); + this.crowdsalePeriod = duration.weeks(1); + this.timeToEnd = this.timeToStart + this.crowdsalePeriod + increaseTimeHandicap; + + this.startTime = latestTime().unix() + this.timeToStart; + this.endTime = this.startTime + this.crowdsalePeriod; this.crowdsale = await SampleCrowdsale.new(this.startTime, this.endTime, RATE, GOAL, CAP, wallet); @@ -57,7 +61,7 @@ contract('Crowdsale', function ([owner, wallet, investor]) { const investmentAmount = ether(1); const expectedTokenAmount = RATE.mul(investmentAmount); - await increaseTime(moment.duration(1, 'week')); + await increaseTime(this.timeToStart); await this.crowdsale.buyTokens(investor, {value: investmentAmount, from: investor}).should.be.fulfilled; (await this.token.balanceOf(investor)).should.be.bignumber.equal(expectedTokenAmount); @@ -65,23 +69,23 @@ contract('Crowdsale', function ([owner, wallet, investor]) { }); it('should reject payments after end', async function () { - await increaseTime(moment.duration(2.1, 'week')); + await increaseTime(this.timeToEnd); await this.crowdsale.send(ether(1)).should.be.rejectedWith(EVMThrow); await this.crowdsale.buyTokens(investor, {value: ether(1), from: investor}).should.be.rejectedWith(EVMThrow); }); it('should reject payments over cap', async function () { - await increaseTime(moment.duration(1, 'week')); + await increaseTime(this.timeToStart); await this.crowdsale.send(CAP); await this.crowdsale.send(1).should.be.rejectedWith(EVMThrow); }); it('should allow finalization and transfer funds to wallet if the goal is reached', async function () { - await increaseTime(moment.duration(1, 'week')); + await increaseTime(this.timeToStart); await this.crowdsale.send(GOAL); const beforeFinalization = web3.eth.getBalance(wallet); - await increaseTime(moment.duration(1.1, 'week')); + await increaseTime(this.crowdsalePeriod + increaseTimeHandicap); await this.crowdsale.finalize({from: owner}); const afterFinalization = web3.eth.getBalance(wallet); @@ -91,9 +95,9 @@ contract('Crowdsale', function ([owner, wallet, investor]) { it('should allow refunds if the goal is not reached', async function () { const balanceBeforeInvestment = web3.eth.getBalance(investor); - await increaseTime(moment.duration(1, 'week')); + await increaseTime(this.timeToStart); await this.crowdsale.sendTransaction({value: ether(1), from: investor, gasPrice: 0}); - await increaseTime(moment.duration(1.1, 'week')); + await increaseTime(this.crowdsalePeriod + increaseTimeHandicap); await this.crowdsale.finalize({from: owner}); await this.crowdsale.claimRefund({from: investor, gasPrice: 0}).should.be.fulfilled; diff --git a/test/TokenTimelock.js b/test/TokenTimelock.js index 318cec98b..25ffd9e2e 100644 --- a/test/TokenTimelock.js +++ b/test/TokenTimelock.js @@ -29,26 +29,26 @@ contract('TokenTimelock', function ([_, owner, beneficiary]) { }) it('cannot be released just before time limit', async function () { - await increaseTime(moment.duration(0.99, 'year')) + await increaseTime(moment.duration(0.99, 'year').asSeconds()) await this.timelock.release().should.be.rejected }) it('can be released just after limit', async function () { - await increaseTime(moment.duration(1.01, 'year')) + await increaseTime(moment.duration(1.01, 'year').asSeconds()) await this.timelock.release().should.be.fulfilled const balance = await this.token.balanceOf(beneficiary) balance.should.be.bignumber.equal(amount) }) it('can be released after time limit', async function () { - await increaseTime(moment.duration(2, 'year')) + await increaseTime(moment.duration(2, 'year').asSeconds()) await this.timelock.release().should.be.fulfilled const balance = await this.token.balanceOf(beneficiary) balance.should.be.bignumber.equal(amount) }) it('cannot be released twice', async function () { - await increaseTime(moment.duration(2, 'year')) + await increaseTime(moment.duration(2, 'year').asSeconds()) await this.timelock.release().should.be.fulfilled await this.timelock.release().should.be.rejected const balance = await this.token.balanceOf(beneficiary) diff --git a/test/helpers/increaseTime.js b/test/helpers/increaseTime.js index cd1a756fd..06f7d9c0b 100644 --- a/test/helpers/increaseTime.js +++ b/test/helpers/increaseTime.js @@ -6,7 +6,7 @@ export default function increaseTime(duration) { web3.currentProvider.sendAsync({ jsonrpc: '2.0', method: 'evm_increaseTime', - params: [duration.asSeconds()], + params: [duration], id: id, }, err1 => { if (err1) return reject(err1) @@ -21,3 +21,13 @@ export default function increaseTime(duration) { }) }) } + +export const duration = { + seconds: function(val) { return val}, + minutes: function(val) { return val * this.seconds(60) }, + hours: function(val) { return val * this.minutes(60) }, + days: function(val) { return val * this.hours(24) }, + weeks: function(val) { return val * this.days(7) } +}; + +export const increaseTimeHandicap = duration.seconds(10); \ No newline at end of file From 46c5759b88907ee75c7c698be8198cc09369efd0 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Thu, 10 Aug 2017 16:23:52 +0200 Subject: [PATCH 101/160] Introduce increaseTimeTo helper method. --- test/CappedCrowdsale.js | 15 +++++---------- test/Crowdsale.js | 21 +++++++++------------ test/FinalizableCrowdsale.js | 21 +++++++++------------ test/RefundableCrowdsale.js | 26 +++++++++++--------------- test/SampleCrowdsale.js | 27 +++++++++++---------------- test/helpers/increaseTime.js | 22 ++++++++++++++++++---- 6 files changed, 63 insertions(+), 69 deletions(-) diff --git a/test/CappedCrowdsale.js b/test/CappedCrowdsale.js index bcc4e4a78..9dd027b35 100644 --- a/test/CappedCrowdsale.js +++ b/test/CappedCrowdsale.js @@ -1,7 +1,6 @@ import ether from './helpers/ether' import {advanceBlock} from './helpers/advanceToBlock' -import increaseTime from './helpers/increaseTime' -import {duration, increaseTimeHandicap} from './helpers/increaseTime' +import {increaseTimeTo, duration} from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -28,12 +27,8 @@ contract('CappedCrowdsale', function ([_, wallet]) { }) beforeEach(async function () { - this.timeToStart = duration.weeks(1); - this.crowdsalePeriod = duration.weeks(1); - - this.startTime = latestTime().unix() + this.timeToStart; - this.endTime = this.startTime + this.crowdsalePeriod; - + this.startTime = latestTime().unix() + duration.weeks(1); + this.endTime = this.startTime + duration.weeks(1); this.crowdsale = await CappedCrowdsale.new(this.startTime, this.endTime, rate, wallet, cap) @@ -51,7 +46,7 @@ contract('CappedCrowdsale', function ([_, wallet]) { describe('accepting payments', function () { beforeEach(async function () { - await increaseTime(this.timeToStart) + await increaseTimeTo(this.startTime) }) it('should accept payments within cap', async function () { @@ -73,7 +68,7 @@ contract('CappedCrowdsale', function ([_, wallet]) { describe('ending', function () { beforeEach(async function () { - await increaseTime(this.timeToStart) + await increaseTimeTo(this.startTime) }) it('should not be ended if under cap', async function () { diff --git a/test/Crowdsale.js b/test/Crowdsale.js index 20c1b365d..e3abe1975 100644 --- a/test/Crowdsale.js +++ b/test/Crowdsale.js @@ -1,7 +1,6 @@ import ether from './helpers/ether' import {advanceBlock} from './helpers/advanceToBlock' -import increaseTime from './helpers/increaseTime' -import {duration, increaseTimeHandicap} from './helpers/increaseTime' +import {increaseTimeTo, duration} from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -28,12 +27,10 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { }) beforeEach(async function () { - this.timeToStart = duration.weeks(1); - this.crowdsalePeriod = duration.weeks(1); - this.timeToEnd = this.timeToStart + this.crowdsalePeriod + increaseTimeHandicap; + this.startTime = latestTime().unix() + duration.weeks(1); + this.endTime = this.startTime + duration.weeks(1); + this.afterEndTime = this.endTime + duration.seconds(1) - this.startTime = latestTime().unix() + this.timeToStart; - this.endTime = this.startTime + this.crowdsalePeriod; this.crowdsale = await Crowdsale.new(this.startTime, this.endTime, rate, wallet) @@ -48,7 +45,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { it('should be ended only after end', async function () { let ended = await this.crowdsale.hasEnded() ended.should.equal(false) - await increaseTime(this.timeToEnd) + await increaseTimeTo(this.afterEndTime) ended = await this.crowdsale.hasEnded() ended.should.equal(true) }) @@ -61,13 +58,13 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { }) it('should accept payments after start', async function () { - await increaseTime(this.timeToStart) + await increaseTimeTo(this.startTime) await this.crowdsale.send(value).should.be.fulfilled await this.crowdsale.buyTokens(investor, {value: value, from: purchaser}).should.be.fulfilled }) it('should reject payments after end', async function () { - await increaseTime(this.timeToEnd) + await increaseTimeTo(this.afterEndTime) await this.crowdsale.send(value).should.be.rejectedWith(EVMThrow) await this.crowdsale.buyTokens(investor, {value: value, from: purchaser}).should.be.rejectedWith(EVMThrow) }) @@ -77,7 +74,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { describe('high-level purchase', function () { beforeEach(async function() { - await increaseTime(this.timeToStart) + await increaseTimeTo(this.startTime) }) it('should log purchase', async function () { @@ -116,7 +113,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { describe('low-level purchase', function () { beforeEach(async function() { - await increaseTime(this.timeToStart) + await increaseTimeTo(this.startTime) }) it('should log purchase', async function () { diff --git a/test/FinalizableCrowdsale.js b/test/FinalizableCrowdsale.js index af14708ea..a7e76bfbf 100644 --- a/test/FinalizableCrowdsale.js +++ b/test/FinalizableCrowdsale.js @@ -1,6 +1,5 @@ import {advanceBlock} from './helpers/advanceToBlock' -import increaseTime from './helpers/increaseTime' -import {duration, increaseTimeHandicap} from './helpers/increaseTime' +import {increaseTimeTo, duration} from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -24,12 +23,10 @@ contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { }) beforeEach(async function () { - this.timeToStart = duration.weeks(1); - this.crowdsalePeriod = duration.weeks(1); - this.timeToEnd = this.timeToStart + this.crowdsalePeriod + increaseTimeHandicap; + this.startTime = latestTime().unix() + duration.weeks(1) + this.endTime = this.startTime + duration.weeks(1) + this.afterEndTime = this.endTime + duration.seconds(1) - this.startTime = latestTime().unix() + this.timeToStart; - this.endTime = this.startTime + this.crowdsalePeriod; this.crowdsale = await FinalizableCrowdsale.new(this.startTime, this.endTime, rate, wallet, {from: owner}) @@ -41,30 +38,30 @@ contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { }) it('cannot be finalized by third party after ending', async function () { - await increaseTime(this.timeToEnd) + await increaseTimeTo(this.afterEndTime) await this.crowdsale.finalize({from: thirdparty}).should.be.rejectedWith(EVMThrow) }) it('can be finalized by owner after ending', async function () { - await increaseTime(this.timeToEnd) + await increaseTimeTo(this.afterEndTime) await this.crowdsale.finalize({from: owner}).should.be.fulfilled }) it('cannot be finalized twice', async function () { - await increaseTime(this.timeToEnd) + await increaseTimeTo(this.afterEndTime) await this.crowdsale.finalize({from: owner}) await this.crowdsale.finalize({from: owner}).should.be.rejectedWith(EVMThrow) }) it('logs finalized', async function () { - await increaseTime(this.timeToEnd) + await increaseTimeTo(this.afterEndTime) const {logs} = await this.crowdsale.finalize({from: owner}) const event = logs.find(e => e.event === 'Finalized') should.exist(event) }) it('finishes minting of token', async function () { - await increaseTime(this.timeToEnd) + await increaseTimeTo(this.afterEndTime) await this.crowdsale.finalize({from: owner}) const finished = await this.token.mintingFinished() finished.should.equal(true) diff --git a/test/RefundableCrowdsale.js b/test/RefundableCrowdsale.js index 6f0fc39a7..d3150a94f 100644 --- a/test/RefundableCrowdsale.js +++ b/test/RefundableCrowdsale.js @@ -1,7 +1,6 @@ import ether from './helpers/ether' import {advanceBlock} from './helpers/advanceToBlock' -import increaseTime from './helpers/increaseTime' -import {duration, increaseTimeHandicap} from './helpers/increaseTime' +import {increaseTimeTo, duration} from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -26,12 +25,9 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { }) beforeEach(async function () { - this.timeToStart = duration.weeks(1); - this.crowdsalePeriod = duration.weeks(1); - this.timeToEnd = this.timeToStart + this.crowdsalePeriod + increaseTimeHandicap; - - this.startTime = latestTime().unix() + this.timeToStart; - this.endTime = this.startTime + this.crowdsalePeriod; + this.startTime = latestTime().unix() + duration.weeks(1) + this.endTime = this.startTime + duration.weeks(1) + this.afterEndTime = this.endTime + duration.seconds(1) this.crowdsale = await RefundableCrowdsale.new(this.startTime, this.endTime, rate, wallet, goal, {from: owner}) }) @@ -46,21 +42,21 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { it('should deny refunds before end', async function () { await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) - await increaseTime(this.timeToStart) + await increaseTimeTo(this.startTime) await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) }) it('should deny refunds after end if goal was reached', async function () { - await increaseTime(this.timeToStart) + await increaseTimeTo(this.startTime) await this.crowdsale.sendTransaction({value: goal, from: investor}) - await increaseTime(this.crowdsalePeriod + increaseTimeHandicap) + await increaseTimeTo(this.afterEndTime) await this.crowdsale.claimRefund({from: investor}).should.be.rejectedWith(EVMThrow) }) it('should allow refunds after end if goal was not reached', async function () { - await increaseTime(this.timeToStart) + await increaseTimeTo(this.startTime) await this.crowdsale.sendTransaction({value: lessThanGoal, from: investor}) - await increaseTime(this.crowdsalePeriod + increaseTimeHandicap) + await increaseTimeTo(this.afterEndTime) await this.crowdsale.finalize({from: owner}) @@ -73,9 +69,9 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { }) it('should forward funds to wallet after end if goal was reached', async function () { - await increaseTime(this.timeToStart) + await increaseTimeTo(this.startTime) await this.crowdsale.sendTransaction({value: goal, from: investor}) - await increaseTime(this.crowdsalePeriod + increaseTimeHandicap) + await increaseTimeTo(this.afterEndTime) const pre = web3.eth.getBalance(wallet) await this.crowdsale.finalize({from: owner}) diff --git a/test/SampleCrowdsale.js b/test/SampleCrowdsale.js index dbcf2ba56..b17c15aeb 100644 --- a/test/SampleCrowdsale.js +++ b/test/SampleCrowdsale.js @@ -1,7 +1,6 @@ import ether from './helpers/ether' import {advanceBlock} from './helpers/advanceToBlock' -import increaseTime from './helpers/increaseTime' -import {duration, increaseTimeHandicap} from './helpers/increaseTime' +import {increaseTimeTo, duration} from './helpers/increaseTime' import latestTime from './helpers/latestTime' import EVMThrow from './helpers/EVMThrow' @@ -27,13 +26,9 @@ contract('Crowdsale', function ([owner, wallet, investor]) { }) beforeEach(async function () { - this.timeToStart = duration.weeks(1); - this.crowdsalePeriod = duration.weeks(1); - this.timeToEnd = this.timeToStart + this.crowdsalePeriod + increaseTimeHandicap; - - this.startTime = latestTime().unix() + this.timeToStart; - this.endTime = this.startTime + this.crowdsalePeriod; - + this.startTime = latestTime().unix() + duration.weeks(1); + this.endTime = this.startTime + duration.weeks(1); + this.afterEndTime = this.endTime + duration.seconds(1); this.crowdsale = await SampleCrowdsale.new(this.startTime, this.endTime, RATE, GOAL, CAP, wallet); this.token = SampleCrowdsaleToken.at(await this.crowdsale.token()); @@ -61,7 +56,7 @@ contract('Crowdsale', function ([owner, wallet, investor]) { const investmentAmount = ether(1); const expectedTokenAmount = RATE.mul(investmentAmount); - await increaseTime(this.timeToStart); + await increaseTimeTo(this.startTime); await this.crowdsale.buyTokens(investor, {value: investmentAmount, from: investor}).should.be.fulfilled; (await this.token.balanceOf(investor)).should.be.bignumber.equal(expectedTokenAmount); @@ -69,23 +64,23 @@ contract('Crowdsale', function ([owner, wallet, investor]) { }); it('should reject payments after end', async function () { - await increaseTime(this.timeToEnd); + await increaseTimeTo(this.afterEnd); await this.crowdsale.send(ether(1)).should.be.rejectedWith(EVMThrow); await this.crowdsale.buyTokens(investor, {value: ether(1), from: investor}).should.be.rejectedWith(EVMThrow); }); it('should reject payments over cap', async function () { - await increaseTime(this.timeToStart); + await increaseTimeTo(this.startTime); await this.crowdsale.send(CAP); await this.crowdsale.send(1).should.be.rejectedWith(EVMThrow); }); it('should allow finalization and transfer funds to wallet if the goal is reached', async function () { - await increaseTime(this.timeToStart); + await increaseTimeTo(this.startTime); await this.crowdsale.send(GOAL); const beforeFinalization = web3.eth.getBalance(wallet); - await increaseTime(this.crowdsalePeriod + increaseTimeHandicap); + await increaseTimeTo(this.afterEndTime); await this.crowdsale.finalize({from: owner}); const afterFinalization = web3.eth.getBalance(wallet); @@ -95,9 +90,9 @@ contract('Crowdsale', function ([owner, wallet, investor]) { it('should allow refunds if the goal is not reached', async function () { const balanceBeforeInvestment = web3.eth.getBalance(investor); - await increaseTime(this.timeToStart); + await increaseTimeTo(this.startTime); await this.crowdsale.sendTransaction({value: ether(1), from: investor, gasPrice: 0}); - await increaseTime(this.crowdsalePeriod + increaseTimeHandicap); + await increaseTimeTo(this.afterEndTime); await this.crowdsale.finalize({from: owner}); await this.crowdsale.claimRefund({from: investor, gasPrice: 0}).should.be.fulfilled; diff --git a/test/helpers/increaseTime.js b/test/helpers/increaseTime.js index 06f7d9c0b..5a6a8e2c2 100644 --- a/test/helpers/increaseTime.js +++ b/test/helpers/increaseTime.js @@ -1,4 +1,6 @@ -// Increases testrpc time by the passed duration (a moment.js instance) +import latestTime from './latestTime' + +// Increases testrpc time by the passed duration in seconds export default function increaseTime(duration) { const id = Date.now() @@ -22,12 +24,24 @@ export default function increaseTime(duration) { }) } +/** + * Beware that due to the need of calling two separate testrpc methods and rpc calls overhead + * it's hard to increase time precisely to a target point so design your test to tolerate + * small fluctuations from time to time. + * + * @param target time in seconds + */ +export function increaseTimeTo(target) { + let now = latestTime().unix(); + if (target < now) throw Error(`Cannot increase current time(${now}) to a moment in the past(${target})`); + let diff = target - now; + return increaseTime(diff); +} + export const duration = { seconds: function(val) { return val}, minutes: function(val) { return val * this.seconds(60) }, hours: function(val) { return val * this.minutes(60) }, days: function(val) { return val * this.hours(24) }, weeks: function(val) { return val * this.days(7) } -}; - -export const increaseTimeHandicap = duration.seconds(10); \ No newline at end of file +}; \ No newline at end of file From 479d01101d8acf608fe05f2efbadc3070f2977e9 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 11 Aug 2017 11:30:44 -0300 Subject: [PATCH 102/160] move truffle-hdwallet-provider to devDependencies --- package-lock.json | 3205 +++++++++++++++++++++++++++++++++++---------- package.json | 8 +- 2 files changed, 2501 insertions(+), 712 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0f45b961b..f4360e813 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2,6 +2,7 @@ "name": "zeppelin-solidity", "version": "1.2.0", "lockfileVersion": 1, + "requires": true, "dependencies": { "abbrev": { "version": "1.0.9", @@ -12,23 +13,27 @@ "abstract-leveldown": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.2.tgz", - "integrity": "sha512-6RmGuGZSsvwIYS9otANM+Rie7/6UNdE0IbxwUiXFjXmjHNCJZEjyX2Pltl5BvIYszLODlsnXtyA7A7Ujlca4Gw==" + "integrity": "sha512-6RmGuGZSsvwIYS9otANM+Rie7/6UNdE0IbxwUiXFjXmjHNCJZEjyX2Pltl5BvIYszLODlsnXtyA7A7Ujlca4Gw==", + "requires": { + "xtend": "4.0.1" + } }, "aes-js": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-0.2.4.tgz", - "integrity": "sha1-lLiBq3FyhtAV+iGeCPtmcJ3aWj0=" - }, - "ajv": { - "version": "4.11.8", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-4.11.8.tgz", - "integrity": "sha1-gv+wKynmYq5TvcIK8VlHcGc5xTY=" + "integrity": "sha1-lLiBq3FyhtAV+iGeCPtmcJ3aWj0=", + "dev": true }, "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", - "dev": true + "dev": true, + "requires": { + "kind-of": "3.2.2", + "longest": "1.0.1", + "repeat-string": "1.6.1" + } }, "amdefine": { "version": "1.0.1", @@ -44,7 +49,8 @@ "ansi-styles": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=" + "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "dev": true }, "aproba": { "version": "1.1.2", @@ -54,23 +60,32 @@ "are-we-there-yet": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", - "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=" + "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "requires": { + "delegates": "1.0.0", + "readable-stream": "2.3.3" + } }, "argparse": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.9.tgz", "integrity": "sha1-c9g7wmP4bpf4zE9rrhsOkKfSLIY=", - "dev": true + "dev": true, + "requires": { + "sprintf-js": "1.0.3" + } }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", - "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=" + "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", + "dev": true }, "assert-plus": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", - "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=" + "integrity": "sha1-104bh+ev/A24qttwIfP+SBAasjQ=", + "dev": true }, "assertion-error": { "version": "1.0.2", @@ -79,49 +94,105 @@ "dev": true }, "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==" + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" }, "async-eventemitter": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.3.tgz", - "integrity": "sha1-959IDf2mZFqXvWFCwBcVDWO05w4=" + "integrity": "sha1-959IDf2mZFqXvWFCwBcVDWO05w4=", + "requires": { + "async": "2.5.0" + }, + "dependencies": { + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "requires": { + "lodash": "4.17.4" + } + } + } }, "asynckit": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true }, "aws-sign2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.6.0.tgz", - "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=" + "integrity": "sha1-FDQt0428yU0OW4fXY81jYSwOeU8=", + "dev": true }, "aws4": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.6.0.tgz", - "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=" + "integrity": "sha1-g+9cqGCysy5KDe7e6MdxudtXRx4=", + "dev": true }, "babel-code-frame": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.22.0.tgz", - "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=" + "integrity": "sha1-AnYgvuVnqIwyVhV05/0IAdMxGOQ=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "esutils": "2.0.2", + "js-tokens": "3.0.2" + } }, "babel-core": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-core/-/babel-core-6.25.0.tgz", - "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=" + "integrity": "sha1-fdQrBGPHQunVKW3rPsZ6kyLa1yk=", + "dev": true, + "requires": { + "babel-code-frame": "6.22.0", + "babel-generator": "6.25.0", + "babel-helpers": "6.24.1", + "babel-messages": "6.23.0", + "babel-register": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0", + "babylon": "6.17.4", + "convert-source-map": "1.5.0", + "debug": "2.6.8", + "json5": "0.5.1", + "lodash": "4.17.4", + "minimatch": "3.0.4", + "path-is-absolute": "1.0.1", + "private": "0.1.7", + "slash": "1.0.0", + "source-map": "0.5.6" + } }, "babel-generator": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-generator/-/babel-generator-6.25.0.tgz", "integrity": "sha1-M6GvcNXyiQrrRlpKd5PB32qeqfw=", + "dev": true, + "requires": { + "babel-messages": "6.23.0", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0", + "detect-indent": "4.0.0", + "jsesc": "1.3.0", + "lodash": "4.17.4", + "source-map": "0.5.6", + "trim-right": "1.0.1" + }, "dependencies": { "jsesc": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-1.3.0.tgz", - "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=" + "integrity": "sha1-RsP+yMGJKxKwgz25vHYiF226s0s=", + "dev": true } } }, @@ -129,86 +200,179 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-bindify-decorators/-/babel-helper-bindify-decorators-6.24.1.tgz", "integrity": "sha1-FMGeXxQte0fxmlJDHlKxzLxAozA=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-builder-binary-assignment-operator-visitor": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz", "integrity": "sha1-zORReto1b0IgvK6KAsKzRvmlZmQ=", - "dev": true + "dev": true, + "requires": { + "babel-helper-explode-assignable-expression": "6.24.1", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-call-delegate": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz", - "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=" + "integrity": "sha1-7Oaqzdx25Bw0YfiL/Fdb0Nqi340=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-define-map": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-define-map/-/babel-helper-define-map-6.24.1.tgz", - "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=" + "integrity": "sha1-epdH8ljYlH0y1RX2qhx70CIEoIA=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0", + "lodash": "4.17.4" + } }, "babel-helper-explode-assignable-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz", "integrity": "sha1-8luCz33BBDPFX3BZLVdGQArCLKo=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-explode-class": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-explode-class/-/babel-helper-explode-class-6.24.1.tgz", "integrity": "sha1-fcKjkQ3uAHBW4eMdZAztPVTqqes=", - "dev": true + "dev": true, + "requires": { + "babel-helper-bindify-decorators": "6.24.1", + "babel-runtime": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz", - "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=" + "integrity": "sha1-00dbjAPtmCQqJbSDUasYOZ01gKk=", + "dev": true, + "requires": { + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-get-function-arity": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz", - "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=" + "integrity": "sha1-j3eCqpNAfEHTqlCQj4mwMbG2hT0=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-hoist-variables": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz", - "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=" + "integrity": "sha1-HssnaJydJVE+rbyZFKc/VAi+enY=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-optimise-call-expression": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz", - "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=" + "integrity": "sha1-96E0J7qfc/j0+pk8VKl4gtEkQlc=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-regex/-/babel-helper-regex-6.24.1.tgz", - "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=" + "integrity": "sha1-024i+rEAjXnYhkjjIRaGgShFbOg=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0", + "lodash": "4.17.4" + } }, "babel-helper-remap-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz", "integrity": "sha1-XsWBgnrXI/7N04HxySg5BnbkVRs=", - "dev": true + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helper-replace-supers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz", - "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=" + "integrity": "sha1-v22/5Dk40XNpohPKiov3S2qQqxo=", + "dev": true, + "requires": { + "babel-helper-optimise-call-expression": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-helpers": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-helpers/-/babel-helpers-6.24.1.tgz", - "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=" + "integrity": "sha1-NHHenK7DiOXIUOWX5Yom3fN2ArI=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-messages": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-messages/-/babel-messages-6.23.0.tgz", - "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=" + "integrity": "sha1-8830cDhYA1sqKVHG7F7fbGLyYw4=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-check-es2015-constants": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz", - "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=" + "integrity": "sha1-NRV7EBQm/S/9PaP3XH0ekYNbv4o=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-syntax-async-functions": { "version": "6.13.0", @@ -262,234 +426,501 @@ "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-generator-functions/-/babel-plugin-transform-async-generator-functions-6.24.1.tgz", "integrity": "sha1-8FiQAUX9PpkHpt3yjaWfIVJYpds=", - "dev": true + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-generators": "6.13.0", + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-async-to-generator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz", "integrity": "sha1-ZTbjeK/2yx1VF6wOQOs+n8jQh2E=", - "dev": true + "dev": true, + "requires": { + "babel-helper-remap-async-to-generator": "6.24.1", + "babel-plugin-syntax-async-functions": "6.13.0", + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-class-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-class-properties/-/babel-plugin-transform-class-properties-6.24.1.tgz", "integrity": "sha1-anl2PqYdM9NvN7YRqp3vgagbRqw=", - "dev": true + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-plugin-syntax-class-properties": "6.13.0", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-plugin-transform-decorators": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-decorators/-/babel-plugin-transform-decorators-6.24.1.tgz", "integrity": "sha1-eIAT2PjGtSIr33s0Q5Df13Vp4k0=", - "dev": true + "dev": true, + "requires": { + "babel-helper-explode-class": "6.24.1", + "babel-plugin-syntax-decorators": "6.13.0", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-arrow-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz", - "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=" + "integrity": "sha1-RSaSy3EdX3ncf4XkQM5BufJE0iE=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-block-scoped-functions": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz", - "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=" + "integrity": "sha1-u8UbSflk1wy42OC5ToICRs46YUE=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-block-scoping": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.24.1.tgz", - "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=" + "integrity": "sha1-dsKV3DpHQbFmWt/TFnIV3P8ypXY=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0", + "lodash": "4.17.4" + } }, "babel-plugin-transform-es2015-classes": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz", - "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=" + "integrity": "sha1-WkxYpQyclGHlZLSyo7+ryXolhNs=", + "dev": true, + "requires": { + "babel-helper-define-map": "6.24.1", + "babel-helper-function-name": "6.24.1", + "babel-helper-optimise-call-expression": "6.24.1", + "babel-helper-replace-supers": "6.24.1", + "babel-messages": "6.23.0", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-computed-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz", - "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=" + "integrity": "sha1-b+Ko0WiV1WNPTNmZttNICjCBWbM=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-plugin-transform-es2015-destructuring": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz", - "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=" + "integrity": "sha1-mXux8auWf2gtKwh2/jWNYOdlxW0=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-duplicate-keys": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz", - "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=" + "integrity": "sha1-c+s9MQypaePvnskcU3QabxV2Qj4=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-for-of": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz", - "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=" + "integrity": "sha1-9HyVsrYT3x0+zC/bdXNiPHUkhpE=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-function-name": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz", - "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=" + "integrity": "sha1-g0yJhTvDaxrw86TF26qU/Y6sqos=", + "dev": true, + "requires": { + "babel-helper-function-name": "6.24.1", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz", - "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=" + "integrity": "sha1-T1SgLWzWbPkVKAAZox0xklN3yi4=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-modules-amd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz", - "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=" + "integrity": "sha1-Oz5UAXI5hC1tGcMBHEvS8AoA0VQ=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-commonjs": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-plugin-transform-es2015-modules-commonjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.24.1.tgz", - "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=" + "integrity": "sha1-0+MQtA72ZKNmIiAAl8bUQCmPK/4=", + "dev": true, + "requires": { + "babel-plugin-transform-strict-mode": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-modules-systemjs": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz", - "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=" + "integrity": "sha1-/4mhQrkRmpBhlfXxBuzzBdlAfSM=", + "dev": true, + "requires": { + "babel-helper-hoist-variables": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-plugin-transform-es2015-modules-umd": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz", - "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=" + "integrity": "sha1-rJl+YoXNGO1hdq22B9YCNErThGg=", + "dev": true, + "requires": { + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0" + } }, "babel-plugin-transform-es2015-object-super": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz", - "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=" + "integrity": "sha1-JM72muIcuDp/hgPa0CH1cusnj40=", + "dev": true, + "requires": { + "babel-helper-replace-supers": "6.24.1", + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-parameters": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz", - "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=" + "integrity": "sha1-V6w1GrScrxSpfNE7CfZv3wpiXys=", + "dev": true, + "requires": { + "babel-helper-call-delegate": "6.24.1", + "babel-helper-get-function-arity": "6.24.1", + "babel-runtime": "6.25.0", + "babel-template": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-shorthand-properties": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz", - "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=" + "integrity": "sha1-JPh11nIch2YbvZmkYi5R8U3jiqA=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-spread": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz", - "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=" + "integrity": "sha1-1taKmfia7cRTbIGlQujdnxdG+NE=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-sticky-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz", - "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=" + "integrity": "sha1-AMHNsaynERLN8M9hJsLta0V8zbw=", + "dev": true, + "requires": { + "babel-helper-regex": "6.24.1", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-plugin-transform-es2015-template-literals": { "version": "6.22.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz", - "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=" + "integrity": "sha1-qEs0UPfp+PH2g51taH2oS7EjbY0=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-typeof-symbol": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz", - "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=" + "integrity": "sha1-3sCfHN3/lLUqxz1QXITfWdzOs3I=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-es2015-unicode-regex": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz", - "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=" + "integrity": "sha1-04sS9C6nMj9yk4fxinxa4frrNek=", + "dev": true, + "requires": { + "babel-helper-regex": "6.24.1", + "babel-runtime": "6.25.0", + "regexpu-core": "2.0.0" + } }, "babel-plugin-transform-exponentiation-operator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz", "integrity": "sha1-KrDJx/MJj6SJB3cruBP+QejeOg4=", - "dev": true + "dev": true, + "requires": { + "babel-helper-builder-binary-assignment-operator-visitor": "6.24.1", + "babel-plugin-syntax-exponentiation-operator": "6.13.0", + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-object-rest-spread": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-plugin-transform-object-rest-spread/-/babel-plugin-transform-object-rest-spread-6.23.0.tgz", "integrity": "sha1-h11ryb52HFiirj/u5dxIldjH+SE=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-syntax-object-rest-spread": "6.13.0", + "babel-runtime": "6.25.0" + } }, "babel-plugin-transform-regenerator": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.24.1.tgz", - "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=" + "integrity": "sha1-uNowWtQ8PJm0hI5P5AN7dw0jxBg=", + "dev": true, + "requires": { + "regenerator-transform": "0.9.11" + } }, "babel-plugin-transform-strict-mode": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz", - "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=" + "integrity": "sha1-1fr3qleKZbvlkc9e2uBKDGcCB1g=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0" + } }, "babel-polyfill": { "version": "6.23.0", "resolved": "https://registry.npmjs.org/babel-polyfill/-/babel-polyfill-6.23.0.tgz", "integrity": "sha1-g2TKYt+Or7gwSZ9pkXdGbDsDSZ0=", - "dev": true + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "core-js": "2.5.0", + "regenerator-runtime": "0.10.5" + } }, "babel-preset-es2015": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-es2015/-/babel-preset-es2015-6.24.1.tgz", - "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=" + "integrity": "sha1-1EBQ1rwsn+6nAqrzjXJ6AhBTiTk=", + "dev": true, + "requires": { + "babel-plugin-check-es2015-constants": "6.22.0", + "babel-plugin-transform-es2015-arrow-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoped-functions": "6.22.0", + "babel-plugin-transform-es2015-block-scoping": "6.24.1", + "babel-plugin-transform-es2015-classes": "6.24.1", + "babel-plugin-transform-es2015-computed-properties": "6.24.1", + "babel-plugin-transform-es2015-destructuring": "6.23.0", + "babel-plugin-transform-es2015-duplicate-keys": "6.24.1", + "babel-plugin-transform-es2015-for-of": "6.23.0", + "babel-plugin-transform-es2015-function-name": "6.24.1", + "babel-plugin-transform-es2015-literals": "6.22.0", + "babel-plugin-transform-es2015-modules-amd": "6.24.1", + "babel-plugin-transform-es2015-modules-commonjs": "6.24.1", + "babel-plugin-transform-es2015-modules-systemjs": "6.24.1", + "babel-plugin-transform-es2015-modules-umd": "6.24.1", + "babel-plugin-transform-es2015-object-super": "6.24.1", + "babel-plugin-transform-es2015-parameters": "6.24.1", + "babel-plugin-transform-es2015-shorthand-properties": "6.24.1", + "babel-plugin-transform-es2015-spread": "6.22.0", + "babel-plugin-transform-es2015-sticky-regex": "6.24.1", + "babel-plugin-transform-es2015-template-literals": "6.22.0", + "babel-plugin-transform-es2015-typeof-symbol": "6.23.0", + "babel-plugin-transform-es2015-unicode-regex": "6.24.1", + "babel-plugin-transform-regenerator": "6.24.1" + } }, "babel-preset-stage-2": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-stage-2/-/babel-preset-stage-2-6.24.1.tgz", "integrity": "sha1-2eKWD7PXEYfw5k7sYrwHdnIZvcE=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-syntax-dynamic-import": "6.18.0", + "babel-plugin-transform-class-properties": "6.24.1", + "babel-plugin-transform-decorators": "6.24.1", + "babel-preset-stage-3": "6.24.1" + } }, "babel-preset-stage-3": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-preset-stage-3/-/babel-preset-stage-3-6.24.1.tgz", "integrity": "sha1-g2raCp56f6N8sTj7kyb4eTSkg5U=", - "dev": true + "dev": true, + "requires": { + "babel-plugin-syntax-trailing-function-commas": "6.22.0", + "babel-plugin-transform-async-generator-functions": "6.24.1", + "babel-plugin-transform-async-to-generator": "6.24.1", + "babel-plugin-transform-exponentiation-operator": "6.24.1", + "babel-plugin-transform-object-rest-spread": "6.23.0" + } }, "babel-register": { "version": "6.24.1", "resolved": "https://registry.npmjs.org/babel-register/-/babel-register-6.24.1.tgz", - "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=" + "integrity": "sha1-fhDhOi9xBlvfrVoXh7pFvKbe118=", + "dev": true, + "requires": { + "babel-core": "6.25.0", + "babel-runtime": "6.25.0", + "core-js": "2.5.0", + "home-or-tmp": "2.0.0", + "lodash": "4.17.4", + "mkdirp": "0.5.1", + "source-map-support": "0.4.15" + } }, "babel-runtime": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.25.0.tgz", - "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=" + "integrity": "sha1-M7mOql1IK7AajRqmtDetKwGuxBw=", + "dev": true, + "requires": { + "core-js": "2.5.0", + "regenerator-runtime": "0.10.5" + } }, "babel-template": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-template/-/babel-template-6.25.0.tgz", - "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=" + "integrity": "sha1-ZlJBFmt8KqTGGdceGSlpVSsQwHE=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-traverse": "6.25.0", + "babel-types": "6.25.0", + "babylon": "6.17.4", + "lodash": "4.17.4" + } }, "babel-traverse": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-traverse/-/babel-traverse-6.25.0.tgz", - "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=" + "integrity": "sha1-IldJfi/NGbie3BPEyROB+VEklvE=", + "dev": true, + "requires": { + "babel-code-frame": "6.22.0", + "babel-messages": "6.23.0", + "babel-runtime": "6.25.0", + "babel-types": "6.25.0", + "babylon": "6.17.4", + "debug": "2.6.8", + "globals": "9.18.0", + "invariant": "2.2.2", + "lodash": "4.17.4" + } }, "babel-types": { "version": "6.25.0", "resolved": "https://registry.npmjs.org/babel-types/-/babel-types-6.25.0.tgz", - "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=" + "integrity": "sha1-cK+ySNVmDl0Y+BHZHIMDtUE0oY4=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "esutils": "2.0.2", + "lodash": "4.17.4", + "to-fast-properties": "1.0.3" + } }, "babelify": { "version": "7.3.0", "resolved": "https://registry.npmjs.org/babelify/-/babelify-7.3.0.tgz", - "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=" + "integrity": "sha1-qlau3nBn/XvVSWZu4W3ChQh+iOU=", + "dev": true, + "requires": { + "babel-core": "6.25.0", + "object-assign": "4.1.1" + } }, "babylon": { "version": "6.17.4", "resolved": "https://registry.npmjs.org/babylon/-/babylon-6.17.4.tgz", - "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==" + "integrity": "sha512-kChlV+0SXkjE0vUn9OZ7pBMWRFd8uq3mZe8x1K6jhuNcAFAtEnjchFAqB+dYEXKyd+JpT6eppRR78QAr5gTsUw==", + "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true }, "base-x": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/base-x/-/base-x-1.1.0.tgz", - "integrity": "sha1-QtPXF0dPnqAiB/bRqh9CaRPut6w=" + "integrity": "sha1-QtPXF0dPnqAiB/bRqh9CaRPut6w=", + "dev": true }, "bcrypt-pbkdf": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", "integrity": "sha1-Y7xdy2EzG5K8Bf1SiVPDNGKgb40=", - "optional": true + "dev": true, + "optional": true, + "requires": { + "tweetnacl": "0.14.5" + } }, "bignumber.js": { - "version": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.1.4.tgz", + "integrity": "sha1-KbO7aT27I46Ity6sL7iWUIiLLVk=", + "dev": true }, "bindings": { "version": "1.3.0", @@ -497,34 +928,56 @@ "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" }, "bip39": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.3.1.tgz", - "integrity": "sha1-yCOKvAnXGcbwETbvBC2szF3DWBs=" + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.2.0.tgz", + "integrity": "sha1-QOc/cGdMJn8UjNv4N08qUL4Waw0=", + "dev": true, + "requires": { + "create-hash": "1.1.3", + "pbkdf2": "3.0.13", + "randombytes": "2.0.5", + "unorm": "1.4.1" + } }, "bip66": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=" + "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "requires": { + "safe-buffer": "5.1.1" + } }, "bl": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", - "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=" + "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "requires": { + "readable-stream": "2.3.3" + } }, "bn.js": { - "version": "4.11.7", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.7.tgz", - "integrity": "sha512-LxFiV5mefv0ley0SzqkOPR1bC4EbpPx8LkOz5vMe/Yi15t5hzwgO/G+tc7wOtL4PZTYjwHu8JnEiSLumuSjSfA==" + "version": "4.11.8", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" }, "boom": { "version": "2.10.1", "resolved": "https://registry.npmjs.org/boom/-/boom-2.10.1.tgz", - "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=" + "integrity": "sha1-OciRjO/1eZ+D+UkqhI9iWt0Mdm8=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } }, "brace-expansion": { "version": "1.1.8", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.8.tgz", - "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=" + "integrity": "sha1-wHshHHyVLsH479Uad+8NHTmQopI=", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } }, "brorand": { "version": "1.1.0", @@ -540,22 +993,41 @@ "browserify-aes": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", - "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=" + "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", + "requires": { + "buffer-xor": "1.0.3", + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.0", + "inherits": "2.0.3" + } }, "browserify-sha3": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/browserify-sha3/-/browserify-sha3-0.0.1.tgz", - "integrity": "sha1-P/NKMAbvFcD7NWflQbkaI0ASPRE=" + "integrity": "sha1-P/NKMAbvFcD7NWflQbkaI0ASPRE=", + "requires": { + "js-sha3": "0.3.1" + } }, "bs58": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bs58/-/bs58-3.1.0.tgz", - "integrity": "sha1-1MJjiL9IBMrHFBQbGUWqR+XrJI4=" + "integrity": "sha1-1MJjiL9IBMrHFBQbGUWqR+XrJI4=", + "dev": true, + "requires": { + "base-x": "1.1.0" + } }, "bs58check": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-1.3.4.tgz", - "integrity": "sha1-xSVABzdJEXcU+gQsMEfrj5FRy/g=" + "integrity": "sha1-xSVABzdJEXcU+gQsMEfrj5FRy/g=", + "dev": true, + "requires": { + "bs58": "3.1.0", + "create-hash": "1.1.3" + } }, "buffer-xor": { "version": "1.0.3", @@ -565,48 +1037,73 @@ "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=" + "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", + "dev": true }, "bytewise": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", "integrity": "sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4=", - "dev": true + "dev": true, + "requires": { + "bytewise-core": "1.2.3", + "typewise": "1.0.3" + } }, "bytewise-core": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", "integrity": "sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI=", - "dev": true + "dev": true, + "requires": { + "typewise-core": "1.2.0" + } }, "camelcase": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", - "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=" + "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", + "dev": true }, "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=" + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", + "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", + "dev": true }, "center-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, - "optional": true + "optional": true, + "requires": { + "align-text": "0.1.4", + "lazy-cache": "1.0.4" + } }, "chai": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.0.tgz", - "integrity": "sha1-MxoDkbVcOvh0CunDt0WLwcOAXm0=", - "dev": true + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.1.tgz", + "integrity": "sha1-ZuISeebzxkFf+CMYeCJ5AOIXGzk=", + "dev": true, + "requires": { + "assertion-error": "1.0.2", + "check-error": "1.0.2", + "deep-eql": "2.0.2", + "get-func-name": "2.0.0", + "pathval": "1.1.0", + "type-detect": "4.0.3" + } }, "chai-as-promised": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", - "dev": true + "dev": true, + "requires": { + "check-error": "1.0.2" + } }, "chai-bignumber": { "version": "2.0.1", @@ -617,7 +1114,15 @@ "chalk": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=" + "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "dev": true, + "requires": { + "ansi-styles": "2.2.1", + "escape-string-regexp": "1.0.5", + "has-ansi": "2.0.0", + "strip-ansi": "3.0.1", + "supports-color": "2.0.0" + } }, "check-error": { "version": "1.0.2", @@ -628,7 +1133,10 @@ "checkpoint-store": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", - "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=" + "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", + "requires": { + "functional-red-black-tree": "1.0.1" + } }, "chownr": { "version": "1.0.1", @@ -638,22 +1146,28 @@ "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==" + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "2.0.3", + "safe-buffer": "5.1.1" + } }, "cliui": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", - "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=" + "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wrap-ansi": "2.1.0" + } }, "clone": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.1.tgz", - "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=" - }, - "co": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", - "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=" + "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", + "dev": true }, "code-point-at": { "version": "1.1.0", @@ -664,18 +1178,28 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/coinstring/-/coinstring-2.3.0.tgz", "integrity": "sha1-zbYzY6lhUCQEolr7gsLibV/2J6Q=", + "dev": true, + "requires": { + "bs58": "2.0.1", + "create-hash": "1.1.3" + }, "dependencies": { "bs58": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/bs58/-/bs58-2.0.1.tgz", - "integrity": "sha1-VZCNWPGYKrogCPob7Y+RmYopv40=" + "integrity": "sha1-VZCNWPGYKrogCPob7Y+RmYopv40=", + "dev": true } } }, "combined-stream": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.5.tgz", - "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=" + "integrity": "sha1-k4NwpXtKUd6ix3wV1cX9+JUWQAk=", + "dev": true, + "requires": { + "delayed-stream": "1.0.0" + } }, "commander": { "version": "2.11.0", @@ -686,7 +1210,8 @@ "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, "console-control-strings": { "version": "1.1.0", @@ -696,12 +1221,14 @@ "convert-source-map": { "version": "1.5.0", "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.5.0.tgz", - "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=" + "integrity": "sha1-ms1whRxtXf3ZPZKC5e35SgP/RrU=", + "dev": true }, "core-js": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.4.1.tgz", - "integrity": "sha1-TekR5mew6ukSTjQlS1OupvxhjT4=" + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.5.0.tgz", + "integrity": "sha1-VpwFCRi+ZIazg3VSAorgRmtxcIY=", + "dev": true }, "core-util-is": { "version": "1.0.2", @@ -713,41 +1240,18 @@ "resolved": "https://registry.npmjs.org/coveralls/-/coveralls-2.13.1.tgz", "integrity": "sha1-1wu5rMGDXsTwY/+drFQjwXsR8Xg=", "dev": true, + "requires": { + "js-yaml": "3.6.1", + "lcov-parse": "0.0.10", + "log-driver": "1.2.5", + "minimist": "1.2.0", + "request": "2.79.0" + }, "dependencies": { - "caseless": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.11.0.tgz", - "integrity": "sha1-cVuW6phBWTzDMGeSP17GDr2k99c=", - "dev": true - }, - "har-validator": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", - "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", - "dev": true - }, - "qs": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", - "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", - "dev": true - }, - "request": { - "version": "2.79.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", - "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", - "dev": true - }, - "tunnel-agent": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", - "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", - "dev": true - }, - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } @@ -755,32 +1259,56 @@ "create-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", - "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=" + "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "requires": { + "cipher-base": "1.0.4", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "sha.js": "2.4.8" + } }, "create-hmac": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", - "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=" + "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "requires": { + "cipher-base": "1.0.4", + "create-hash": "1.1.3", + "inherits": "2.0.3", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.8" + } }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", - "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=" + "integrity": "sha1-O9/s3GCBR8HGcgL6KR59ylnqo7g=", + "dev": true, + "requires": { + "boom": "2.10.1" + } }, "crypto-js": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.8.tgz", - "integrity": "sha1-cV8HC/YBTyrpkqmLOSkli3E/CNU=" + "integrity": "sha1-cV8HC/YBTyrpkqmLOSkli3E/CNU=", + "dev": true }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true } } }, @@ -793,18 +1321,26 @@ "debug": { "version": "2.6.8", "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.8.tgz", - "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=" + "integrity": "sha1-5zFTHKLt4n0YgiJCfaF4IdaP9Pw=", + "dev": true, + "requires": { + "ms": "2.0.0" + } }, "decamelize": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "dev": true }, "deep-eql": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-2.0.2.tgz", "integrity": "sha1-sbrAblbwp2d3aG1Qyf63XC7XZ5o=", "dev": true, + "requires": { + "type-detect": "3.0.0" + }, "dependencies": { "type-detect": { "version": "3.0.0", @@ -817,7 +1353,8 @@ "deep-equal": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.0.1.tgz", - "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=" + "integrity": "sha1-9dJgKStmDghO/0zbyfCK0yR0SLU=", + "dev": true }, "deep-extend": { "version": "0.4.2", @@ -833,29 +1370,40 @@ "deferred-leveldown": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", - "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==" + "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "requires": { + "abstract-leveldown": "2.6.2" + } }, "define-properties": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", + "dev": true, + "requires": { + "foreach": "2.0.5", + "object-keys": "1.0.11" + }, "dependencies": { "object-keys": { "version": "1.0.11", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", - "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" + "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=", + "dev": true } } }, "defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", - "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=" + "integrity": "sha1-yY2bzvdWdBiOEQlpFRGZ45sfppM=", + "dev": true }, "delayed-stream": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "dev": true }, "delegates": { "version": "1.0.0", @@ -865,7 +1413,11 @@ "detect-indent": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/detect-indent/-/detect-indent-4.0.0.tgz", - "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=" + "integrity": "sha1-920GQ1LN9Docts5hnE7jqUdd4gg=", + "dev": true, + "requires": { + "repeating": "2.0.1" + } }, "diff": { "version": "1.4.0", @@ -876,38 +1428,67 @@ "dom-walk": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", - "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=" + "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", + "dev": true }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=" + "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "requires": { + "browserify-aes": "1.0.6", + "create-hash": "1.1.3", + "create-hmac": "1.1.6" + } }, "ecc-jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz", "integrity": "sha1-D8c6ntXw1Tw4GTOYUj735UN3dQU=", - "optional": true + "dev": true, + "optional": true, + "requires": { + "jsbn": "0.1.1" + } }, "elliptic": { "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", - "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=" + "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0", + "hash.js": "1.1.3", + "hmac-drbg": "1.0.1", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } }, "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", - "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=" + "integrity": "sha1-U4tm8+5izRq1HsMjgp0flIDHS+s=", + "dev": true, + "requires": { + "iconv-lite": "0.4.18" + } }, "end-of-stream": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", - "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=" + "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "requires": { + "once": "1.4.0" + } }, "errno": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "requires": { + "prr": "0.0.0" + }, "dependencies": { "prr": { "version": "0.0.0", @@ -919,35 +1500,64 @@ "error-ex": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.1.tgz", - "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=" + "integrity": "sha1-+FWobOYa3E6GIcPNoh56dhLDqNw=", + "dev": true, + "requires": { + "is-arrayish": "0.2.1" + } }, "es-abstract": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.7.0.tgz", - "integrity": "sha1-363ndOAb/Nl/lhgCmMRJyGI/uUw=" + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.8.0.tgz", + "integrity": "sha512-Cf9/h5MrXtExM20gSS55YFrGKCyPrRBjIVBtVyy8vmlsDfe0NPKMWj65tPLgzyfPuapWxh5whpXCtW4+AW5mRg==", + "dev": true, + "requires": { + "es-to-primitive": "1.1.1", + "function-bind": "1.1.0", + "has": "1.0.1", + "is-callable": "1.1.3", + "is-regex": "1.0.4" + } }, "es-to-primitive": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", - "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=" + "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", + "dev": true, + "requires": { + "is-callable": "1.1.3", + "is-date-object": "1.0.1", + "is-symbol": "1.0.1" + } }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "dev": true }, "escodegen": { "version": "1.8.1", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.8.1.tgz", "integrity": "sha1-WltTr0aTEQvrsIZ6o0MN07cKEBg=", "dev": true, + "requires": { + "esprima": "2.7.3", + "estraverse": "1.9.3", + "esutils": "2.0.2", + "optionator": "0.8.2", + "source-map": "0.2.0" + }, "dependencies": { "source-map": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz", "integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=", "dev": true, - "optional": true + "optional": true, + "requires": { + "amdefine": "1.0.1" + } } } }, @@ -966,27 +1576,60 @@ "esutils": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz", - "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=" + "integrity": "sha1-Cr9PHKpbyx96nYrMbepPqqBLrJs=", + "dev": true }, "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.16.tgz", + "integrity": "sha1-mh4Wnq00q3XgifUMpRK/0PvRJlU=" }, "ethereumjs-account": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.4.tgz", - "integrity": "sha1-+MMCMby3B/RRTYoFLB+doQNiTUc=" - }, - "ethereumjs-block": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.6.0.tgz", - "integrity": "sha1-ze1JYt6soe7xc3K00pDoSzXIQ3I=", + "integrity": "sha1-+MMCMby3B/RRTYoFLB+doQNiTUc=", + "requires": { + "ethereumjs-util": "4.5.0", + "rlp": "2.0.0" + }, "dependencies": { "ethereumjs-util": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", - "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "requires": { + "bn.js": "4.11.8", + "create-hash": "1.1.3", + "keccakjs": "0.2.1", + "rlp": "2.0.0", + "secp256k1": "3.3.0" + } + } + } + }, + "ethereumjs-block": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.2.2.tgz", + "integrity": "sha1-LsdTSlkCG47JuDww5JaQxuuu3aE=", + "requires": { + "async": "1.5.2", + "ethereum-common": "0.0.16", + "ethereumjs-tx": "1.1.2", + "ethereumjs-util": "4.5.0", + "merkle-patricia-tree": "2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "requires": { + "bn.js": "4.11.8", + "create-hash": "1.1.3", + "keccakjs": "0.2.1", + "rlp": "2.0.0", + "secp256k1": "3.3.0" + } } } }, @@ -999,217 +1642,181 @@ "ethereumjs-testrpc-sc": { "version": "git+https://github.com/sc-forks/testrpc-sc.git#a11b9b530caf2785ff24f749fa2d5b0cb59a2810", "dev": true, + "requires": { + "async": "1.5.2", + "bignumber.js": "2.1.4", + "bip39": "2.2.0", + "ethereumjs-account": "2.0.4", + "ethereumjs-block": "1.2.2", + "ethereumjs-tx": "1.1.2", + "ethereumjs-util": "5.1.2", + "ethereumjs-vm": "git+https://github.com/sc-forks/ethereumjs-vm-sc.git#328771cace30ed16ad5c1d13a69cda13d31173f9", + "ethereumjs-wallet": "0.6.0", + "fake-merkle-patricia-tree": "1.0.1", + "heap": "0.2.6", + "level-browserify": "1.1.1", + "level-sublevel": "6.6.1", + "merkle-patricia-tree": "2.1.2", + "seedrandom": "2.4.3", + "shelljs": "0.6.1", + "solc": "0.4.8", + "temp": "0.8.3", + "tmp": "0.0.31", + "web3": "0.16.0", + "web3-provider-engine": "git+https://github.com/sc-forks/provider-engine-sc.git#0e7af0eb99dfb21d399766bc031cf02e89536fe1", + "yargs": "3.29.0" + }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" - }, - "bignumber.js": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.1.4.tgz", - "integrity": "sha1-KbO7aT27I46Ity6sL7iWUIiLLVk=", - "dev": true - }, - "bip39": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-2.2.0.tgz", - "integrity": "sha1-QOc/cGdMJn8UjNv4N08qUL4Waw0=", - "dev": true - }, - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "ethereum-common": { - "version": "0.0.16", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.16.tgz", - "integrity": "sha1-mh4Wnq00q3XgifUMpRK/0PvRJlU=" - }, - "ethereumjs-block": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.2.2.tgz", - "integrity": "sha1-LsdTSlkCG47JuDww5JaQxuuu3aE=", - "dependencies": { - "ethereumjs-util": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", - "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=" - } - } - }, - "ethereumjs-tx": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.1.2.tgz", - "integrity": "sha1-wVFHfGIF0YYGAOKRCMPqyul+Kfo=", - "dependencies": { - "ethereum-common": { - "version": "0.0.17", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.17.tgz", - "integrity": "sha1-C1VMqdUSytyL4EVvvQAP/MOsT28=" - }, - "ethereumjs-util": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", - "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=" - } - } - }, - "ethereumjs-util": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", - "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=", - "dev": true - }, - "ethereumjs-vm": { - "version": "git+https://github.com/sc-forks/ethereumjs-vm-sc.git#328771cace30ed16ad5c1d13a69cda13d31173f9", - "dev": true, - "dependencies": { - "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", - "dev": true - }, - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", - "dev": true - }, - "ethereumjs-util": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", - "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", - "dev": true - } - } - }, "shelljs": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz", "integrity": "sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=", "dev": true - }, - "solc": { - "version": "0.4.8", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.8.tgz", - "integrity": "sha1-lqu+4SZjQa6X+0vcOrzJvBtQUqs=", - "dev": true, - "dependencies": { - "yargs": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", - "dev": true - } - } - }, - "web3": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-0.16.0.tgz", - "integrity": "sha1-pFVBdc1GKUMDWx8dOUMvdBxrYBk=", - "dev": true, - "dependencies": { - "bignumber.js": { - "version": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9", - "dev": true - } - } - }, - "web3-provider-engine": { - "version": "git+https://github.com/sc-forks/provider-engine-sc.git#0e7af0eb99dfb21d399766bc031cf02e89536fe1", - "dev": true, - "dependencies": { - "async": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", - "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==" - }, - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" - }, - "ethereumjs-tx": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.3.tgz", - "integrity": "sha1-7OBR0+/b53GtKlGNYWMsoqt17Ls=", - "dev": true - }, - "ethereumjs-vm": { - "version": "git+https://github.com/sc-forks/ethereumjs-vm-sc.git#328771cace30ed16ad5c1d13a69cda13d31173f9", - "dependencies": { - "ethereumjs-util": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", - "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=" - } - } - } - } - }, - "yargs": { - "version": "3.29.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz", - "integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=", - "dev": true, - "dependencies": { - "window-size": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", - "dev": true - } - } } } }, "ethereumjs-tx": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.3.tgz", - "integrity": "sha1-7OBR0+/b53GtKlGNYWMsoqt17Ls=", + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.1.2.tgz", + "integrity": "sha1-wVFHfGIF0YYGAOKRCMPqyul+Kfo=", + "requires": { + "ethereum-common": "0.0.17", + "ethereumjs-util": "4.5.0" + }, "dependencies": { + "ethereum-common": { + "version": "0.0.17", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.17.tgz", + "integrity": "sha1-C1VMqdUSytyL4EVvvQAP/MOsT28=" + }, "ethereumjs-util": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", - "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=" + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "requires": { + "bn.js": "4.11.8", + "create-hash": "1.1.3", + "keccakjs": "0.2.1", + "rlp": "2.0.0", + "secp256k1": "3.3.0" + } } } }, "ethereumjs-util": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", - "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=" + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", + "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=", + "dev": true, + "requires": { + "babel-preset-es2015": "6.24.1", + "babelify": "7.3.0", + "bn.js": "4.11.8", + "create-hash": "1.1.3", + "ethjs-util": "0.1.4", + "keccak": "1.3.0", + "rlp": "2.0.0", + "secp256k1": "3.3.0" + } }, "ethereumjs-vm": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ethereumjs-vm/-/ethereumjs-vm-2.2.0.tgz", - "integrity": "sha1-qyKWsaYo7+xFA/ZpHH2jzQ6R0yM=", + "version": "git+https://github.com/sc-forks/ethereumjs-vm-sc.git#328771cace30ed16ad5c1d13a69cda13d31173f9", + "dev": true, + "requires": { + "async": "2.5.0", + "async-eventemitter": "0.2.3", + "ethereum-common": "0.0.18", + "ethereumjs-account": "2.0.4", + "ethereumjs-block": "1.2.2", + "ethereumjs-util": "4.5.0", + "fake-merkle-patricia-tree": "1.0.1", + "functional-red-black-tree": "1.0.1", + "merkle-patricia-tree": "2.1.2" + }, "dependencies": { + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, "ethereum-common": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.1.0.tgz", - "integrity": "sha1-h03Q+uXpYqVsUOvyjvpv45SSsOc=" + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", + "dev": true + }, + "ethereumjs-util": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "create-hash": "1.1.3", + "keccakjs": "0.2.1", + "rlp": "2.0.0", + "secp256k1": "3.3.0" + } } } }, "ethereumjs-wallet": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/ethereumjs-wallet/-/ethereumjs-wallet-0.6.0.tgz", - "integrity": "sha1-gnY7Fpfuenlr5xVdqd+0my+Yz9s=" + "integrity": "sha1-gnY7Fpfuenlr5xVdqd+0my+Yz9s=", + "dev": true, + "requires": { + "aes-js": "0.2.4", + "bs58check": "1.3.4", + "ethereumjs-util": "4.5.0", + "hdkey": "0.7.1", + "scrypt.js": "0.2.0", + "utf8": "2.1.2", + "uuid": "2.0.3" + }, + "dependencies": { + "ethereumjs-util": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "create-hash": "1.1.3", + "keccakjs": "0.2.1", + "rlp": "2.0.0", + "secp256k1": "3.3.0" + } + }, + "uuid": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", + "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=", + "dev": true + } + } }, "ethjs-util": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.4.tgz", - "integrity": "sha1-HItoeSV0RO9NPz+7rC3tEs2ZfZM=" + "integrity": "sha1-HItoeSV0RO9NPz+7rC3tEs2ZfZM=", + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } }, "evp_bytestokey": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", - "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=" + "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", + "requires": { + "create-hash": "1.1.3" + } }, "expand-template": { "version": "1.0.3", @@ -1219,17 +1826,22 @@ "extend": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", - "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" + "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", + "dev": true }, "extsprintf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.0.2.tgz", - "integrity": "sha1-4QgOBljjALBilJkMxw4VAiNf1VA=" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", + "dev": true }, "fake-merkle-patricia-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", - "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=" + "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "requires": { + "checkpoint-store": "1.1.0" + } }, "fast-future": { "version": "1.0.2", @@ -1246,42 +1858,69 @@ "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", - "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=" + "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", + "dev": true, + "requires": { + "path-exists": "2.1.0", + "pinkie-promise": "2.0.1" + } }, "for-each": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.2.tgz", - "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=" + "integrity": "sha1-LEBFC5NI6X8oEyJZO6lnBLmr1NQ=", + "dev": true, + "requires": { + "is-function": "1.0.1" + } }, "foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", - "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=" + "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", + "dev": true }, "forever-agent": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=" + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true }, "form-data": { "version": "2.1.4", "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.1.4.tgz", - "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=" + "integrity": "sha1-M8GDrPGTJ27KqYFDpp6Uv+4XUNE=", + "dev": true, + "requires": { + "asynckit": "0.4.0", + "combined-stream": "1.0.5", + "mime-types": "2.1.16" + } }, "fs-extra": { "version": "0.30.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", - "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=" + "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "jsonfile": "2.4.0", + "klaw": "1.3.1", + "path-is-absolute": "1.0.1", + "rimraf": "2.6.1" + } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true }, "function-bind": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.0.tgz", - "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=" + "integrity": "sha1-FhdnFMgBeY5Ojyz391KUZ7tKV3E=", + "dev": true }, "functional-red-black-tree": { "version": "1.0.1", @@ -1291,7 +1930,17 @@ "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=" + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "requires": { + "aproba": "1.1.2", + "console-control-strings": "1.1.0", + "has-unicode": "2.0.1", + "object-assign": "4.1.1", + "signal-exit": "3.0.2", + "string-width": "1.0.2", + "strip-ansi": "3.0.1", + "wide-align": "1.1.2" + } }, "generate-function": { "version": "2.0.0", @@ -1303,12 +1952,16 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/generate-object-property/-/generate-object-property-1.2.0.tgz", "integrity": "sha1-nA4cQDCM6AT0eDYYuTf6iPmdUNA=", - "dev": true + "dev": true, + "requires": { + "is-property": "1.0.2" + } }, "get-caller-file": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz", - "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=" + "integrity": "sha1-9wLmMSfn4jHBYKgMFVSstw1QR+U=", + "dev": true }, "get-func-name": { "version": "2.0.0", @@ -1320,11 +1973,16 @@ "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", + "dev": true, + "requires": { + "assert-plus": "1.0.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true } } }, @@ -1336,22 +1994,38 @@ "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", - "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==" + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "global": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", - "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=" + "integrity": "sha1-52mJJopsdMOJCLEwWxD8DjlOnQ8=", + "dev": true, + "requires": { + "min-document": "2.19.0", + "process": "0.5.2" + } }, "globals": { "version": "9.18.0", "resolved": "https://registry.npmjs.org/globals/-/globals-9.18.0.tgz", - "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==" + "integrity": "sha512-S0nG3CLEQiY/ILxqtztTWH/3iRRdyBLw6KMDxnKMchrtbj2OFmehVh0WUCfW3DUrIgx/qFrJPICrq4Z4sTR9UQ==", + "dev": true }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", - "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true }, "graceful-readlink": { "version": "1.0.1", @@ -1370,40 +2044,53 @@ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.10.tgz", "integrity": "sha1-PTDHGLCaPZbyPqTMH0A8TTup/08=", "dev": true, + "requires": { + "async": "1.5.2", + "optimist": "0.6.1", + "source-map": "0.4.4", + "uglify-js": "2.8.29" + }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, "source-map": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz", "integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=", - "dev": true + "dev": true, + "requires": { + "amdefine": "1.0.1" + } } } }, - "har-schema": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-1.0.5.tgz", - "integrity": "sha1-0mMTX0MwfALGAq/I/pWXDAFRNp4=" - }, "har-validator": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-4.2.1.tgz", - "integrity": "sha1-M0gdDxu/9gDdID11gSpqX7oALio=" + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-2.0.6.tgz", + "integrity": "sha1-zcvAgYgmWtEZtqWnyKtw7s+10n0=", + "dev": true, + "requires": { + "chalk": "1.1.3", + "commander": "2.11.0", + "is-my-json-valid": "2.16.0", + "pinkie-promise": "2.0.1" + } }, "has": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has/-/has-1.0.1.tgz", - "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=" + "integrity": "sha1-hGFzP1OLCDfJNh45qauelwTcLyg=", + "dev": true, + "requires": { + "function-bind": "1.1.0" + } }, "has-ansi": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=" + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, + "requires": { + "ansi-regex": "2.1.1" + } }, "has-flag": { "version": "1.0.0", @@ -1419,22 +2106,41 @@ "hash-base": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", - "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=" + "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "requires": { + "inherits": "2.0.3" + } }, "hash.js": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", - "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==" + "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } }, "hawk": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/hawk/-/hawk-3.1.3.tgz", - "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=" + "integrity": "sha1-B4REvXwWQLD+VA0sm3PVlnjo4cQ=", + "dev": true, + "requires": { + "boom": "2.10.1", + "cryptiles": "2.0.5", + "hoek": "2.16.3", + "sntp": "1.0.9" + } }, "hdkey": { "version": "0.7.1", "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-0.7.1.tgz", - "integrity": "sha1-yu5L6BqneSHpCbjSKN0PKayu5jI=" + "integrity": "sha1-yu5L6BqneSHpCbjSKN0PKayu5jI=", + "dev": true, + "requires": { + "coinstring": "2.3.0", + "secp256k1": "3.3.0" + } }, "heap": { "version": "0.2.6", @@ -1445,32 +2151,51 @@ "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=" + "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "requires": { + "hash.js": "1.1.3", + "minimalistic-assert": "1.0.0", + "minimalistic-crypto-utils": "1.0.1" + } }, "hoek": { "version": "2.16.3", "resolved": "https://registry.npmjs.org/hoek/-/hoek-2.16.3.tgz", - "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=" + "integrity": "sha1-ILt0A9POo5jpHcRxCo/xuCdKJe0=", + "dev": true }, "home-or-tmp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/home-or-tmp/-/home-or-tmp-2.0.0.tgz", - "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=" + "integrity": "sha1-42w/LSyufXRqhX440Y1fMqeILbg=", + "dev": true, + "requires": { + "os-homedir": "1.0.2", + "os-tmpdir": "1.0.2" + } }, "hosted-git-info": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==", + "dev": true }, "http-signature": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.1.1.tgz", - "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=" + "integrity": "sha1-33LiZwZs0Kxn+3at+OE0qPvPkb8=", + "dev": true, + "requires": { + "assert-plus": "0.2.0", + "jsprim": "1.4.1", + "sshpk": "1.13.1" + } }, "iconv-lite": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", - "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==" + "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", + "dev": true }, "idb-wrapper": { "version": "1.7.1", @@ -1486,7 +2211,12 @@ "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=" + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } }, "inherits": { "version": "2.0.3", @@ -1507,17 +2237,23 @@ "invariant": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.2.tgz", - "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=" + "integrity": "sha1-nh9WrArNtr8wMwbzOL47IErmA2A=", + "dev": true, + "requires": { + "loose-envify": "1.3.1" + } }, "invert-kv": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", - "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", + "dev": true }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "dev": true }, "is-buffer": { "version": "1.1.5", @@ -1528,43 +2264,64 @@ "is-builtin-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-builtin-module/-/is-builtin-module-1.0.0.tgz", - "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=" + "integrity": "sha1-VAVy0096wxGfj3bDDLwbHgN6/74=", + "dev": true, + "requires": { + "builtin-modules": "1.1.1" + } }, "is-callable": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", - "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=" + "integrity": "sha1-hut1OSgF3cM69xySoO7fdO52BLI=", + "dev": true }, "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", - "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" + "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", + "dev": true }, "is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", - "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=" + "integrity": "sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko=", + "dev": true, + "requires": { + "number-is-nan": "1.0.1" + } }, "is-fullwidth-code-point": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=" + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "1.0.1" + } }, "is-function": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", - "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" + "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", + "dev": true }, "is-hex-prefixed": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" + "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=", + "dev": true }, "is-my-json-valid": { "version": "2.16.0", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz", "integrity": "sha1-8Hndm/2uZe4gOKrorLyGqxCeNpM=", - "dev": true + "dev": true, + "requires": { + "generate-function": "2.0.0", + "generate-object-property": "1.2.0", + "jsonpointer": "4.0.1", + "xtend": "4.0.1" + } }, "is-property": { "version": "1.0.2", @@ -1575,27 +2332,35 @@ "is-regex": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", - "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=" + "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", + "dev": true, + "requires": { + "has": "1.0.1" + } }, "is-stream": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=" + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "dev": true }, "is-symbol": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", - "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=" + "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", + "dev": true }, "is-typedarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true }, "is-utf8": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", - "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=", + "dev": true }, "isarray": { "version": "1.0.0", @@ -1617,30 +2382,53 @@ "isomorphic-fetch": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", - "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=" + "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", + "dev": true, + "requires": { + "node-fetch": "1.7.2", + "whatwg-fetch": "2.0.3" + } }, "isstream": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "dev": true }, "istanbul": { "version": "0.4.5", "resolved": "https://registry.npmjs.org/istanbul/-/istanbul-0.4.5.tgz", "integrity": "sha1-ZcfXPUxNqE1POsMQuRj7C4Azczs=", "dev": true, + "requires": { + "abbrev": "1.0.9", + "async": "1.5.2", + "escodegen": "1.8.1", + "esprima": "2.7.3", + "glob": "5.0.15", + "handlebars": "4.0.10", + "js-yaml": "3.6.1", + "mkdirp": "0.5.1", + "nopt": "3.0.6", + "once": "1.4.0", + "resolve": "1.1.7", + "supports-color": "3.2.3", + "which": "1.3.0", + "wordwrap": "1.0.0" + }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, "glob": { "version": "5.0.15", "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", - "dev": true + "dev": true, + "requires": { + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "resolve": { "version": "1.1.7", @@ -1652,7 +2440,10 @@ "version": "3.2.3", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.2.3.tgz", "integrity": "sha1-ZawFBLOVQXHYpklGsq48u4pfVPY=", - "dev": true + "dev": true, + "requires": { + "has-flag": "1.0.0" + } } } }, @@ -1661,6 +2452,10 @@ "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", "dev": true, + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, "dependencies": { "commander": { "version": "0.6.1", @@ -1684,39 +2479,43 @@ "js-tokens": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz", - "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=" + "integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=", + "dev": true }, "js-yaml": { "version": "3.6.1", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.6.1.tgz", "integrity": "sha1-bl/mfYsgXOTSL60Ft3geja3MSzA=", - "dev": true + "dev": true, + "requires": { + "argparse": "1.0.9", + "esprima": "2.7.3" + } }, "jsbn": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", + "dev": true, "optional": true }, "jsesc": { "version": "0.5.0", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=" + "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", + "dev": true }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=" - }, - "json-stable-stringify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", - "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=" + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", + "dev": true }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=" + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "dev": true }, "json3": { "version": "3.3.2", @@ -1727,17 +2526,17 @@ "json5": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/json5/-/json5-0.5.1.tgz", - "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=" + "integrity": "sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=", + "dev": true }, "jsonfile": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=" - }, - "jsonify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", - "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=" + "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } }, "jsonpointer": { "version": "4.0.1", @@ -1746,37 +2545,64 @@ "dev": true }, "jsprim": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.0.tgz", - "integrity": "sha1-o7h+QCmNjDgFUtjMdiigu5WiKRg=", + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" + }, "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true } } }, "keccak": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/keccak/-/keccak-1.3.0.tgz", - "integrity": "sha512-JgsKPxYhcJxKrV+TrCyg/GwZbOjhpRPrz2kG8xbAsUaIDelUlKjm08YcwBO9Fm8sqf/Kg8ZWkk6nWujhLykfvw==" + "integrity": "sha512-JgsKPxYhcJxKrV+TrCyg/GwZbOjhpRPrz2kG8xbAsUaIDelUlKjm08YcwBO9Fm8sqf/Kg8ZWkk6nWujhLykfvw==", + "dev": true, + "requires": { + "bindings": "1.3.0", + "inherits": "2.0.3", + "nan": "2.6.2", + "prebuild-install": "2.2.2", + "safe-buffer": "5.1.1" + } }, "keccakjs": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/keccakjs/-/keccakjs-0.2.1.tgz", - "integrity": "sha1-HWM6+QfvMFu/ny+mFtVsRFYd+k0=" + "integrity": "sha1-HWM6+QfvMFu/ny+mFtVsRFYd+k0=", + "requires": { + "browserify-sha3": "0.0.1", + "sha3": "1.2.0" + } }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } }, "klaw": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz", - "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=" + "integrity": "sha1-QIhDO0azsbolnXh4XY6W9zugJDk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11" + } }, "lazy-cache": { "version": "1.0.4", @@ -1788,7 +2614,11 @@ "lcid": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", - "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=" + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "dev": true, + "requires": { + "invert-kv": "1.0.0" + } }, "lcov-parse": { "version": "0.0.10", @@ -1800,7 +2630,12 @@ "version": "1.1.1", "resolved": "https://registry.npmjs.org/level-browserify/-/level-browserify-1.1.1.tgz", "integrity": "sha1-Ebk/h0yHIy3HUJrWGlkM5lyvBQM=", - "dev": true + "dev": true, + "requires": { + "level-js": "2.2.4", + "level-packager": "1.2.1", + "leveldown": "1.7.2" + } }, "level-codec": { "version": "7.0.0", @@ -1810,12 +2645,21 @@ "level-errors": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.4.tgz", - "integrity": "sha1-NYXmI5dMc3qTdVSSpDwCZ82kQl8=" + "integrity": "sha1-NYXmI5dMc3qTdVSSpDwCZ82kQl8=", + "requires": { + "errno": "0.1.4" + } }, "level-iterator-stream": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "requires": { + "inherits": "2.0.3", + "level-errors": "1.0.4", + "readable-stream": "1.1.14", + "xtend": "4.0.1" + }, "dependencies": { "isarray": { "version": "0.0.1", @@ -1825,7 +2669,13 @@ "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", - "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=" + "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } }, "string_decoder": { "version": "0.10.31", @@ -1839,12 +2689,23 @@ "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", "integrity": "sha1-vAVfQYBjXUSJtWHJSG+jcOjBFpc=", "dev": true, + "requires": { + "abstract-leveldown": "0.12.4", + "idb-wrapper": "1.7.1", + "isbuffer": "0.0.0", + "ltgt": "2.1.3", + "typedarray-to-buffer": "1.0.4", + "xtend": "2.1.2" + }, "dependencies": { "abstract-leveldown": { "version": "0.12.4", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", "integrity": "sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=", "dev": true, + "requires": { + "xtend": "3.0.0" + }, "dependencies": { "xtend": { "version": "3.0.0", @@ -1858,7 +2719,10 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true + "dev": true, + "requires": { + "object-keys": "0.4.0" + } } } }, @@ -1866,25 +2730,43 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-1.2.1.tgz", "integrity": "sha1-Bn/t/Qcrf+PGvsYIDAy9SmsuEfQ=", - "dev": true + "dev": true, + "requires": { + "levelup": "1.3.9" + } }, "level-post": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/level-post/-/level-post-1.0.5.tgz", "integrity": "sha1-KmY5BAm/ahYhpES6tvAWREzJgCw=", - "dev": true + "dev": true, + "requires": { + "ltgt": "2.1.3" + } }, "level-sublevel": { "version": "6.6.1", "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.1.tgz", "integrity": "sha1-+ad/dSGrcKj46S7VbyGjx4hqRIU=", "dev": true, + "requires": { + "bytewise": "1.1.0", + "levelup": "0.19.1", + "ltgt": "2.1.3", + "pull-level": "2.0.3", + "pull-stream": "3.6.0", + "typewiselite": "1.0.0", + "xtend": "4.0.1" + }, "dependencies": { "abstract-leveldown": { "version": "0.12.4", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", "integrity": "sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=", "dev": true, + "requires": { + "xtend": "3.0.0" + }, "dependencies": { "xtend": { "version": "3.0.0", @@ -1898,13 +2780,19 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", "integrity": "sha1-yba8oI0bwuoA/Ir7Txpf0eHGbk4=", - "dev": true + "dev": true, + "requires": { + "readable-stream": "1.0.34" + } }, "deferred-leveldown": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", "integrity": "sha1-LO8fER4cV4cNi7uK8mUOWHzS9bQ=", - "dev": true + "dev": true, + "requires": { + "abstract-leveldown": "0.12.4" + } }, "isarray": { "version": "0.0.1", @@ -1917,6 +2805,15 @@ "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.19.1.tgz", "integrity": "sha1-86anIFJyxLXzXkEv8ASgOgrt9Qs=", "dev": true, + "requires": { + "bl": "0.8.2", + "deferred-leveldown": "0.2.0", + "errno": "0.1.4", + "prr": "0.0.0", + "readable-stream": "1.0.34", + "semver": "5.1.1", + "xtend": "3.0.0" + }, "dependencies": { "xtend": { "version": "3.0.0", @@ -1936,7 +2833,13 @@ "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", - "dev": true + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } }, "semver": { "version": "5.1.1", @@ -1956,6 +2859,10 @@ "version": "0.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "requires": { + "readable-stream": "1.0.34", + "xtend": "2.1.2" + }, "dependencies": { "isarray": { "version": "0.0.1", @@ -1965,7 +2872,13 @@ "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=" + "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "0.0.1", + "string_decoder": "0.10.31" + } }, "string_decoder": { "version": "0.10.31", @@ -1975,7 +2888,10 @@ "xtend": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=" + "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "requires": { + "object-keys": "0.4.0" + } } } }, @@ -1984,6 +2900,13 @@ "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-1.7.2.tgz", "integrity": "sha1-XjRnuyfuJGpKe429j7KxYgam64s=", "dev": true, + "requires": { + "abstract-leveldown": "2.6.2", + "bindings": "1.2.1", + "fast-future": "1.0.2", + "nan": "2.6.2", + "prebuild-install": "2.2.2" + }, "dependencies": { "bindings": { "version": "1.2.1", @@ -1996,18 +2919,39 @@ "levelup": { "version": "1.3.9", "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", - "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==" + "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "requires": { + "deferred-leveldown": "1.2.2", + "level-codec": "7.0.0", + "level-errors": "1.0.4", + "level-iterator-stream": "1.3.1", + "prr": "1.0.1", + "semver": "5.4.1", + "xtend": "4.0.1" + } }, "levn": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", - "dev": true + "dev": true, + "requires": { + "prelude-ls": "1.1.2", + "type-check": "0.3.2" + } }, "load-json-file": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", - "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=" + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "pinkie-promise": "2.0.1", + "strip-bom": "2.0.0" + } }, "lodash": { "version": "4.17.4", @@ -2018,7 +2962,11 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz", "integrity": "sha1-jDigmVAPIVrQnlnxci/QxSv+Ck4=", - "dev": true + "dev": true, + "requires": { + "lodash._basecopy": "3.0.1", + "lodash.keys": "3.1.2" + } }, "lodash._basecopy": { "version": "3.0.1", @@ -2047,13 +2995,19 @@ "lodash.assign": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/lodash.assign/-/lodash.assign-4.2.0.tgz", - "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=" + "integrity": "sha1-DZnzzNem0mHRm9rrkkUAXShYCOc=", + "dev": true }, "lodash.create": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/lodash.create/-/lodash.create-3.1.1.tgz", "integrity": "sha1-1/KEnw29p+BGgruM1yqwIkYd6+c=", - "dev": true + "dev": true, + "requires": { + "lodash._baseassign": "3.2.0", + "lodash._basecreate": "3.0.3", + "lodash._isiterateecall": "3.0.9" + } }, "lodash.isarguments": { "version": "3.1.0", @@ -2071,7 +3025,12 @@ "version": "3.1.2", "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-3.1.2.tgz", "integrity": "sha1-TbwEcrFWvlCgsoaFXRvQsMZWCYo=", - "dev": true + "dev": true, + "requires": { + "lodash._getnative": "3.9.1", + "lodash.isarguments": "3.1.0", + "lodash.isarray": "3.0.4" + } }, "log-driver": { "version": "1.2.5", @@ -2094,7 +3053,11 @@ "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", - "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=" + "integrity": "sha1-0aitM/qc4OcT1l/dCsi3SNR4yEg=", + "dev": true, + "requires": { + "js-tokens": "3.0.2" + } }, "lru-cache": { "version": "2.7.3", @@ -2111,45 +3074,82 @@ "version": "1.2.4", "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.2.4.tgz", "integrity": "sha1-zZo0qvB01TRFonEQjrS43U7A8n8=", + "requires": { + "abstract-leveldown": "2.4.1", + "functional-red-black-tree": "1.0.1", + "immediate": "3.2.3", + "inherits": "2.0.3", + "ltgt": "2.1.3" + }, "dependencies": { "abstract-leveldown": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.4.1.tgz", - "integrity": "sha1-s7/tuITraToSd18MVenwpCDM7mQ=" + "integrity": "sha1-s7/tuITraToSd18MVenwpCDM7mQ=", + "requires": { + "xtend": "4.0.1" + } } } }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=" + "integrity": "sha1-htcJCzDORV1j+64S3aUaR93K+bI=", + "dev": true }, "merkle-patricia-tree": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.1.2.tgz", "integrity": "sha1-ckSD1Ut1YxpI/t2lXhFAUXBqcpE=", + "requires": { + "async": "1.5.2", + "ethereumjs-util": "4.5.0", + "level-ws": "0.0.0", + "levelup": "1.3.9", + "memdown": "1.2.4", + "readable-stream": "2.3.3", + "rlp": "2.0.0", + "semaphore": "1.1.0" + }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "ethereumjs-util": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "requires": { + "bn.js": "4.11.8", + "create-hash": "1.1.3", + "keccakjs": "0.2.1", + "rlp": "2.0.0", + "secp256k1": "3.3.0" + } } } }, "mime-db": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", - "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=" + "integrity": "sha1-SNJtI1WJZRcErFkWygYAGRQmaHg=", + "dev": true }, "mime-types": { "version": "2.1.16", "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.16.tgz", - "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=" + "integrity": "sha1-K4WKUuXs1RbbiXrCvodIeDBpjiM=", + "dev": true, + "requires": { + "mime-db": "1.29.0" + } }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", - "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=" + "integrity": "sha1-e9KC4/WELtKVu3SM3Z8f+iyCRoU=", + "dev": true, + "requires": { + "dom-walk": "0.1.1" + } }, "minimalistic-assert": { "version": "1.0.0", @@ -2164,23 +3164,23 @@ "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==" + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.8" + } }, "minimist": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", - "dependencies": { - "minimist": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" - } + "requires": { + "minimist": "0.0.8" } }, "mocha": { @@ -2188,6 +3188,18 @@ "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", "dev": true, + "requires": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.11", + "growl": "1.9.2", + "jade": "0.26.3", + "mkdirp": "0.5.1", + "supports-color": "1.2.0", + "to-iso-string": "0.0.2" + }, "dependencies": { "commander": { "version": "2.3.0", @@ -2199,7 +3211,10 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", - "dev": true + "dev": true, + "requires": { + "ms": "0.7.1" + } }, "escape-string-regexp": { "version": "1.0.2", @@ -2211,13 +3226,21 @@ "version": "3.2.11", "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", - "dev": true + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimatch": "0.3.0" + } }, "minimatch": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", - "dev": true + "dev": true, + "requires": { + "lru-cache": "2.7.3", + "sigmund": "1.0.1" + } }, "ms": { "version": "0.7.1", @@ -2248,7 +3271,8 @@ "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true }, "nan": { "version": "2.6.2", @@ -2261,9 +3285,14 @@ "integrity": "sha512-AbW35CPRE4vdieOse46V+16dKispLNv3PQwgqlcfg7GQeQHcLu3gvp3fbU2gTh7d8NfGjp5CJh+j4Hpyb0XzaA==" }, "node-fetch": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.1.tgz", - "integrity": "sha512-j8XsFGCLw79vWXkZtMSmmLaOk9z5SQ9bV/tkbZVCqvgwzrjAGq66igobLofHtF63NvMTp2WjytpsNTGKa+XRIQ==" + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.2.tgz", + "integrity": "sha512-xZZUq2yDhKMIn/UgG5q//IZSNLJIwW2QxS14CNH5spuiXkITM2pUitjdq58yLSaU7m4M0wBNaM2Gh/ggY4YJig==", + "dev": true, + "requires": { + "encoding": "0.1.12", + "is-stream": "1.1.0" + } }, "noop-logger": { "version": "0.1.1", @@ -2274,17 +3303,33 @@ "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", "integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=", - "dev": true + "dev": true, + "requires": { + "abbrev": "1.0.9" + } }, "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==" + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", + "dev": true, + "requires": { + "hosted-git-info": "2.5.0", + "is-builtin-module": "1.0.0", + "semver": "5.4.1", + "validate-npm-package-license": "3.0.1" + } }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==" + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "requires": { + "are-we-there-yet": "1.1.4", + "console-control-strings": "1.1.0", + "gauge": "2.7.4", + "set-blocking": "2.0.0" + } }, "number-is-nan": { "version": "1.0.1", @@ -2294,7 +3339,8 @@ "oauth-sign": { "version": "0.8.2", "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.8.2.tgz", - "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=" + "integrity": "sha1-Rqarfwrq2N6unsBWV4C31O/rnUM=", + "dev": true }, "object-assign": { "version": "4.1.1", @@ -2302,9 +3348,10 @@ "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, "object-inspect": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.2.2.tgz", - "integrity": "sha1-yCEV5PzIiK6hTWTCLk8X9qcNXlo=" + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.3.0.tgz", + "integrity": "sha512-OHHnLgLNXpM++GnJRyyhbr2bwl3pPVm4YvaraHrRvDt/N3r+s/gDVHciA7EJBTkijKXj61ssgSAikq1fb0IBRg==", + "dev": true }, "object-keys": { "version": "0.4.0", @@ -2314,20 +3361,21 @@ "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=" + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1.0.2" + } }, "optimist": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", "dev": true, + "requires": { + "minimist": "0.0.8", + "wordwrap": "0.0.3" + }, "dependencies": { - "minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, "wordwrap": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", @@ -2340,7 +3388,15 @@ "version": "0.8.2", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz", "integrity": "sha1-NkxeQJ0/TWMB1sC0wFu6UBgK62Q=", - "dev": true + "dev": true, + "requires": { + "deep-is": "0.1.3", + "fast-levenshtein": "2.0.6", + "levn": "0.3.0", + "prelude-ls": "1.1.2", + "type-check": "0.3.2", + "wordwrap": "1.0.0" + } }, "original-require": { "version": "1.0.1", @@ -2356,42 +3412,68 @@ "os-locale": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", - "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=" + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "dev": true, + "requires": { + "lcid": "1.0.0" + } }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=" + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, "parse-headers": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", - "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=" + "integrity": "sha1-aug6eqJanZtwCswoaYzR8e1+lTY=", + "dev": true, + "requires": { + "for-each": "0.3.2", + "trim": "0.0.1" + } }, "parse-json": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", - "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=" + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "dev": true, + "requires": { + "error-ex": "1.3.1" + } }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", - "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=" + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "dev": true, + "requires": { + "pinkie-promise": "2.0.1" + } }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true }, "path-parse": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", - "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=" + "integrity": "sha1-PBrfhx6pzWyUMbbqK9dKD/BVxME=", + "dev": true }, "path-type": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", - "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=" + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "pify": "2.3.0", + "pinkie-promise": "2.0.1" + } }, "pathval": { "version": "1.1.0", @@ -2400,9 +3482,17 @@ "dev": true }, "pbkdf2": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.12.tgz", - "integrity": "sha1-vjZ4XFBn6kjYBv+SMojF91C2uKI=" + "version": "3.0.13", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.13.tgz", + "integrity": "sha512-+dCHxDH+djNtjgWmvVC/my3SYBAKpKNqKSjLkp+GtWWYe4XPE+e/PSD2aCanlEZZnqPk2uekTKNC/ccbwd2X2Q==", + "dev": true, + "requires": { + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "ripemd160": "2.0.1", + "safe-buffer": "5.1.1", + "sha.js": "2.4.8" + } }, "pegjs": { "version": "0.10.0", @@ -2410,30 +3500,62 @@ "integrity": "sha1-z4uvrm7d/0tafvsYUmnqr0YQ3b0=", "dev": true }, - "performance-now": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-0.2.0.tgz", - "integrity": "sha1-M+8wxcd9TqIcWlOGnZG1bY8lVeU=" - }, "pify": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + "dev": true }, "pinkie": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true }, "pinkie-promise": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=" + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "dev": true, + "requires": { + "pinkie": "2.0.4" + } }, "prebuild-install": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.2.1.tgz", - "integrity": "sha512-y/sgNJ49vjXQ3qYdSI/jTRZq6D7g5Q2euK6x0/L8dvwK1EGvNLidtg2t4PZzTgkR6LahkzpYVshOmHKYtp0AlQ==" + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.2.2.tgz", + "integrity": "sha512-F46pcvDxtQhbV3B+dm+exHuKxIyJK26fVNiJRmbTW/5D7o0Z2yzc8CKeu7UWbo9XxQZoVOC88aKgySAsza+cWw==", + "requires": { + "expand-template": "1.0.3", + "github-from-package": "0.0.0", + "minimist": "1.2.0", + "mkdirp": "0.5.1", + "node-abi": "2.1.0", + "noop-logger": "0.1.1", + "npmlog": "4.1.2", + "os-homedir": "1.0.2", + "pump": "1.0.2", + "rc": "1.2.1", + "simple-get": "1.4.3", + "tar-fs": "1.15.3", + "tunnel-agent": "0.6.0", + "xtend": "4.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + }, + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "requires": { + "safe-buffer": "5.1.1" + } + } + } }, "prelude-ls": { "version": "1.1.2", @@ -2444,12 +3566,14 @@ "private": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", - "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=" + "integrity": "sha1-aM5eih7woju1cMwoU3tTMqumPvE=", + "dev": true }, "process": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/process/-/process-0.5.2.tgz", - "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=" + "integrity": "sha1-FjjYqONML0QKkduVq5rrZ3/Bhc8=", + "dev": true }, "process-nextick-args": { "version": "1.0.7", @@ -2471,13 +3595,26 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/pull-level/-/pull-level-2.0.3.tgz", "integrity": "sha1-lQBjXiV5Rdb+7eGF9deiR3NFWxc=", - "dev": true + "dev": true, + "requires": { + "level-post": "1.0.5", + "pull-cat": "1.1.11", + "pull-live": "1.0.1", + "pull-pushable": "2.1.1", + "pull-stream": "3.6.0", + "pull-window": "2.1.4", + "stream-to-pull-stream": "1.7.2" + } }, "pull-live": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/pull-live/-/pull-live-1.0.1.tgz", "integrity": "sha1-pOzuAeMwFV6RJLu89HYfIbOPUfU=", - "dev": true + "dev": true, + "requires": { + "pull-cat": "1.1.11", + "pull-stream": "3.6.0" + } }, "pull-pushable": { "version": "2.1.1", @@ -2495,83 +3632,151 @@ "version": "2.1.4", "resolved": "https://registry.npmjs.org/pull-window/-/pull-window-2.1.4.tgz", "integrity": "sha1-/DuG/uvRkgx64pdpHiP3BfiFUvA=", - "dev": true + "dev": true, + "requires": { + "looper": "2.0.0" + } }, "pump": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", - "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=" + "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=", + "requires": { + "end-of-stream": "1.4.0", + "once": "1.4.0" + } }, "punycode": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=" + "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "dev": true }, "qs": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.4.0.tgz", - "integrity": "sha1-E+JtKK1rD/qpExLNO/cI7TUecjM=" + "version": "6.3.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.3.2.tgz", + "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", + "dev": true }, "randombytes": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", - "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==" + "integrity": "sha512-8T7Zn1AhMsQ/HI1SjcCfT/t4ii3eAqco3yOcSzS4mozsOz69lHLsoMXmF9nZgnFanYscnSlUSgs8uZyKzpE6kg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.1" + } }, "rc": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", - "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=" + "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "requires": { + "deep-extend": "0.4.2", + "ini": "1.3.4", + "minimist": "1.2.0", + "strip-json-comments": "2.0.1" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + } + } }, "read-pkg": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", - "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=" + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "dev": true, + "requires": { + "load-json-file": "1.1.0", + "normalize-package-data": "2.4.0", + "path-type": "1.1.0" + } }, "read-pkg-up": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", - "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=" + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "dev": true, + "requires": { + "find-up": "1.1.2", + "read-pkg": "1.1.0" + } }, "readable-stream": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", - "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==" + "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "1.0.7", + "safe-buffer": "5.1.1", + "string_decoder": "1.0.3", + "util-deprecate": "1.0.2" + } }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=", - "dev": true + "dev": true, + "requires": { + "resolve": "1.4.0" + } }, "regenerate": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.3.2.tgz", - "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=" + "integrity": "sha1-0ZQcZ7rUN+G+dkM63Vs4X5WxkmA=", + "dev": true }, "regenerator-runtime": { "version": "0.10.5", "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.10.5.tgz", - "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=" + "integrity": "sha1-M2w+/BIgrc7dosn6tntaeVWjNlg=", + "dev": true }, "regenerator-transform": { "version": "0.9.11", "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.9.11.tgz", - "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=" + "integrity": "sha1-On0GdSDLe3F2dp61/4aGkb7+EoM=", + "dev": true, + "requires": { + "babel-runtime": "6.25.0", + "babel-types": "6.25.0", + "private": "0.1.7" + } }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", - "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=" + "integrity": "sha1-SdA4g3uNz4v6W5pCE5k45uoq4kA=", + "dev": true, + "requires": { + "regenerate": "1.3.2", + "regjsgen": "0.2.0", + "regjsparser": "0.1.5" + } }, "regjsgen": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.2.0.tgz", - "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=" + "integrity": "sha1-bAFq3qxVT3WCP+N6wFuS1aTtsfc=", + "dev": true }, "regjsparser": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.1.5.tgz", - "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=" + "integrity": "sha1-fuj4Tcb6eS0/0K4ijSS9lJ6tIFw=", + "dev": true, + "requires": { + "jsesc": "0.5.0" + } }, "repeat-string": { "version": "1.6.1", @@ -2582,51 +3787,84 @@ "repeating": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz", - "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=" + "integrity": "sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo=", + "dev": true, + "requires": { + "is-finite": "1.0.2" + } }, "req-cwd": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/req-cwd/-/req-cwd-1.0.1.tgz", "integrity": "sha1-DXOurpJm5penj3l2AZZ352rPD/8=", - "dev": true + "dev": true, + "requires": { + "req-from": "1.0.1" + } }, "req-from": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/req-from/-/req-from-1.0.1.tgz", "integrity": "sha1-v4HaUUeUfTLRO5R9wSpYrUWHNQ4=", - "dev": true + "dev": true, + "requires": { + "resolve-from": "2.0.0" + } }, "request": { - "version": "2.81.0", - "resolved": "https://registry.npmjs.org/request/-/request-2.81.0.tgz", - "integrity": "sha1-xpKJRqDgbF+Nb4qTM0af/aRimKA=", - "dependencies": { - "uuid": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", - "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==" - } + "version": "2.79.0", + "resolved": "https://registry.npmjs.org/request/-/request-2.79.0.tgz", + "integrity": "sha1-Tf5b9r6LjNw3/Pk+BLZVd3InEN4=", + "dev": true, + "requires": { + "aws-sign2": "0.6.0", + "aws4": "1.6.0", + "caseless": "0.11.0", + "combined-stream": "1.0.5", + "extend": "3.0.1", + "forever-agent": "0.6.1", + "form-data": "2.1.4", + "har-validator": "2.0.6", + "hawk": "3.1.3", + "http-signature": "1.1.1", + "is-typedarray": "1.0.0", + "isstream": "0.1.2", + "json-stringify-safe": "5.0.1", + "mime-types": "2.1.16", + "oauth-sign": "0.8.2", + "qs": "6.3.2", + "stringstream": "0.0.5", + "tough-cookie": "2.3.2", + "tunnel-agent": "0.4.3", + "uuid": "3.1.0" } }, "require-directory": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "dev": true }, "require-from-string": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-1.2.1.tgz", - "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=" + "integrity": "sha1-UpyczvJzgK3+yaL5ZbZJu+5jZBg=", + "dev": true }, "require-main-filename": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "dev": true }, "resolve": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.3.3.tgz", - "integrity": "sha1-ZVkHw0aahoDcLeOidaj91paR8OU=" + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.4.0.tgz", + "integrity": "sha512-aW7sVKPufyHqOmyyLzg/J+8606v5nevBgaliIlV7nUpVMsDnoBGV/cbSLNjZAg9q0Cfd/+easKVKQ8vOu8fn1Q==", + "dev": true, + "requires": { + "path-parse": "1.0.5" + } }, "resolve-from": { "version": "2.0.0", @@ -2637,24 +3875,39 @@ "resumer": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/resumer/-/resumer-0.0.0.tgz", - "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=" + "integrity": "sha1-8ej0YeQGS6Oegq883CqMiT0HZ1k=", + "dev": true, + "requires": { + "through": "2.3.8" + } }, "right-align": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, - "optional": true + "optional": true, + "requires": { + "align-text": "0.1.4" + } }, "rimraf": { "version": "2.6.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.1.tgz", - "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=" + "integrity": "sha1-wjOOxkPfeht/5cVPqG9XQopV8z0=", + "dev": true, + "requires": { + "glob": "7.1.2" + } }, "ripemd160": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", - "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=" + "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "requires": { + "hash-base": "2.0.2", + "inherits": "2.0.3" + } }, "rlp": { "version": "2.0.0", @@ -2669,22 +3922,46 @@ "scrypt": { "version": "6.0.3", "resolved": "https://registry.npmjs.org/scrypt/-/scrypt-6.0.3.tgz", - "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=" + "integrity": "sha1-BOAUpWgrU/pQwtXM4WfXGcBthw0=", + "dev": true, + "requires": { + "nan": "2.6.2" + } }, "scrypt.js": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/scrypt.js/-/scrypt.js-0.2.0.tgz", - "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=" + "integrity": "sha1-r40UZbcemZARC+38WTuUeeA6ito=", + "dev": true, + "requires": { + "scrypt": "6.0.3", + "scryptsy": "1.2.1" + } }, "scryptsy": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/scryptsy/-/scryptsy-1.2.1.tgz", - "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=" + "integrity": "sha1-oyJfpLJST4AnAHYeKFW987LZIWM=", + "dev": true, + "requires": { + "pbkdf2": "3.0.13" + } }, "secp256k1": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.3.0.tgz", - "integrity": "sha512-CbrQoeGG5V0kQ1ohEMGI+J7oKerapLTpivLICBaXR0R4HyQcN3kM9itLsV5fdpV1UR1bD14tOkJ1xughmlDIiQ==" + "integrity": "sha512-CbrQoeGG5V0kQ1ohEMGI+J7oKerapLTpivLICBaXR0R4HyQcN3kM9itLsV5fdpV1UR1bD14tOkJ1xughmlDIiQ==", + "requires": { + "bindings": "1.3.0", + "bip66": "1.1.5", + "bn.js": "4.11.8", + "create-hash": "1.1.3", + "drbg.js": "1.0.1", + "elliptic": "6.4.0", + "nan": "2.6.2", + "prebuild-install": "2.2.2", + "safe-buffer": "5.1.1" + } }, "seedrandom": { "version": "2.4.3", @@ -2693,9 +3970,9 @@ "dev": true }, "semaphore": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.0.5.tgz", - "integrity": "sha1-tJJXbmavGT25XWXiXsU/Xxl5jWA=" + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" }, "semver": { "version": "5.4.1", @@ -2710,18 +3987,29 @@ "sha.js": { "version": "2.4.8", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", - "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=" + "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "requires": { + "inherits": "2.0.3" + } }, "sha3": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/sha3/-/sha3-1.2.0.tgz", - "integrity": "sha1-aYnxtwpJhwWHajc+LGKs6WqpOZo=" + "integrity": "sha1-aYnxtwpJhwWHajc+LGKs6WqpOZo=", + "requires": { + "nan": "2.6.2" + } }, "shelljs": { "version": "0.7.8", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", "integrity": "sha1-3svPh0sNHl+3LhSxZKloMEjprLM=", - "dev": true + "dev": true, + "requires": { + "glob": "7.1.2", + "interpret": "1.0.3", + "rechoir": "0.6.2" + } }, "sigmund": { "version": "1.0.1", @@ -2737,17 +4025,27 @@ "simple-get": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", - "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=" + "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=", + "requires": { + "once": "1.4.0", + "unzip-response": "1.0.2", + "xtend": "4.0.1" + } }, "slash": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=" + "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", + "dev": true }, "sntp": { "version": "1.0.9", "resolved": "https://registry.npmjs.org/sntp/-/sntp-1.0.9.tgz", - "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=" + "integrity": "sha1-ZUEYTMkK7qbG57NeJlkIJEPGYZg=", + "dev": true, + "requires": { + "hoek": "2.16.3" + } }, "sol-explore": { "version": "1.6.2", @@ -2756,44 +4054,128 @@ "dev": true }, "solc": { - "version": "0.4.14", - "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.14.tgz", - "integrity": "sha1-phS7zxWYOePwIh0cQbudq53Hg/4=" + "version": "0.4.8", + "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.8.tgz", + "integrity": "sha1-lqu+4SZjQa6X+0vcOrzJvBtQUqs=", + "dev": true, + "requires": { + "fs-extra": "0.30.0", + "memorystream": "0.3.1", + "require-from-string": "1.2.1", + "semver": "5.4.1", + "yargs": "4.8.1" + }, + "dependencies": { + "yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", + "dev": true, + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "lodash.assign": "4.2.0", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "window-size": "0.2.0", + "y18n": "3.2.1", + "yargs-parser": "2.4.1" + } + } + } }, "solidity-coverage": { "version": "0.1.10", "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.1.10.tgz", "integrity": "sha512-DhYv8gVneDaDA1Nk//OXxW8Jh3RT7wYGfqEc8I8lbUPPGbBrUfgBMv999iPt2BeK91jhVUvGW987HWS+sZGvGg==", - "dev": true + "dev": true, + "requires": { + "commander": "2.11.0", + "death": "1.1.0", + "ethereumjs-testrpc-sc": "git+https://github.com/sc-forks/testrpc-sc.git#a11b9b530caf2785ff24f749fa2d5b0cb59a2810", + "istanbul": "0.4.5", + "keccakjs": "0.2.1", + "mkdirp": "0.5.1", + "req-cwd": "1.0.1", + "shelljs": "0.7.8", + "sol-explore": "1.6.2", + "solidity-parser": "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0" + } }, "solidity-parser": { "version": "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0", - "dev": true + "dev": true, + "requires": { + "mocha": "2.5.3", + "pegjs": "0.10.0", + "yargs": "4.8.1" + }, + "dependencies": { + "yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", + "dev": true, + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "lodash.assign": "4.2.0", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "window-size": "0.2.0", + "y18n": "3.2.1", + "yargs-parser": "2.4.1" + } + } + } }, "source-map": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", - "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=" + "integrity": "sha1-dc449SvwczxafwwRjYEzSiu19BI=", + "dev": true }, "source-map-support": { "version": "0.4.15", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.15.tgz", - "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=" + "integrity": "sha1-AyAt9lwG0r2MfsI2KhkwVv7407E=", + "dev": true, + "requires": { + "source-map": "0.5.6" + } }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", - "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=" + "integrity": "sha1-SzBz2TP/UfORLwOsVRlJikFQ20A=", + "dev": true, + "requires": { + "spdx-license-ids": "1.2.2" + } }, "spdx-expression-parse": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-1.0.4.tgz", - "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=" + "integrity": "sha1-m98vIOH0DtRH++JzJmGR/O1RYmw=", + "dev": true }, "spdx-license-ids": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-1.2.2.tgz", - "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=" + "integrity": "sha1-yd96NCRZSt5r0RkA1ZZpbcBrrFc=", + "dev": true }, "sprintf-js": { "version": "1.0.3", @@ -2805,11 +4187,23 @@ "version": "1.13.1", "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.13.1.tgz", "integrity": "sha1-US322mKHFEMW3EwY/hzx2UBzm+M=", + "dev": true, + "requires": { + "asn1": "0.2.3", + "assert-plus": "1.0.0", + "bcrypt-pbkdf": "1.0.1", + "dashdash": "1.14.1", + "ecc-jsbn": "0.1.1", + "getpass": "0.1.7", + "jsbn": "0.1.1", + "tweetnacl": "0.14.5" + }, "dependencies": { "assert-plus": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true } } }, @@ -2818,6 +4212,10 @@ "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.2.tgz", "integrity": "sha1-dXYJrhzr0zx0MtSvvjH/eGULnd4=", "dev": true, + "requires": { + "looper": "3.0.0", + "pull-stream": "3.6.0" + }, "dependencies": { "looper": { "version": "3.0.0", @@ -2830,37 +4228,63 @@ "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==" + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } }, "string-width": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=" + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "1.1.0", + "is-fullwidth-code-point": "1.0.0", + "strip-ansi": "3.0.1" + } }, "string.prototype.trim": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.1.2.tgz", - "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=" + "integrity": "sha1-0E3iyJ4Tf019IG8Ia17S+ua+jOo=", + "dev": true, + "requires": { + "define-properties": "1.1.2", + "es-abstract": "1.8.0", + "function-bind": "1.1.0" + } }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", - "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=" + "integrity": "sha1-TkhM1N5aC7vuGORjB3EKioFiGHg=", + "dev": true }, "strip-ansi": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=" + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "2.1.1" + } }, "strip-bom": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", - "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=" + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "dev": true, + "requires": { + "is-utf8": "0.2.1" + } }, "strip-hex-prefix": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=" + "integrity": "sha1-DF8VX+8RUTczd96du1iNoFUA428=", + "dev": true, + "requires": { + "is-hex-prefixed": "1.0.0" + } }, "strip-json-comments": { "version": "2.0.1", @@ -2870,28 +4294,69 @@ "supports-color": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=" + "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "dev": true }, "tape": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/tape/-/tape-4.7.0.tgz", - "integrity": "sha512-ePzu2KfZYVtq0v+KKGxBJ9HJWYZ4MaQWeGabD+KpVdMKRen3NJPf6EiwA5BxfMkhQPGtCwnOFWelcB39bhOUng==" + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/tape/-/tape-4.8.0.tgz", + "integrity": "sha512-TWILfEnvO7I8mFe35d98F6T5fbLaEtbFTG/lxWvid8qDfFTxt19EBijWmB4j3+Hoh5TfHE2faWs73ua+EphuBA==", + "dev": true, + "requires": { + "deep-equal": "1.0.1", + "defined": "1.0.0", + "for-each": "0.3.2", + "function-bind": "1.1.0", + "glob": "7.1.2", + "has": "1.0.1", + "inherits": "2.0.3", + "minimist": "1.2.0", + "object-inspect": "1.3.0", + "resolve": "1.4.0", + "resumer": "0.0.0", + "string.prototype.trim": "1.1.2", + "through": "2.3.8" + }, + "dependencies": { + "minimist": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true + } + } }, "tar-fs": { "version": "1.15.3", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.15.3.tgz", - "integrity": "sha1-7M+TXpQUk9gVECjmNuUc5MPKfyA=" + "integrity": "sha1-7M+TXpQUk9gVECjmNuUc5MPKfyA=", + "requires": { + "chownr": "1.0.1", + "mkdirp": "0.5.1", + "pump": "1.0.2", + "tar-stream": "1.5.4" + } }, "tar-stream": { "version": "1.5.4", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", - "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=" + "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=", + "requires": { + "bl": "1.2.1", + "end-of-stream": "1.4.0", + "readable-stream": "2.3.3", + "xtend": "4.0.1" + } }, "temp": { "version": "0.8.3", "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", "dev": true, + "requires": { + "os-tmpdir": "1.0.2", + "rimraf": "2.2.8" + }, "dependencies": { "rimraf": { "version": "2.2.8", @@ -2904,18 +4369,23 @@ "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=" + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true }, "tmp": { "version": "0.0.31", "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", - "dev": true + "dev": true, + "requires": { + "os-tmpdir": "1.0.2" + } }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", - "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" + "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=", + "dev": true }, "to-iso-string": { "version": "0.0.2", @@ -2926,29 +4396,43 @@ "tough-cookie": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.2.tgz", - "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=" + "integrity": "sha1-8IH3bkyFcg5sN6X6ztc3FQ2EByo=", + "dev": true, + "requires": { + "punycode": "1.4.1" + } }, "trim": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/trim/-/trim-0.0.1.tgz", - "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=" + "integrity": "sha1-WFhUf2spB1fulczMZm+1AITEYN0=", + "dev": true }, "trim-right": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/trim-right/-/trim-right-1.0.1.tgz", - "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=" + "integrity": "sha1-yy4SAwZ+DI3h9hQJS5/kVwTqYAM=", + "dev": true }, "truffle": { - "version": "3.4.6", - "resolved": "https://registry.npmjs.org/truffle/-/truffle-3.4.6.tgz", - "integrity": "sha1-cqBxVCM7TRGY7LmRpfq0aKDFRnE=", + "version": "3.4.8", + "resolved": "https://registry.npmjs.org/truffle/-/truffle-3.4.8.tgz", + "integrity": "sha512-UeMrofHcguSwfAa5Oy3+arWPWb5zd28stySKIanNhzByV1rcUy3WhxE5up4LBOxAPz+OsH1nQ02kqIcBZDwxIw==", "dev": true, + "requires": { + "mocha": "3.5.0", + "original-require": "1.0.1", + "solc": "0.4.13" + }, "dependencies": { "commander": { "version": "2.9.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.9.0.tgz", "integrity": "sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=", - "dev": true + "dev": true, + "requires": { + "graceful-readlink": "1.0.1" + } }, "diff": { "version": "3.2.0", @@ -2960,49 +4444,198 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.1.tgz", "integrity": "sha1-gFIR3wT6rxxjo2ADBs31reULLsg=", - "dev": true + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } }, "mocha": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-3.5.0.tgz", "integrity": "sha512-pIU2PJjrPYvYRqVpjXzj76qltO9uBYI7woYAMoxbSefsa+vqAfptjoeevd6bUgwD0mPIO+hv9f7ltvsNreL2PA==", - "dev": true + "dev": true, + "requires": { + "browser-stdout": "1.3.0", + "commander": "2.9.0", + "debug": "2.6.8", + "diff": "3.2.0", + "escape-string-regexp": "1.0.5", + "glob": "7.1.1", + "growl": "1.9.2", + "json3": "3.3.2", + "lodash.create": "3.1.1", + "mkdirp": "0.5.1", + "supports-color": "3.1.2" + } }, "solc": { "version": "0.4.13", "resolved": "https://registry.npmjs.org/solc/-/solc-0.4.13.tgz", "integrity": "sha1-qly9zOPmrjwZDSD1/fi8iAcC7HU=", - "dev": true + "dev": true, + "requires": { + "fs-extra": "0.30.0", + "memorystream": "0.3.1", + "require-from-string": "1.2.1", + "semver": "5.4.1", + "yargs": "4.8.1" + } }, "supports-color": { "version": "3.1.2", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-3.1.2.tgz", "integrity": "sha1-cqJiiU2dQIuVbKBf83su2KbiotU=", - "dev": true + "dev": true, + "requires": { + "has-flag": "1.0.0" + } + }, + "yargs": { + "version": "4.8.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", + "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=", + "dev": true, + "requires": { + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "lodash.assign": "4.2.0", + "os-locale": "1.4.0", + "read-pkg-up": "1.0.1", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "1.0.2", + "which-module": "1.0.0", + "window-size": "0.2.0", + "y18n": "3.2.1", + "yargs-parser": "2.4.1" + } } } }, "truffle-hdwallet-provider": { "version": "0.0.3", "resolved": "https://registry.npmjs.org/truffle-hdwallet-provider/-/truffle-hdwallet-provider-0.0.3.tgz", - "integrity": "sha1-Dh3gIQS3PTh14c9wkzBbTqii2EM=" + "integrity": "sha1-Dh3gIQS3PTh14c9wkzBbTqii2EM=", + "dev": true, + "requires": { + "bip39": "2.2.0", + "ethereumjs-wallet": "0.6.0", + "web3": "0.18.4", + "web3-provider-engine": "8.6.1" + }, + "dependencies": { + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + }, + "bignumber.js": { + "version": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", + "dev": true + }, + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=", + "dev": true + }, + "ethereumjs-tx": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.3.tgz", + "integrity": "sha1-7OBR0+/b53GtKlGNYWMsoqt17Ls=", + "dev": true, + "requires": { + "ethereum-common": "0.0.18", + "ethereumjs-util": "5.1.2" + } + }, + "web3": { + "version": "0.18.4", + "resolved": "https://registry.npmjs.org/web3/-/web3-0.18.4.tgz", + "integrity": "sha1-gewXhBRUkfLqqJVbMcBgSeB8Xn0=", + "dev": true, + "requires": { + "bignumber.js": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", + "crypto-js": "3.1.8", + "utf8": "2.1.2", + "xhr2": "0.1.4", + "xmlhttprequest": "1.8.0" + } + }, + "web3-provider-engine": { + "version": "8.6.1", + "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-8.6.1.tgz", + "integrity": "sha1-TYbhnjDKr5ffNRUR7A9gE25bMOs=", + "dev": true, + "requires": { + "async": "2.5.0", + "clone": "2.1.1", + "ethereumjs-block": "1.2.2", + "ethereumjs-tx": "1.3.3", + "ethereumjs-util": "5.1.2", + "ethereumjs-vm": "git+https://github.com/sc-forks/ethereumjs-vm-sc.git#328771cace30ed16ad5c1d13a69cda13d31173f9", + "isomorphic-fetch": "2.2.1", + "request": "2.79.0", + "semaphore": "1.1.0", + "solc": "0.4.8", + "tape": "4.8.0", + "web3": "0.16.0", + "xhr": "2.4.0", + "xtend": "4.0.1" + }, + "dependencies": { + "bignumber.js": { + "version": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9", + "dev": true + }, + "web3": { + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-0.16.0.tgz", + "integrity": "sha1-pFVBdc1GKUMDWx8dOUMvdBxrYBk=", + "dev": true, + "requires": { + "bignumber.js": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9", + "crypto-js": "3.1.8", + "utf8": "2.1.2", + "xmlhttprequest": "1.8.0" + } + } + } + } + } }, "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=" + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", + "integrity": "sha1-Y3PbdpCf5XDgjXNYM2Xtgop07us=", + "dev": true }, "tweetnacl": { "version": "0.14.5", "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true, "optional": true }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", - "dev": true + "dev": true, + "requires": { + "prelude-ls": "1.1.2" + } }, "type-detect": { "version": "4.0.3", @@ -3020,7 +4653,10 @@ "version": "1.0.3", "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE=", - "dev": true + "dev": true, + "requires": { + "typewise-core": "1.2.0" + } }, "typewise-core": { "version": "1.2.0", @@ -3040,6 +4676,11 @@ "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, "optional": true, + "requires": { + "source-map": "0.5.6", + "uglify-to-browserify": "1.0.2", + "yargs": "3.10.0" + }, "dependencies": { "camelcase": { "version": "1.2.1", @@ -3053,7 +4694,12 @@ "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, - "optional": true + "optional": true, + "requires": { + "center-align": "0.1.3", + "right-align": "0.1.3", + "wordwrap": "0.0.2" + } }, "window-size": { "version": "0.1.0", @@ -3074,7 +4720,13 @@ "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, - "optional": true + "optional": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "2.1.0", + "decamelize": "1.2.0", + "window-size": "0.1.0" + } } } }, @@ -3088,7 +4740,8 @@ "unorm": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", - "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA=" + "integrity": "sha1-NkIA1fE2RsqLzURJAnEzVhR5IwA=", + "dev": true }, "unzip-response": { "version": "1.0.2", @@ -3098,7 +4751,8 @@ "utf8": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.2.tgz", - "integrity": "sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY=" + "integrity": "sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY=", + "dev": true }, "util-deprecate": { "version": "1.0.2", @@ -3106,70 +4760,164 @@ "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" }, "uuid": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-2.0.3.tgz", - "integrity": "sha1-Z+LoY3lyFVMN/zGOW/nc6/1Hsho=" + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.1.0.tgz", + "integrity": "sha512-DIWtzUkw04M4k3bf1IcpS2tngXEL26YUD2M0tMDUpnUrz2hgzUBlD55a4FjdLGPvfHxS6uluGWvaVEqgBcVa+g==", + "dev": true }, "validate-npm-package-license": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.1.tgz", - "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=" + "integrity": "sha1-KAS6vnEq0zeUWaz74kdGqywwP7w=", + "dev": true, + "requires": { + "spdx-correct": "1.0.2", + "spdx-expression-parse": "1.0.4" + } }, "verror": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.3.6.tgz", - "integrity": "sha1-z/XfEpRtKX0rqu+qJoniW+AcAFw=" + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "1.3.0" + }, + "dependencies": { + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + } + } }, "web3": { - "version": "0.18.4", - "resolved": "https://registry.npmjs.org/web3/-/web3-0.18.4.tgz", - "integrity": "sha1-gewXhBRUkfLqqJVbMcBgSeB8Xn0=" - }, - "web3-provider-engine": { - "version": "8.6.1", - "resolved": "https://registry.npmjs.org/web3-provider-engine/-/web3-provider-engine-8.6.1.tgz", - "integrity": "sha1-TYbhnjDKr5ffNRUR7A9gE25bMOs=", + "version": "0.16.0", + "resolved": "https://registry.npmjs.org/web3/-/web3-0.16.0.tgz", + "integrity": "sha1-pFVBdc1GKUMDWx8dOUMvdBxrYBk=", + "dev": true, + "requires": { + "bignumber.js": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9", + "crypto-js": "3.1.8", + "utf8": "2.1.2", + "xmlhttprequest": "1.8.0" + }, "dependencies": { "bignumber.js": { - "version": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9" + "version": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9", + "dev": true + } + } + }, + "web3-provider-engine": { + "version": "git+https://github.com/sc-forks/provider-engine-sc.git#0e7af0eb99dfb21d399766bc031cf02e89536fe1", + "dev": true, + "requires": { + "async": "2.5.0", + "clone": "2.1.1", + "ethereumjs-block": "1.2.2", + "ethereumjs-tx": "1.3.3", + "ethereumjs-util": "5.1.2", + "isomorphic-fetch": "2.2.1", + "request": "2.79.0", + "semaphore": "1.1.0", + "solc": "0.4.8", + "tape": "4.8.0", + "web3": "0.16.0", + "xhr": "2.4.0", + "xtend": "4.0.1" + }, + "dependencies": { + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "requires": { + "lodash": "4.17.4" + } }, - "ethereumjs-util": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz", - "integrity": "sha1-JboCFcu0wvCxCKb5avKi5i5Fkh8=" + "ethereum-common": { + "version": "0.0.18", + "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", + "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" }, - "web3": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-0.16.0.tgz", - "integrity": "sha1-pFVBdc1GKUMDWx8dOUMvdBxrYBk=" + "ethereumjs-tx": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.3.tgz", + "integrity": "sha1-7OBR0+/b53GtKlGNYWMsoqt17Ls=", + "dev": true, + "requires": { + "ethereum-common": "0.0.18", + "ethereumjs-util": "5.1.2" + } + }, + "ethereumjs-vm": { + "version": "git+https://github.com/sc-forks/ethereumjs-vm-sc.git#328771cace30ed16ad5c1d13a69cda13d31173f9", + "requires": { + "async": "2.5.0", + "async-eventemitter": "0.2.3", + "ethereum-common": "0.0.18", + "ethereumjs-account": "2.0.4", + "ethereumjs-block": "1.2.2", + "ethereumjs-util": "4.5.0", + "fake-merkle-patricia-tree": "1.0.1", + "functional-red-black-tree": "1.0.1", + "merkle-patricia-tree": "2.1.2" + }, + "dependencies": { + "ethereumjs-util": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", + "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "requires": { + "bn.js": "4.11.8", + "create-hash": "1.1.3", + "keccakjs": "0.2.1", + "rlp": "2.0.0", + "secp256k1": "3.3.0" + } + } + } } } }, "whatwg-fetch": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", - "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=" + "integrity": "sha1-nITsLc9oGH/wC8ZOEnS0QhduHIQ=", + "dev": true }, "which": { - "version": "1.2.14", - "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", - "integrity": "sha1-mofEN48D6CfOyvGs31bHNsAcFOU=", - "dev": true + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", + "dev": true, + "requires": { + "isexe": "2.0.0" + } }, "which-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", - "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", + "dev": true }, "wide-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==" + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "requires": { + "string-width": "1.0.2" + } }, "window-size": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.2.0.tgz", - "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=" + "integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=", + "dev": true }, "wordwrap": { "version": "1.0.0", @@ -3180,7 +4928,12 @@ "wrap-ansi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=" + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "dev": true, + "requires": { + "string-width": "1.0.2", + "strip-ansi": "3.0.1" + } }, "wrappy": { "version": "1.0.2", @@ -3190,17 +4943,26 @@ "xhr": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/xhr/-/xhr-2.4.0.tgz", - "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=" + "integrity": "sha1-4W5mpF+GmGHu76tBbV7/ci3ECZM=", + "dev": true, + "requires": { + "global": "4.3.2", + "is-function": "1.0.1", + "parse-headers": "2.0.1", + "xtend": "4.0.1" + } }, "xhr2": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/xhr2/-/xhr2-0.1.4.tgz", - "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=" + "integrity": "sha1-f4dliEdxbbUCYyOBL4GMras4el8=", + "dev": true }, "xmlhttprequest": { "version": "1.8.0", "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" + "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", + "dev": true }, "xtend": { "version": "4.0.1", @@ -3210,17 +4972,46 @@ "y18n": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", - "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=" + "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", + "dev": true }, "yargs": { - "version": "4.8.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", - "integrity": "sha1-wMQpJMpKqmsObaFznfshZDn53cA=" + "version": "3.29.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz", + "integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=", + "dev": true, + "requires": { + "camelcase": "1.2.1", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "os-locale": "1.4.0", + "window-size": "0.1.4", + "y18n": "3.2.1" + }, + "dependencies": { + "camelcase": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", + "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", + "dev": true + }, + "window-size": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", + "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", + "dev": true + } + } }, "yargs-parser": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz", - "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=" + "integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=", + "dev": true, + "requires": { + "camelcase": "3.0.0", + "lodash.assign": "4.2.0" + } } } } diff --git a/package.json b/package.json index 993b2dfbf..570aaea47 100644 --- a/package.json +++ b/package.json @@ -27,15 +27,12 @@ "url": "https://github.com/OpenZeppelin/zeppelin-solidity/issues" }, "homepage": "https://github.com/OpenZeppelin/zeppelin-solidity", - "dependencies": { - "truffle-hdwallet-provider": "0.0.3" - }, "devDependencies": { + "babel-polyfill": "^6.23.0", "babel-preset-es2015": "^6.18.0", "babel-preset-stage-2": "^6.18.0", "babel-preset-stage-3": "^6.17.0", "babel-register": "^6.23.0", - "babel-polyfill": "^6.23.0", "chai": "^4.0.2", "chai-as-promised": "^7.0.0", "chai-bignumber": "^2.0.0", @@ -44,6 +41,7 @@ "mocha-lcov-reporter": "^1.3.0", "moment": "^2.18.1", "solidity-coverage": "^0.1.7", - "truffle": "^3.4.6" + "truffle": "^3.4.6", + "truffle-hdwallet-provider": "0.0.3" } } From 3e02f45f679f1ab4212b63fba1b0e77c4eaedcb7 Mon Sep 17 00:00:00 2001 From: cgewecke Date: Sat, 12 Aug 2017 14:20:14 -0700 Subject: [PATCH 103/160] Upgrade solidity coverage to ^0.2.1 --- package.json | 2 +- scripts/coverage.sh | 2 +- yarn.lock | 1422 +++++++++++++++++++++++++++++++------------ 3 files changed, 1046 insertions(+), 380 deletions(-) diff --git a/package.json b/package.json index 570aaea47..d22ff0e3e 100644 --- a/package.json +++ b/package.json @@ -40,7 +40,7 @@ "ethereumjs-testrpc": "^3.0.2", "mocha-lcov-reporter": "^1.3.0", "moment": "^2.18.1", - "solidity-coverage": "^0.1.7", + "solidity-coverage": "^0.2.1", "truffle": "^3.4.6", "truffle-hdwallet-provider": "0.0.3" } diff --git a/scripts/coverage.sh b/scripts/coverage.sh index 5d69ac560..70fd3192a 100755 --- a/scripts/coverage.sh +++ b/scripts/coverage.sh @@ -19,7 +19,7 @@ if testrpc_running; then else echo "Starting testrpc-sc to generate coverage" # We define 10 accounts with balance 1M ether, needed for high-value tests. - ./node_modules/ethereumjs-testrpc-sc/bin/testrpc --gasLimit 0xfffffffffff --port 8555 \ + ./node_modules/ethereumjs-testrpc-sc/build/cli.node.js --gasLimit 0xfffffffffff --port 8555 \ --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501200,1000000000000000000000000" \ --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501201,1000000000000000000000000" \ --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501202,1000000000000000000000000" \ diff --git a/yarn.lock b/yarn.lock index b596b00d0..a8729655e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,17 +12,11 @@ abstract-leveldown@2.4.1, abstract-leveldown@~2.4.0: dependencies: xtend "~4.0.0" -abstract-leveldown@~0.12.0, abstract-leveldown@~0.12.1: - version "0.12.4" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz#29e18e632e60e4e221d5810247852a63d7b2e410" +acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" dependencies: - xtend "~3.0.0" - -abstract-leveldown@~2.6.1: - version "2.6.1" - resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.1.tgz#f9014a5669b746418e145168dea49a044ae15900" - dependencies: - xtend "~4.0.0" + acorn "^4.0.3" acorn-jsx@^3.0.0: version "3.0.1" @@ -34,7 +28,11 @@ acorn@^3.0.4: version "3.3.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" -acorn@^5.0.1: +acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + +acorn@^5.0.0, acorn@^5.0.1: version "5.0.3" resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" @@ -46,13 +44,26 @@ ajv-keywords@^1.0.0: version "1.5.1" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" -ajv@^4.7.0: +ajv-keywords@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" + +ajv@^4.7.0, ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" dependencies: co "^4.6.0" json-stable-stringify "^1.0.1" +ajv@^5.1.5: + version "5.2.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.2.2.tgz#47c68d69e86f5d953103b0074a9430dc63da5e39" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + json-schema-traverse "^0.3.0" + json-stable-stringify "^1.0.1" + align-text@^0.1.1, align-text@^0.1.3: version "0.1.4" resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" @@ -81,6 +92,13 @@ ansi-styles@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" +anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + aproba@^1.0.3: version "1.1.2" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.1.2.tgz#45c6629094de4e96f693ef7eab74ae079c240fc1" @@ -98,6 +116,16 @@ argparse@^1.0.7: dependencies: sprintf-js "~1.0.2" +arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + +arr-flatten@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + array-union@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" @@ -108,10 +136,22 @@ array-uniq@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" +array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + arrify@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" +asn1.js@^4.0.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" @@ -124,17 +164,27 @@ assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" +assert@^1.1.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + assertion-error@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.0.2.tgz#13ca515d86206da0bac66e834dd397d87581094c" +async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + async-eventemitter@^0.2.2: version "0.2.3" resolved "https://registry.yarnpkg.com/async-eventemitter/-/async-eventemitter-0.2.3.tgz#f79f480dfda6645a97bd6142c017150d63b4e70e" dependencies: async "^2.4.0" -async@1.x, async@^1.4.0, async@^1.4.2, async@^1.5.2, async@~1.5.0: +async@1.x, async@^1.4.0, async@^1.4.2: version "1.5.2" resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" @@ -721,12 +771,20 @@ base-x@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/base-x/-/base-x-1.1.0.tgz#42d3d717474f9ea02207f6d1aa1f426913eeb7ac" +base64-js@^1.0.2: + version "1.2.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.1.tgz#a91947da1f4a516ea38e5b4ec0ec3773675e0886" + bcrypt-pbkdf@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" dependencies: tweetnacl "^0.14.3" +big.js@^3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" + "bignumber.js@git+https://github.com/debris/bignumber.js#master": version "2.0.7" resolved "git+https://github.com/debris/bignumber.js#c7a38de919ed75e6fb6ba38051986e294b328df9" @@ -735,23 +793,14 @@ bcrypt-pbkdf@^1.0.0: version "2.0.7" resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" -bignumber.js@~2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-2.1.4.tgz#29b3bb693dbb238e88b72eac2fb89650888b2d59" +binary-extensions@^1.0.0: + version "1.9.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.9.0.tgz#66506c16ce6f4d6928a5b3cd6a33ca41e941e37b" -bindings@^1.2.1, bindings@~1.2.1: +bindings@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" -bip39@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.2.0.tgz#40e73f70674c267f148cdbf8374f2a50be166b0d" - dependencies: - create-hash "^1.1.0" - pbkdf2 "^3.0.0" - randombytes "^2.0.1" - unorm "^1.3.3" - bip39@^2.2.0: version "2.3.1" resolved "https://registry.yarnpkg.com/bip39/-/bip39-2.3.1.tgz#c8238abc09d719c6f01136ef042daccc5dc3581b" @@ -774,13 +823,13 @@ bl@^1.0.0: dependencies: readable-stream "^2.0.5" -bl@~0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/bl/-/bl-0.8.2.tgz#c9b6bca08d1bc2ea00fc8afb4f1a5fd1e1c66e4e" +block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" dependencies: - readable-stream "~1.0.26" + inherits "~2.0.0" -bn.js@^4.11.3, bn.js@^4.4.0, bn.js@^4.8.0: +bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.3, bn.js@^4.4.0, bn.js@^4.8.0: version "4.11.6" resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" @@ -797,6 +846,14 @@ brace-expansion@^1.1.7: balanced-match "^0.4.1" concat-map "0.0.1" +braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + brorand@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" @@ -805,7 +862,7 @@ browser-stdout@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.0.tgz#f351d32969d32fa5d7a5567154263d928ae3bd1f" -browserify-aes@^1.0.6: +browserify-aes@^1.0.0, browserify-aes@^1.0.4, browserify-aes@^1.0.6: version "1.0.6" resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.0.6.tgz#5e7725dbdef1fd5930d4ebab48567ce451c48a0a" dependencies: @@ -815,12 +872,53 @@ browserify-aes@^1.0.6: evp_bytestokey "^1.0.0" inherits "^2.0.1" +browserify-cipher@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.0.tgz#9988244874bf5ed4e28da95666dcd66ac8fc363a" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + +browserify-des@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.0.tgz#daa277717470922ed2fe18594118a175439721dd" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + +browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + browserify-sha3@^0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/browserify-sha3/-/browserify-sha3-0.0.1.tgz#3ff34a3006ef15c0fb3567e541b91a2340123d11" dependencies: js-sha3 "^0.3.1" +browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + +browserify-zlib@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" + dependencies: + pako "~0.2.0" + bs58@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/bs58/-/bs58-2.0.1.tgz#55908d58f1982aba2008fa1bed8f91998a29bf8d" @@ -842,22 +940,21 @@ buffer-xor@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" +buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + builtin-modules@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" -bytewise-core@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/bytewise-core/-/bytewise-core-1.2.3.tgz#3fb410c7e91558eb1ab22a82834577aa6bd61d42" - dependencies: - typewise-core "^1.2" - -bytewise@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/bytewise/-/bytewise-1.1.0.tgz#1d13cbff717ae7158094aa881b35d081b387253e" - dependencies: - bytewise-core "^1.2.2" - typewise "^1.0.3" +builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" caller-path@^0.1.0: version "0.1.0" @@ -869,7 +966,7 @@ callsites@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" -camelcase@^1.0.2, camelcase@^1.2.1: +camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" @@ -877,10 +974,18 @@ camelcase@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" +camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + caseless@~0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" +caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + center-align@^0.1.1: version "0.1.3" resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" @@ -930,6 +1035,21 @@ checkpoint-store@^1.1.0: dependencies: functional-red-black-tree "^1.0.1" +chokidar@^1.7.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" @@ -962,7 +1082,7 @@ cliui@^2.1.0: right-align "^0.1.1" wordwrap "0.0.2" -cliui@^3.0.3, cliui@^3.2.0: +cliui@^3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" dependencies: @@ -1021,10 +1141,20 @@ concat-stream@^1.5.2: readable-stream "^2.2.2" typedarray "^0.0.6" +console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + console-control-strings@^1.0.0, console-control-strings@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" +constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + convert-source-map@^1.1.0: version "1.5.0" resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" @@ -1047,6 +1177,13 @@ coveralls@^2.13.1: minimist "1.2.0" request "2.79.0" +create-ecdh@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.0.tgz#888c723596cdf7612f6498233eebd7a35301737d" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.1.3.tgz#606042ac8b9262750f483caddab0f5819172d8fd" @@ -1056,7 +1193,7 @@ create-hash@^1.1.0, create-hash@^1.1.1, create-hash@^1.1.2: ripemd160 "^2.0.0" sha.js "^2.4.0" -create-hmac@^1.1.4: +create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: version "1.1.6" resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.6.tgz#acb9e221a4e17bdb076e90657c42b93e3726cf06" dependencies: @@ -1067,12 +1204,35 @@ create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" dependencies: boom "2.x.x" +crypto-browserify@^3.11.0: + version "3.11.1" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.11.1.tgz#948945efc6757a400d6e5e5af47194d10064279f" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + crypto-js@^3.1.4: version "3.1.8" resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-3.1.8.tgz#715f070bf6014f2ae992a98b3929258b713f08d5" @@ -1089,6 +1249,14 @@ dashdash@^1.12.0: dependencies: assert-plus "^1.0.0" +date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + +death@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/death/-/death-1.1.0.tgz#01aa9c401edd92750514470b8266390c66c67318" + debug@2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/debug/-/debug-2.2.0.tgz#f87057e995b1a1f6ae6a4960664137bc56f039da" @@ -1129,12 +1297,6 @@ deep-is@~0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" -deferred-leveldown@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz#2cef1f111e1c57870d8bbb8af2650e587cd2f5b4" - dependencies: - abstract-leveldown "~0.12.1" - deferred-leveldown@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.1.tgz#5d25c3310f5fe909946f6240dc9f90dd109a71ef" @@ -1172,6 +1334,13 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" +des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + detect-indent@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" @@ -1186,6 +1355,14 @@ diff@3.2.0: version "3.2.0" resolved "https://registry.yarnpkg.com/diff/-/diff-3.2.0.tgz#c9ce393a4b7cbd0b058a725c93df299027868ff9" +diffie-hellman@^5.0.0: + version "5.0.2" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.2.tgz#b5835739270cfe26acf632099fded2a07f209e5e" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + doctrine@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" @@ -1197,6 +1374,10 @@ dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" +domain-browser@^1.1.1: + version "1.1.7" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.1.7.tgz#867aa4b093faa05f1de08c06f4d7b21fdf8698bc" + drbg.js@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" @@ -1211,7 +1392,7 @@ ecc-jsbn@~0.1.1: dependencies: jsbn "~0.1.0" -elliptic@^6.2.3: +elliptic@^6.0.0, elliptic@^6.2.3: version "6.4.0" resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" dependencies: @@ -1223,6 +1404,10 @@ elliptic@^6.2.3: minimalistic-assert "^1.0.0" minimalistic-crypto-utils "^1.0.0" +emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + encoding@^0.1.11: version "0.1.12" resolved "https://registry.yarnpkg.com/encoding/-/encoding-0.1.12.tgz#538b66f3ee62cd1ab51ec323829d1f9480c74beb" @@ -1235,7 +1420,16 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0: dependencies: once "^1.4.0" -errno@~0.1.1: +enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + +errno@^0.1.3, errno@~0.1.1: version "0.1.4" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.4.tgz#b896e23a9e5e8ba33871fc996abd3635fc9a1c7d" dependencies: @@ -1420,19 +1614,11 @@ esutils@^2.0.2: version "2.0.2" resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" -ethereum-common@0.0.16: - version "0.0.16" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.16.tgz#9a1e169ead34ab75e089f50ca512bfd0fbd12655" - ethereum-common@0.0.18, ethereum-common@^0.0.18: version "0.0.18" resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" -ethereum-common@^0.0.17: - version "0.0.17" - resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.17.tgz#0b554ca9d512cadc8be0456fbd000ffcc3ac4f6f" - -ethereumjs-account@^2.0.3, ethereumjs-account@~2.0.4: +ethereumjs-account@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.4.tgz#f8c30231bcb707f4514d8a052c1f9da103624d47" dependencies: @@ -1449,62 +1635,24 @@ ethereumjs-block@^1.2.2: ethereumjs-util "^5.0.0" merkle-patricia-tree "^2.1.2" -ethereumjs-block@~1.2.2: - version "1.2.2" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.2.2.tgz#2ec7534a59021b8ec9b83c30e49690c6ebaedda1" +ethereumjs-testrpc-sc@4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/ethereumjs-testrpc-sc/-/ethereumjs-testrpc-sc-4.0.1.tgz#072f0d145e4f7212fb2d7bc8f7bcf544389b3577" dependencies: - async "^1.5.2" - ethereum-common "0.0.16" - ethereumjs-tx "^1.0.0" - ethereumjs-util "^4.0.1" - merkle-patricia-tree "^2.1.2" - -"ethereumjs-testrpc-sc@https://github.com/sc-forks/testrpc-sc.git": - version "3.0.3" - resolved "https://github.com/sc-forks/testrpc-sc.git#c636f173cad9026a42a5909a768ba7e156f4abc7" - dependencies: - async "~1.5.0" - bignumber.js "~2.1.4" - bip39 "2.2.0" - ethereumjs-account "~2.0.4" - ethereumjs-block "~1.2.2" - ethereumjs-tx "1.1.2" - ethereumjs-util "~5.1.0" - ethereumjs-vm "https://github.com/sc-forks/ethereumjs-vm-sc.git" - ethereumjs-wallet "~0.6.0" - fake-merkle-patricia-tree "~1.0.1" - heap "~0.2.6" - level-browserify "^1.1.0" - level-sublevel "^6.6.1" - merkle-patricia-tree "~2.1.2" - seedrandom "~2.4.2" - shelljs "~0.6.0" - solc "0.4.8" - temp "^0.8.3" - tmp "0.0.31" - web3 "~0.16.0" - web3-provider-engine "https://github.com/sc-forks/provider-engine-sc.git#8.1.19" - yargs "~3.29.0" + webpack "^3.0.0" ethereumjs-testrpc@^3.0.2: version "3.9.0" resolved "https://registry.yarnpkg.com/ethereumjs-testrpc/-/ethereumjs-testrpc-3.9.0.tgz#a961ea4c43f3e05d5a7cddd83ee24136e1af09b9" -ethereumjs-tx@1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.1.2.tgz#c151477c6205d1860600e29108c3eacae97e29fa" - dependencies: - ethereum-common "^0.0.17" - ethereumjs-util "^4.5.0" - -ethereumjs-tx@^1.0.0, ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2: +ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2: version "1.3.1" resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.1.tgz#d6909abcfb37da6404fc18124d351eda20047dac" dependencies: ethereum-common "^0.0.18" ethereumjs-util "^5.0.0" -ethereumjs-util@^4.0.0, ethereumjs-util@^4.0.1, ethereumjs-util@^4.4.0, ethereumjs-util@^4.5.0: +ethereumjs-util@^4.0.0, ethereumjs-util@^4.0.1, ethereumjs-util@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6" dependencies: @@ -1514,7 +1662,7 @@ ethereumjs-util@^4.0.0, ethereumjs-util@^4.0.1, ethereumjs-util@^4.4.0, ethereum rlp "^2.0.0" secp256k1 "^3.0.1" -ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@~5.1.0: +ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1: version "5.1.2" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-5.1.2.tgz#25ba0215cbb4c2f0b108a6f96af2a2e62e45921f" dependencies: @@ -1527,7 +1675,7 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@~5.1.0: rlp "^2.0.0" secp256k1 "^3.0.1" -"ethereumjs-vm-sc@https://github.com/sc-forks/ethereumjs-vm-sc.git", ethereumjs-vm@^2.0.2, "ethereumjs-vm@https://github.com/sc-forks/ethereumjs-vm-sc.git": +ethereumjs-vm@^2.0.2: version "2.0.2" resolved "https://github.com/sc-forks/ethereumjs-vm-sc.git#7ad1fd13789b4e6f307e3f282289e58b6d4e94a7" dependencies: @@ -1541,7 +1689,7 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1, ethereumjs-util@~5.1.0: functional-red-black-tree "^1.0.1" merkle-patricia-tree "^2.1.2" -ethereumjs-wallet@^0.6.0, ethereumjs-wallet@~0.6.0: +ethereumjs-wallet@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/ethereumjs-wallet/-/ethereumjs-wallet-0.6.0.tgz#82763b1697ee7a796be7155da9dfb49b2f98cfdb" dependencies: @@ -1567,16 +1715,44 @@ event-emitter@~0.3.5: d "1" es5-ext "~0.10.14" +events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + evp_bytestokey@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz#497b66ad9fef65cd7c08a6180824ba1476b66e53" dependencies: create-hash "^1.1.1" +execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + exit-hook@^1.0.0: version "1.1.1" resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" +expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + +expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + expand-template@^1.0.2: version "1.0.3" resolved "https://registry.yarnpkg.com/expand-template/-/expand-template-1.0.3.tgz#6c303323177a62b1b22c070279f7861287b69b1a" @@ -1585,19 +1761,25 @@ extend@~3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" +extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + extsprintf@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" -fake-merkle-patricia-tree@^1.0.1, fake-merkle-patricia-tree@~1.0.1: +fake-merkle-patricia-tree@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz#4b8c3acfb520afadf9860b1f14cd8ce3402cddd3" dependencies: checkpoint-store "^1.1.0" -fast-future@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/fast-future/-/fast-future-1.0.2.tgz#8435a9aaa02d79248d17d704e76259301d99280a" +fast-deep-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz#96256a3bc975595eb36d82e9929d060d893439ff" fast-levenshtein@~2.0.4: version "2.0.6" @@ -1617,6 +1799,20 @@ file-entry-cache@^2.0.0: flat-cache "^1.2.1" object-assign "^4.0.1" +filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + +fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + find-up@^1.0.0: version "1.1.2" resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" @@ -1624,6 +1820,12 @@ find-up@^1.0.0: path-exists "^2.0.0" pinkie-promise "^2.0.0" +find-up@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + flat-cache@^1.2.1: version "1.2.2" resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" @@ -1639,6 +1841,16 @@ for-each@^0.3.2, for-each@~0.3.2: dependencies: is-function "~1.0.0" +for-in@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + +for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + foreach@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" @@ -1669,6 +1881,30 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" +fsevents@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.36" + +fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + +fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + function-bind@^1.0.2, function-bind@^1.1.0, function-bind@~1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.0.tgz#16176714c801798e4e8f2cf7f7529467bb4a5771" @@ -1708,6 +1944,10 @@ get-func-name@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" +get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + getpass@^0.1.1: version "0.1.7" resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" @@ -1718,6 +1958,19 @@ github-from-package@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/github-from-package/-/github-from-package-0.0.0.tgz#97fb5d96bfde8973313f20e8288ef9a167fa64ce" +glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + +glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + glob@3.2.11: version "3.2.11" resolved "https://registry.yarnpkg.com/glob/-/glob-3.2.11.tgz#4a973f635b9190f715d10987d5c00fd2815ebe3d" @@ -1756,7 +2009,7 @@ glob@^6.0.1: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^7.0.0, glob@^7.0.3, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@~7.1.1: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -1767,7 +2020,7 @@ glob@^7.0.0, glob@^7.0.3, glob@~7.1.1: once "^1.3.0" path-is-absolute "^1.0.0" -global@~4.3.0: +global@^4.3.2, global@~4.3.0: version "4.3.2" resolved "https://registry.yarnpkg.com/global/-/global-4.3.2.tgz#e76989268a6c74c38908b1305b10fc0e394e9d0f" dependencies: @@ -1811,6 +2064,10 @@ handlebars@^4.0.1: optionalDependencies: uglify-js "^2.6" +har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + har-validator@~2.0.6: version "2.0.6" resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" @@ -1820,6 +2077,13 @@ har-validator@~2.0.6: is-my-json-valid "^2.12.4" pinkie-promise "^2.0.0" +har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + has-ansi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" @@ -1830,6 +2094,10 @@ has-flag@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" +has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + has-unicode@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" @@ -1868,10 +2136,6 @@ hdkey@^0.7.0: coinstring "^2.0.0" secp256k1 "^3.0.1" -heap@~0.2.6: - version "0.2.6" - resolved "https://registry.yarnpkg.com/heap/-/heap-0.2.6.tgz#087e1f10b046932fc8594dd9e6d378afc9d1e5ac" - hmac-drbg@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" @@ -1903,13 +2167,17 @@ http-signature@~1.1.0: jsprim "^1.2.2" sshpk "^1.7.0" +https-browserify@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" + iconv-lite@~0.4.13: version "0.4.17" resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d" -idb-wrapper@^1.5.0: - version "1.7.1" - resolved "https://registry.yarnpkg.com/idb-wrapper/-/idb-wrapper-1.7.1.tgz#6a32670122e173a84ecc5cfa9668fa2ceb221b04" +ieee754@^1.1.4: + version "1.1.8" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" ignore@^3.2.0: version "3.3.3" @@ -1923,6 +2191,10 @@ imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" +indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + inflight@^1.0.4: version "1.0.6" resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" @@ -1930,10 +2202,14 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.1, inherits@~2.0.3: +inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" +inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" @@ -1974,6 +2250,12 @@ is-arrayish@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" +is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + is-buffer@^1.1.5: version "1.1.5" resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.5.tgz#1f3b26ef613b214b88cbca23cc6c01d87961eecc" @@ -1992,6 +2274,24 @@ is-date-object@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" +is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + +is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + +is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + +is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + is-finite@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" @@ -2012,6 +2312,12 @@ is-function@^1.0.1, is-function@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/is-function/-/is-function-1.0.1.tgz#12cfb98b65b57dd3d193a3121f5f6e2f437602b5" +is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" @@ -2025,6 +2331,18 @@ is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: jsonpointer "^4.0.0" xtend "^4.0.0" +is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + +is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + is-path-cwd@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" @@ -2041,6 +2359,14 @@ is-path-inside@^1.0.0: dependencies: path-is-inside "^1.0.1" +is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + +is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + is-property@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" @@ -2057,7 +2383,7 @@ is-resolvable@^1.0.0: dependencies: tryit "^1.0.1" -is-stream@^1.0.1: +is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -2077,18 +2403,20 @@ isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" -isarray@^1.0.0, isarray@~1.0.0: +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" -isbuffer@~0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/isbuffer/-/isbuffer-0.0.0.tgz#38c146d9df528b8bf9b0701c3d43cf12df3fc39b" - isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" +isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + isomorphic-fetch@^2.2.0: version "2.2.1" resolved "https://registry.yarnpkg.com/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz#611ae1acf14f5e81f729507472819fe9733558a9" @@ -2153,6 +2481,14 @@ jsesc@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" +json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + +json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" @@ -2171,7 +2507,7 @@ json3@3.3.2: version "3.3.2" resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" -json5@^0.5.0: +json5@^0.5.0, json5@^0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" @@ -2221,6 +2557,12 @@ kind-of@^3.0.2: dependencies: is-buffer "^1.1.5" +kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + klaw@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" @@ -2241,14 +2583,6 @@ lcov-parse@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" -level-browserify@^1.1.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/level-browserify/-/level-browserify-1.1.1.tgz#11b93f874c87232dc7509ad61a590ce65caf0503" - dependencies: - level-js "^2.1.6" - level-packager "~1.2.0" - leveldown "^1.4.1" - level-codec@~6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-6.1.0.tgz#f5df0a99582f76dac43855151ab6f4e4d0d60045" @@ -2268,41 +2602,6 @@ level-iterator-stream@~1.3.0: readable-stream "^1.0.33" xtend "^4.0.0" -level-js@^2.1.6: - version "2.2.4" - resolved "https://registry.yarnpkg.com/level-js/-/level-js-2.2.4.tgz#bc055f4180635d4489b561c9486fa370e8c11697" - dependencies: - abstract-leveldown "~0.12.0" - idb-wrapper "^1.5.0" - isbuffer "~0.0.0" - ltgt "^2.1.2" - typedarray-to-buffer "~1.0.0" - xtend "~2.1.2" - -level-packager@~1.2.0: - version "1.2.1" - resolved "https://registry.yarnpkg.com/level-packager/-/level-packager-1.2.1.tgz#067fedfd072b7fe3c6bec6080c0cbd4a6b2e11f4" - dependencies: - levelup "~1.3.0" - -level-post@~1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/level-post/-/level-post-1.0.5.tgz#2a66390409bf6a1621a444bab6f016444cc9802c" - dependencies: - ltgt "^2.1.2" - -level-sublevel@^6.6.1: - version "6.6.1" - resolved "https://registry.yarnpkg.com/level-sublevel/-/level-sublevel-6.6.1.tgz#f9a77f7521ab70a8f8e92ed56f21a3c7886a4485" - dependencies: - bytewise "~1.1.0" - levelup "~0.19.0" - ltgt "~2.1.1" - pull-level "^2.0.3" - pull-stream "^3.4.5" - typewiselite "~1.0.0" - xtend "~4.0.0" - level-ws@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/level-ws/-/level-ws-0.0.0.tgz#372e512177924a00424b0b43aef2bb42496d228b" @@ -2310,17 +2609,7 @@ level-ws@0.0.0: readable-stream "~1.0.15" xtend "~2.1.1" -leveldown@^1.4.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/leveldown/-/leveldown-1.7.2.tgz#5e3467bb27ee246a4a7b8dbd8fb2b16206a6eb8b" - dependencies: - abstract-leveldown "~2.6.1" - bindings "~1.2.1" - fast-future "~1.0.2" - nan "~2.6.1" - prebuild-install "^2.1.0" - -levelup@^1.2.1, levelup@~1.3.0: +levelup@^1.2.1: version "1.3.8" resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.8.tgz#fb442c488efbea1043f7eb9929a792a74fbd1da6" dependencies: @@ -2332,18 +2621,6 @@ levelup@^1.2.1, levelup@~1.3.0: semver "~5.1.0" xtend "~4.0.0" -levelup@~0.19.0: - version "0.19.1" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-0.19.1.tgz#f3a6a7205272c4b5f35e412ff004a03a0aedf50b" - dependencies: - bl "~0.8.1" - deferred-leveldown "~0.2.0" - errno "~0.1.1" - prr "~0.0.0" - readable-stream "~1.0.26" - semver "~5.1.0" - xtend "~3.0.0" - levn@^0.3.0, levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" @@ -2361,6 +2638,34 @@ load-json-file@^1.0.0: pinkie-promise "^2.0.0" strip-bom "^2.0.0" +load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + +loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + +loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + +locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + lodash._baseassign@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" @@ -2424,14 +2729,6 @@ longest@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" -looper@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/looper/-/looper-2.0.0.tgz#66cd0c774af3d4fedac53794f742db56da8f09ec" - -looper@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/looper/-/looper-3.0.0.tgz#2efa54c3b1cbaba9b94aee2e5914b0be57fbb749" - loose-envify@^1.0.0: version "1.3.1" resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" @@ -2442,10 +2739,23 @@ lru-cache@2: version "2.7.3" resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-2.7.3.tgz#6d4524e8b955f95d4f5b58851ce21dd72fb4e952" -ltgt@^2.1.2, ltgt@~2.1.1, ltgt@~2.1.3: +lru-cache@^4.0.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.1.tgz#622e32e82488b49279114a4f9ecf45e7cd6bba55" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + +ltgt@~2.1.3: version "2.1.3" resolved "https://registry.yarnpkg.com/ltgt/-/ltgt-2.1.3.tgz#10851a06d9964b971178441c23c9e52698eece34" +mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + memdown@^1.0.0: version "1.2.4" resolved "https://registry.yarnpkg.com/memdown/-/memdown-1.2.4.tgz#cd9a34aaf074d53445a271108eb4b8dd4ec0f27f" @@ -2456,11 +2766,18 @@ memdown@^1.0.0: inherits "~2.0.1" ltgt "~2.1.3" +memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + memorystream@^0.3.1: version "0.3.1" resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" -merkle-patricia-tree@^2.1.2, merkle-patricia-tree@~2.1.2: +merkle-patricia-tree@^2.1.2: version "2.1.2" resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.1.2.tgz#724483d54b75631a48fedda55e114051706a7291" dependencies: @@ -2473,6 +2790,31 @@ merkle-patricia-tree@^2.1.2, merkle-patricia-tree@~2.1.2: rlp "^2.0.0" semaphore ">=1.0.1" +micromatch@^2.1.5: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + +miller-rabin@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.0.tgz#4a62fb1d42933c05583982f4c716f6fb9e6c6d3d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + mime-db@~1.27.0: version "1.27.0" resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" @@ -2483,6 +2825,10 @@ mime-types@^2.1.12, mime-types@~2.1.7: dependencies: mime-db "~1.27.0" +mimic-fn@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.1.0.tgz#e667783d92e89dbd342818b5230b9d62a672ad18" + min-document@^2.19.0: version "2.19.0" resolved "https://registry.yarnpkg.com/min-document/-/min-document-2.19.0.tgz#7bd282e3f5842ed295bb748cdd9f1ffa2c824685" @@ -2504,7 +2850,7 @@ minimatch@0.3: lru-cache "2" sigmund "~1.0.0" -"minimatch@2 || 3", minimatch@^3.0.2, minimatch@^3.0.4: +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: @@ -2522,7 +2868,7 @@ mkdirp@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" -mkdirp@0.5.1, mkdirp@0.5.x, mkdirp@^0.5.0, mkdirp@^0.5.1: +mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -2583,7 +2929,7 @@ mute-stream@0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" -nan@^2.0.5, nan@^2.0.8, nan@^2.2.1, nan@~2.6.1: +nan@^2.0.5, nan@^2.0.8, nan@^2.2.1, nan@^2.3.0: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" @@ -2602,6 +2948,48 @@ node-fetch@^1.0.1: encoding "^0.1.11" is-stream "^1.0.1" +node-libs-browser@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.0.0.tgz#a3a59ec97024985b46e958379646f96c4b616646" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.1.4" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "0.0.1" + os-browserify "^0.2.0" + path-browserify "0.0.0" + process "^0.11.0" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.0.5" + stream-browserify "^2.0.1" + stream-http "^2.3.1" + string_decoder "^0.10.25" + timers-browserify "^2.0.2" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + +node-pre-gyp@^0.6.36: + version "0.6.36" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.36.tgz#db604112cb74e0d477554e9b505b17abddfab786" + dependencies: + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "^2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + noop-logger@^0.1.1: version "0.1.1" resolved "https://registry.yarnpkg.com/noop-logger/-/noop-logger-0.1.1.tgz#94a2b1633c4f1317553007d8966fd0e841b6a4c2" @@ -2612,6 +3000,13 @@ nopt@3.x: dependencies: abbrev "1" +nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + normalize-package-data@^2.3.2: version "2.3.8" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" @@ -2621,7 +3016,19 @@ normalize-package-data@^2.3.2: semver "2 || 3 || 4 || 5" validate-npm-package-license "^3.0.1" -npmlog@^4.0.1: +normalize-path@^2.0.0, normalize-path@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + +npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + +npmlog@^4.0.1, npmlog@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" dependencies: @@ -2654,7 +3061,14 @@ object-keys@~0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-0.4.0.tgz#28a6aae7428dd2c3a92f3d95f21335dd204e0336" -once@1.x, once@^1.3.0, once@^1.3.1, once@^1.4.0: +object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + +once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" dependencies: @@ -2686,6 +3100,10 @@ original-require@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/original-require/-/original-require-1.0.1.tgz#0f130471584cd33511c5ec38c8d59213f9ac5e20" +os-browserify@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.2.1.tgz#63fc4ccee5d2d7763d26bbf8601078e6c2e0044f" + os-homedir@^1.0.0, os-homedir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" @@ -2696,10 +3114,62 @@ os-locale@^1.4.0: dependencies: lcid "^1.0.0" -os-tmpdir@^1.0.0, os-tmpdir@^1.0.1, os-tmpdir@~1.0.1: +os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + +os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" +osenv@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.4.tgz#42fe6d5953df06c8064be6f176c3d05aaaa34644" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + +p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + +p-limit@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.1.0.tgz#b07ff2d9a5d88bec806035895a2bab66a27988bc" + +p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + +pako@~0.2.0: + version "0.2.9" + resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" + +parse-asn1@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.0.tgz#37c4f9b7ed3ab65c74817b5f2480937fbf97c712" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + +parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + parse-headers@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/parse-headers/-/parse-headers-2.0.1.tgz#6ae83a7aa25a9d9b700acc28698cd1f1ed7e9536" @@ -2713,12 +3183,20 @@ parse-json@^2.2.0: dependencies: error-ex "^1.2.0" +path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + path-exists@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" dependencies: pinkie-promise "^2.0.0" +path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" @@ -2727,6 +3205,10 @@ path-is-inside@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" +path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -2735,11 +3217,17 @@ path-type@^1.0.0: pify "^2.0.0" pinkie-promise "^2.0.0" +path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + pathval@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" -pbkdf2@^3.0.0, pbkdf2@^3.0.3, pbkdf2@^3.0.9: +pbkdf2@^3.0.3, pbkdf2@^3.0.9: version "3.0.12" resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2" dependencies: @@ -2753,6 +3241,10 @@ pegjs@^0.10.0: version "0.10.0" resolved "https://registry.yarnpkg.com/pegjs/-/pegjs-0.10.0.tgz#cf8bafae6eddff4b5a7efb185269eaaf4610ddbd" +performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + pify@^2.0.0: version "2.3.0" resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" @@ -2771,7 +3263,7 @@ pluralize@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" -prebuild-install@^2.0.0, prebuild-install@^2.1.0: +prebuild-install@^2.0.0: version "2.1.2" resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.1.2.tgz#d9ae0ca85330e03962d93292f95a8b44c2ebf505" dependencies: @@ -2794,6 +3286,10 @@ prelude-ls@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" +preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + private@^0.1.6: version "0.1.7" resolved "https://registry.yarnpkg.com/private/-/private-0.1.7.tgz#68ce5e8a1ef0a23bb570cc28537b5332aba63ef1" @@ -2802,6 +3298,10 @@ process-nextick-args@~1.0.6: version "1.0.7" resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" +process@^0.11.0: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" @@ -2818,42 +3318,19 @@ prr@~1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" -pull-cat@^1.1.9: - version "1.1.11" - resolved "https://registry.yarnpkg.com/pull-cat/-/pull-cat-1.1.11.tgz#b642dd1255da376a706b6db4fa962f5fdb74c31b" +pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" -pull-level@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/pull-level/-/pull-level-2.0.3.tgz#9500635e257945d6feede185f5d7a24773455b17" +public-encrypt@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.0.tgz#39f699f3a46560dd5ebacbca693caf7c65c18cc6" dependencies: - level-post "~1.0.3" - pull-cat "^1.1.9" - pull-live "^1.0.1" - pull-pushable "^2.0.0" - pull-stream "^3.4.0" - pull-window "^2.1.4" - stream-to-pull-stream "^1.7.1" - -pull-live@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/pull-live/-/pull-live-1.0.1.tgz#a4ecee01e330155e9124bbbcf4761f21b38f51f5" - dependencies: - pull-cat "^1.1.9" - pull-stream "^3.4.0" - -pull-pushable@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pull-pushable/-/pull-pushable-2.1.1.tgz#86666abbe3f5402f1f7ead03eefd69b785eca5b8" - -pull-stream@^3.2.3, pull-stream@^3.4.0, pull-stream@^3.4.5: - version "3.6.0" - resolved "https://registry.yarnpkg.com/pull-stream/-/pull-stream-3.6.0.tgz#59d033a6815d4e3097d47c3d2b1893a9e58a2351" - -pull-window@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/pull-window/-/pull-window-2.1.4.tgz#fc3b86feebd1920c7ae297691e23f705f88552f0" - dependencies: - looper "^2.0.0" + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" pump@^1.0.0, pump@^1.0.1: version "1.0.2" @@ -2862,7 +3339,11 @@ pump@^1.0.0, pump@^1.0.1: end-of-stream "^1.1.0" once "^1.3.1" -punycode@^1.4.1: +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + +punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -2870,13 +3351,32 @@ qs@~6.3.0: version "6.3.2" resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" -randombytes@^2.0.1: +qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + +querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + +querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + +randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + +randombytes@^2.0.0, randombytes@^2.0.1: version "2.0.5" resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.5.tgz#dc009a246b8d09a177b4b7a0ae77bc570f4b1b79" dependencies: safe-buffer "^5.1.0" -rc@^1.1.6: +rc@^1.1.6, rc@^1.1.7: version "1.2.1" resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.1.tgz#2e03e8e42ee450b8cb3dce65be1bf8974e1dfd95" dependencies: @@ -2892,6 +3392,13 @@ read-pkg-up@^1.0.1: find-up "^1.0.0" read-pkg "^1.0.0" +read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + read-pkg@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" @@ -2900,16 +3407,24 @@ read-pkg@^1.0.0: normalize-package-data "^2.3.2" path-type "^1.0.0" -readable-stream@^1.0.33: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" +read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + +readable-stream@^1.0.33, readable-stream@~1.0.15: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.2.2: +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6: version "2.2.11" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.11.tgz#0796b31f8d7688007ff0b93a8088d34aa17c0f72" dependencies: @@ -2921,14 +3436,14 @@ readable-stream@^2.0.0, readable-stream@^2.0.5, readable-stream@^2.0.6, readable string_decoder "~1.0.0" util-deprecate "~1.0.1" -readable-stream@~1.0.15, readable-stream@~1.0.26: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" +readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" readline2@^1.0.1: version "1.0.1" @@ -2960,6 +3475,13 @@ regenerator-transform@0.9.11: babel-types "^6.19.0" private "^0.1.6" +regex-cache@^0.4.2: + version "0.4.3" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.3.tgz#9b1a6c35d4d0dfcef5711ae651e8e9d3d7114145" + dependencies: + is-equal-shallow "^0.1.3" + is-primitive "^2.0.0" + regexpu-core@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" @@ -2978,6 +3500,14 @@ regjsparser@^0.1.4: dependencies: jsesc "~0.5.0" +remove-trailing-separator@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz#69b062d978727ad14dc6b56ba4ab772fd8d70511" + +repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + repeat-string@^1.5.2: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -3025,6 +3555,33 @@ request@2.79.0, request@^2.67.0: tunnel-agent "~0.4.1" uuid "^3.0.0" +request@^2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -3075,16 +3632,18 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" +rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: + version "2.6.1" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" + dependencies: + glob "^7.0.5" + rimraf@^2.2.8: version "2.4.5" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" dependencies: glob "^6.0.1" -rimraf@~2.2.6: - version "2.2.8" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" @@ -3147,10 +3706,6 @@ secp256k1@^3.0.1: prebuild-install "^2.0.0" safe-buffer "^5.1.0" -seedrandom@~2.4.2: - version "2.4.3" - resolved "https://registry.yarnpkg.com/seedrandom/-/seedrandom-2.4.3.tgz#2438504dad33917314bff18ac4d794f16d6aaecc" - semaphore@>=1.0.1, semaphore@^1.0.3: version "1.0.5" resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.0.5.tgz#b492576e66af193db95d65e25ec53f5f19798d60" @@ -3167,6 +3722,14 @@ set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" +set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + +setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + sha.js@^2.4.0, sha.js@^2.4.8: version "2.4.8" resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.8.tgz#37068c2c476b6baf402d14a49c67f597921f634f" @@ -3179,6 +3742,16 @@ sha3@^1.1.0: dependencies: nan "^2.0.5" +shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + +shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + shelljs@^0.7.4, shelljs@^0.7.5: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" @@ -3187,10 +3760,6 @@ shelljs@^0.7.4, shelljs@^0.7.5: interpret "^1.0.0" rechoir "^0.6.2" -shelljs@~0.6.0: - version "0.6.1" - resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.6.1.tgz#ec6211bed1920442088fe0f70b2837232ed2c8a8" - sigmund@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" @@ -3225,7 +3794,7 @@ sol-explore@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/sol-explore/-/sol-explore-1.6.2.tgz#43ae8c419fd3ac056a05f8a9d1fb1022cd41ecc2" -solc@0.4.13: +solc@0.4.13, solc@^0.4.2: version "0.4.13" resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.13.tgz#aa5cbdcce3e6ae3c190d20f5fdf8bc880702ec75" dependencies: @@ -3235,32 +3804,13 @@ solc@0.4.13: semver "^5.3.0" yargs "^4.7.1" -solc@0.4.8: - version "0.4.8" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.8.tgz#96abbee1266341ae97fb4bdc3abcc9bc1b5052ab" - dependencies: - fs-extra "^0.30.0" - memorystream "^0.3.1" - require-from-string "^1.1.0" - semver "^5.3.0" - yargs "^4.7.1" - -solc@^0.4.2: - version "0.4.11" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.11.tgz#2522eb43e7c0419bac2060b96e20a2593bfb5e8b" - dependencies: - fs-extra "^0.30.0" - memorystream "^0.3.1" - require-from-string "^1.1.0" - semver "^5.3.0" - yargs "^4.7.1" - -solidity-coverage@^0.1.7: - version "0.1.7" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.1.7.tgz#dd83d0685fc3bb107355da3b7da2db576bbc7374" +solidity-coverage@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.2.1.tgz#aa6fd8e7d49a6fcd1dc9913e9b61bc84f8ad046f" dependencies: commander "^2.9.0" - ethereumjs-testrpc-sc "https://github.com/sc-forks/testrpc-sc.git" + death "^1.1.0" + ethereumjs-testrpc-sc "4.0.1" istanbul "^0.4.5" keccakjs "^0.2.1" mkdirp "^0.5.1" @@ -3268,6 +3818,7 @@ solidity-coverage@^0.1.7: shelljs "^0.7.4" sol-explore "^1.6.2" solidity-parser "git+https://github.com/sc-forks/solidity-parser.git" + web3 "^0.18.4" "solidity-parser@git+https://github.com/sc-forks/solidity-parser.git": version "0.3.0" @@ -3277,6 +3828,10 @@ solidity-coverage@^0.1.7: pegjs "^0.10.0" yargs "^4.6.0" +source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + source-map-support@^0.4.2: version "0.4.15" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.15.tgz#03202df65c06d2bd8c7ec2362a193056fef8d3b1" @@ -3289,7 +3844,7 @@ source-map@^0.4.4: dependencies: amdefine ">=0.0.4" -source-map@^0.5.0, source-map@^0.5.6, source-map@~0.5.1: +source-map@^0.5.0, source-map@^0.5.3, source-map@^0.5.6, source-map@~0.5.1, source-map@~0.5.3: version "0.5.6" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.6.tgz#75ce38f52bf0733c5a7f0c118d81334a2bb5f412" @@ -3331,12 +3886,22 @@ sshpk@^1.7.0: jsbn "~0.1.0" tweetnacl "~0.14.0" -stream-to-pull-stream@^1.7.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/stream-to-pull-stream/-/stream-to-pull-stream-1.7.2.tgz#757609ae1cebd33c7432d4afbe31ff78650b9dde" +stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" dependencies: - looper "^3.0.0" - pull-stream "^3.2.3" + inherits "~2.0.1" + readable-stream "^2.0.2" + +stream-http@^2.3.1: + version "2.7.2" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.7.2.tgz#40a050ec8dc3b53b33d9909415c02c0bf1abfbad" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.2.6" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" @@ -3361,7 +3926,7 @@ string.prototype.trim@~1.1.2: es-abstract "^1.5.0" function-bind "^1.0.2" -string_decoder@~0.10.x: +string_decoder@^0.10.25, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" @@ -3397,6 +3962,10 @@ strip-bom@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" +strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + strip-hex-prefix@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" @@ -3421,6 +3990,12 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" +supports-color@^4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" + dependencies: + has-flag "^2.0.0" + table@^3.7.8: version "3.8.3" resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" @@ -3432,6 +4007,10 @@ table@^3.7.8: slice-ansi "0.0.4" string-width "^2.0.0" +tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + tape@^4.4.0: version "4.6.3" resolved "https://registry.yarnpkg.com/tape/-/tape-4.6.3.tgz#637e77581e9ab2ce17577e9bd4ce4f575806d8b6" @@ -3459,6 +4038,19 @@ tar-fs@^1.13.0: pump "^1.0.0" tar-stream "^1.1.2" +tar-pack@^3.4.0: + version "3.4.0" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.0.tgz#23be2d7f671a8339376cbdb0b8fe3fdebf317984" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + tar-stream@^1.1.2: version "1.5.4" resolved "https://registry.yarnpkg.com/tar-stream/-/tar-stream-1.5.4.tgz#36549cf04ed1aee9b2a30c0143252238daf94016" @@ -3468,12 +4060,13 @@ tar-stream@^1.1.2: readable-stream "^2.0.0" xtend "^4.0.0" -temp@^0.8.3: - version "0.8.3" - resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" +tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: - os-tmpdir "^1.0.0" - rimraf "~2.2.6" + block-stream "*" + fstream "^1.0.2" + inherits "2" text-table@~0.2.0: version "0.2.0" @@ -3483,11 +4076,16 @@ through@^2.3.6, through@~2.3.4, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" -tmp@0.0.31: - version "0.0.31" - resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.0.31.tgz#8f38ab9438e17315e5dbd8b3657e8bfb277ae4a7" +timers-browserify@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.3.tgz#41fd0bdc926a5feedc33a17a8e1f7d491925f7fc" dependencies: - os-tmpdir "~1.0.1" + global "^4.3.2" + setimmediate "^1.0.4" + +to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" to-fast-properties@^1.0.1: version "1.0.3" @@ -3532,10 +4130,20 @@ tryit@^1.0.1: version "1.0.3" resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" +tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + tunnel-agent@^0.4.3, tunnel-agent@~0.4.1: version "0.4.3" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" +tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -3554,28 +4162,10 @@ type-detect@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.3.tgz#0e3f2670b44099b0b46c284d136a7ef49c74c2ea" -typedarray-to-buffer@~1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz#9bb8ba0e841fb3f4cf1fe7c245e9f3fa8a5fe99c" - typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -typewise-core@^1.2, typewise-core@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/typewise-core/-/typewise-core-1.2.0.tgz#97eb91805c7f55d2f941748fa50d315d991ef195" - -typewise@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/typewise/-/typewise-1.0.3.tgz#1067936540af97937cc5dcf9922486e9fa284651" - dependencies: - typewise-core "^1.2.0" - -typewiselite@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/typewiselite/-/typewiselite-1.0.0.tgz#c8882fa1bb1092c06005a97f34ef5c8508e3664e" - uglify-js@^2.6: version "2.8.28" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.28.tgz#e335032df9bb20dcb918f164589d5af47f38834a" @@ -3585,10 +4175,31 @@ uglify-js@^2.6: optionalDependencies: uglify-to-browserify "~1.0.0" +uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" +uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + +uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + unorm@^1.3.3: version "1.4.1" resolved "https://registry.yarnpkg.com/unorm/-/unorm-1.4.1.tgz#364200d5f13646ca8bcd44490271335614792300" @@ -3597,6 +4208,13 @@ unzip-response@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/unzip-response/-/unzip-response-1.0.2.tgz#b984f0877fc0a89c2c773cc1ef7b5b232b5b06fe" +url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + user-home@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" @@ -3611,6 +4229,12 @@ util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" +util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + uuid@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" @@ -3632,6 +4256,20 @@ verror@1.3.6: dependencies: extsprintf "1.0.2" +vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + +watchpack@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.4.0.tgz#4a1472bcbb952bd0a9bb4036801f954dfb39faac" + dependencies: + async "^2.1.2" + chokidar "^1.7.0" + graceful-fs "^4.1.2" + web3-provider-engine@^8.4.0: version "8.6.1" resolved "https://registry.yarnpkg.com/web3-provider-engine/-/web3-provider-engine-8.6.1.tgz#4d86e19e30caaf97df351511ec0f60136e5b30eb" @@ -3651,26 +4289,7 @@ web3-provider-engine@^8.4.0: xhr "^2.2.0" xtend "^4.0.1" -"web3-provider-engine@https://github.com/sc-forks/provider-engine-sc.git#8.1.19": - version "8.1.19" - resolved "https://github.com/sc-forks/provider-engine-sc.git#d778af8f26fd94cdb2de4678bc55c4ca1ad8abfa" - dependencies: - async "^2.1.2" - clone "^2.0.0" - ethereumjs-block "^1.2.2" - ethereumjs-tx "^1.2.0" - ethereumjs-util "^5.0.1" - ethereumjs-vm-sc "https://github.com/sc-forks/ethereumjs-vm-sc.git" - isomorphic-fetch "^2.2.0" - request "^2.67.0" - semaphore "^1.0.3" - solc "^0.4.2" - tape "^4.4.0" - web3 "^0.16.0" - xhr "^2.2.0" - xtend "^4.0.1" - -web3@^0.16.0, web3@~0.16.0: +web3@^0.16.0: version "0.16.0" resolved "https://registry.yarnpkg.com/web3/-/web3-0.16.0.tgz#a4554175cd462943035b1f1d39432f741c6b6019" dependencies: @@ -3679,7 +4298,7 @@ web3@^0.16.0, web3@~0.16.0: utf8 "^2.1.1" xmlhttprequest "*" -web3@^0.18.2: +web3@^0.18.2, web3@^0.18.4: version "0.18.4" resolved "https://registry.yarnpkg.com/web3/-/web3-0.18.4.tgz#81ec1784145491f2eaa8955b31c06049e07c5e7d" dependencies: @@ -3689,6 +4308,40 @@ web3@^0.18.2: xhr2 "*" xmlhttprequest "*" +webpack-sources@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.0.1.tgz#c7356436a4d13123be2e2426a05d1dad9cbe65cf" + dependencies: + source-list-map "^2.0.0" + source-map "~0.5.3" + +webpack@^3.0.0: + version "3.5.4" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.5.4.tgz#5583eb263ed27b78b5bd17bfdfb0eb1b1cd1bf81" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^5.1.5" + ajv-keywords "^2.0.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + whatwg-fetch@>=0.10.0: version "2.0.3" resolved "https://registry.yarnpkg.com/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz#9c84ec2dcf68187ff00bc64e1274b442176e1c84" @@ -3697,7 +4350,11 @@ which-module@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" -which@^1.1.1: +which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + +which@^1.1.1, which@^1.2.9: version "1.2.14" resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" dependencies: @@ -3713,10 +4370,6 @@ window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" -window-size@^0.1.2: - version "0.1.4" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" - window-size@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.2.0.tgz#b4315bb4214a3d7058ebeee892e13fa24d98b075" @@ -3771,20 +4424,20 @@ xtend@4.0.1, xtend@^4.0.0, xtend@^4.0.1, xtend@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" -xtend@~2.1.1, xtend@~2.1.2: +xtend@~2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-2.1.2.tgz#6efecc2a4dad8e6962c4901b337ce7ba87b5d28b" dependencies: object-keys "~0.4.0" -xtend@~3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-3.0.0.tgz#5cce7407baf642cba7becda568111c493f59665a" - -y18n@^3.2.0, y18n@^3.2.1: +y18n@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" +yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + yargs-parser@^2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-2.4.1.tgz#85568de3cf150ff49fa51825f03a8c880ddcc5c4" @@ -3792,6 +4445,12 @@ yargs-parser@^2.4.1: camelcase "^3.0.0" lodash.assign "^4.0.6" +yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + yargs@^4.6.0, yargs@^4.7.1: version "4.8.1" resolved "https://registry.yarnpkg.com/yargs/-/yargs-4.8.1.tgz#c0c42924ca4aaa6b0e6da1739dfb216439f9ddc0" @@ -3811,6 +4470,24 @@ yargs@^4.6.0, yargs@^4.7.1: y18n "^3.2.1" yargs-parser "^2.4.1" +yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + yargs@~3.10.0: version "3.10.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" @@ -3819,14 +4496,3 @@ yargs@~3.10.0: cliui "^2.1.0" decamelize "^1.0.0" window-size "0.1.0" - -yargs@~3.29.0: - version "3.29.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.29.0.tgz#1aab9660eae79d8b8f675bcaeeab6ee34c2cf69c" - dependencies: - camelcase "^1.2.1" - cliui "^3.0.3" - decamelize "^1.0.0" - os-locale "^1.4.0" - window-size "^0.1.2" - y18n "^3.2.0" From 2c2067ecc1cd23c093acd0523a1eeb7b62c14058 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sat, 12 Aug 2017 18:57:32 -0300 Subject: [PATCH 104/160] sync yarn.lock file with package-lock.json 1. deleted node_modules 2. ran `npm install` 3. deleted yarn.lock 4. ran `yarn import` --- package-lock.json | 2163 +++++++++++++++++++++++++++++++++------------ yarn.lock | 788 ++++++----------- 2 files changed, 1839 insertions(+), 1112 deletions(-) diff --git a/package-lock.json b/package-lock.json index f4360e813..1f566ccda 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14,16 +14,58 @@ "version": "2.6.2", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.6.2.tgz", "integrity": "sha512-6RmGuGZSsvwIYS9otANM+Rie7/6UNdE0IbxwUiXFjXmjHNCJZEjyX2Pltl5BvIYszLODlsnXtyA7A7Ujlca4Gw==", + "dev": true, "requires": { "xtend": "4.0.1" } }, + "acorn": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.1.1.tgz", + "integrity": "sha512-vOk6uEMctu0vQrvuSqFdJyqj1Q0S5VTDL79qtjo+DhRr+1mmaD+tluFSCZqhvi/JUhXSzoZN2BhtstaPEeE8cw==", + "dev": true + }, + "acorn-dynamic-import": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz", + "integrity": "sha1-x1K9IQvvZ5UBtsbLf8hPj0cVjMQ=", + "dev": true, + "requires": { + "acorn": "4.0.13" + }, + "dependencies": { + "acorn": { + "version": "4.0.13", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-4.0.13.tgz", + "integrity": "sha1-EFSVrlNh1pe9GVyCUZLhrX8lN4c=", + "dev": true + } + } + }, "aes-js": { "version": "0.2.4", "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-0.2.4.tgz", "integrity": "sha1-lLiBq3FyhtAV+iGeCPtmcJ3aWj0=", "dev": true }, + "ajv": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-5.2.2.tgz", + "integrity": "sha1-R8aNaehvXZUxA7AHSpQw3GPaXjk=", + "dev": true, + "requires": { + "co": "4.6.0", + "fast-deep-equal": "1.0.0", + "json-schema-traverse": "0.3.1", + "json-stable-stringify": "1.0.1" + } + }, + "ajv-keywords": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-2.1.0.tgz", + "integrity": "sha1-opbhf3v658HOT34N5T0pyzIWLfA=", + "dev": true + }, "align-text": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", @@ -44,7 +86,8 @@ "ansi-regex": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=" + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true }, "ansi-styles": { "version": "2.2.1", @@ -52,15 +95,27 @@ "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", "dev": true }, + "anymatch": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-1.3.2.tgz", + "integrity": "sha512-0XNayC8lTHQ2OI8aljNCN3sSx6hsr/1+rlcDAotXJR7C1oZZHCNsfpbKwMjRA3Uqb5tF1Rae2oloTr4xpq+WjA==", + "dev": true, + "requires": { + "micromatch": "2.3.11", + "normalize-path": "2.1.1" + } + }, "aproba": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.1.2.tgz", - "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==" + "integrity": "sha512-ZpYajIfO0j2cOFTO955KUMIKNmj6zhX8kVztMAxFsDaMwz+9Z9SV0uou2pC9HJqcfpffOsjnbrDMvkNy+9RXPw==", + "dev": true }, "are-we-there-yet": { "version": "1.1.4", "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz", "integrity": "sha1-u13KOCu5TwXhUZQ3PRb9O6HKEQ0=", + "dev": true, "requires": { "delegates": "1.0.0", "readable-stream": "2.3.3" @@ -75,12 +130,53 @@ "sprintf-js": "1.0.3" } }, + "arr-diff": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", + "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", + "dev": true, + "requires": { + "arr-flatten": "1.1.0" + } + }, + "arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "dev": true + }, + "array-unique": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", + "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", + "dev": true + }, "asn1": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.3.tgz", "integrity": "sha1-2sh4dxPJlmhJ/IGAd36+nB3fO4Y=", "dev": true }, + "asn1.js": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-4.9.1.tgz", + "integrity": "sha1-SLokC0WpKA6UdImQull9IWYX/UA=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } + }, + "assert": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/assert/-/assert-1.4.1.tgz", + "integrity": "sha1-mZEtWRg2tab1s0XA8H7vwI/GXZE=", + "dev": true, + "requires": { + "util": "0.10.3" + } + }, "assert-plus": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-0.2.0.tgz", @@ -96,12 +192,20 @@ "async": { "version": "1.5.2", "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=" + "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "dev": true + }, + "async-each": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.1.tgz", + "integrity": "sha1-GdOGodntxufByF04iu28xW0zYC0=", + "dev": true }, "async-eventemitter": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/async-eventemitter/-/async-eventemitter-0.2.3.tgz", "integrity": "sha1-959IDf2mZFqXvWFCwBcVDWO05w4=", + "dev": true, "requires": { "async": "2.5.0" }, @@ -110,6 +214,7 @@ "version": "2.5.0", "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dev": true, "requires": { "lodash": "4.17.4" } @@ -906,6 +1011,12 @@ "integrity": "sha1-QtPXF0dPnqAiB/bRqh9CaRPut6w=", "dev": true }, + "base64-js": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", + "integrity": "sha512-dwVUVIXsBZXwTuwnXI9RK8sBmgq09NDHzyR9SAph9eqk76gKK2JSQmZARC2zRC81JC2QTtxD0ARU5qTS25gIGw==", + "dev": true + }, "bcrypt-pbkdf": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz", @@ -916,16 +1027,23 @@ "tweetnacl": "0.14.5" } }, - "bignumber.js": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-2.1.4.tgz", - "integrity": "sha1-KbO7aT27I46Ity6sL7iWUIiLLVk=", + "big.js": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-3.1.3.tgz", + "integrity": "sha1-TK2iGTZS6zyp7I5VyQFWacmAaXg=", + "dev": true + }, + "binary-extensions": { + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.9.0.tgz", + "integrity": "sha1-ZlBsFs5vTWkopbPNajPKQelB43s=", "dev": true }, "bindings": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", - "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==" + "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==", + "dev": true }, "bip39": { "version": "2.2.0", @@ -943,6 +1061,7 @@ "version": "1.1.5", "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", "integrity": "sha1-AfqHSHhcpwlV1QESF9GzE5lpyiI=", + "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -951,6 +1070,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/bl/-/bl-1.2.1.tgz", "integrity": "sha1-ysMo977kVzDUBLaSID/LWQ4XLV4=", + "dev": true, "requires": { "readable-stream": "2.3.3" } @@ -958,7 +1078,8 @@ "bn.js": { "version": "4.11.8", "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.8.tgz", - "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==" + "integrity": "sha512-ItfYfPLkWHUjckQCk8xC+LwxgK8NYcXywGigJgSwOP8Y2iyWT4f2vsZnoOXTTbo+o5yXmIUJ4gn5538SO5S3gA==", + "dev": true }, "boom": { "version": "2.10.1", @@ -979,10 +1100,22 @@ "concat-map": "0.0.1" } }, + "braces": { + "version": "1.8.5", + "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", + "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", + "dev": true, + "requires": { + "expand-range": "1.8.2", + "preserve": "0.2.0", + "repeat-element": "1.1.2" + } + }, "brorand": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=" + "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", + "dev": true }, "browser-stdout": { "version": "1.3.0", @@ -994,6 +1127,7 @@ "version": "1.0.6", "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.0.6.tgz", "integrity": "sha1-Xncl297x/Vkw1OurSFZ85FHEigo=", + "dev": true, "requires": { "buffer-xor": "1.0.3", "cipher-base": "1.0.4", @@ -1002,14 +1136,71 @@ "inherits": "2.0.3" } }, + "browserify-cipher": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.0.tgz", + "integrity": "sha1-mYgkSHS/XtTijalWZtzWasj8Njo=", + "dev": true, + "requires": { + "browserify-aes": "1.0.6", + "browserify-des": "1.0.0", + "evp_bytestokey": "1.0.0" + } + }, + "browserify-des": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.0.tgz", + "integrity": "sha1-2qJ3cXRwki7S/hhZQRihdUOXId0=", + "dev": true, + "requires": { + "cipher-base": "1.0.4", + "des.js": "1.0.0", + "inherits": "2.0.3" + } + }, + "browserify-rsa": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.0.1.tgz", + "integrity": "sha1-IeCr+vbyApzy+vsTNWenAdQTVSQ=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "randombytes": "2.0.5" + } + }, "browserify-sha3": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/browserify-sha3/-/browserify-sha3-0.0.1.tgz", "integrity": "sha1-P/NKMAbvFcD7NWflQbkaI0ASPRE=", + "dev": true, "requires": { "js-sha3": "0.3.1" } }, + "browserify-sign": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.0.4.tgz", + "integrity": "sha1-qk62jl17ZYuqa/alfmMMvXqT0pg=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "elliptic": "6.4.0", + "inherits": "2.0.3", + "parse-asn1": "5.1.0" + } + }, + "browserify-zlib": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.1.4.tgz", + "integrity": "sha1-uzX4pRn2AOD6a4SFJByXnQFB+y0=", + "dev": true, + "requires": { + "pako": "0.2.9" + } + }, "bs58": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/bs58/-/bs58-3.1.0.tgz", @@ -1029,10 +1220,22 @@ "create-hash": "1.1.3" } }, + "buffer": { + "version": "4.9.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.1.tgz", + "integrity": "sha1-bRu2AbB6TvztlwlBMgkwJ8lbwpg=", + "dev": true, + "requires": { + "base64-js": "1.2.1", + "ieee754": "1.1.8", + "isarray": "1.0.0" + } + }, "buffer-xor": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=" + "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", + "dev": true }, "builtin-modules": { "version": "1.1.1", @@ -1040,24 +1243,11 @@ "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", "dev": true }, - "bytewise": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/bytewise/-/bytewise-1.1.0.tgz", - "integrity": "sha1-HRPL/3F65xWAlKqIGzXQgbOHJT4=", - "dev": true, - "requires": { - "bytewise-core": "1.2.3", - "typewise": "1.0.3" - } - }, - "bytewise-core": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/bytewise-core/-/bytewise-core-1.2.3.tgz", - "integrity": "sha1-P7QQx+kVWOsasiqCg0V3qmvWHUI=", - "dev": true, - "requires": { - "typewise-core": "1.2.0" - } + "builtin-status-codes": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", + "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", + "dev": true }, "camelcase": { "version": "3.0.0", @@ -1076,7 +1266,6 @@ "resolved": "https://registry.npmjs.org/center-align/-/center-align-0.1.3.tgz", "integrity": "sha1-qg0yYptu6XIgBBHL1EYckHvCt60=", "dev": true, - "optional": true, "requires": { "align-text": "0.1.4", "lazy-cache": "1.0.4" @@ -1134,19 +1323,38 @@ "version": "1.1.0", "resolved": "https://registry.npmjs.org/checkpoint-store/-/checkpoint-store-1.1.0.tgz", "integrity": "sha1-BOTLUWuRQziTWB5tRgGnjpVS6gY=", + "dev": true, "requires": { "functional-red-black-tree": "1.0.1" } }, + "chokidar": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-1.7.0.tgz", + "integrity": "sha1-eY5ol3gVHIB2tLNg5e3SjNortGg=", + "dev": true, + "requires": { + "anymatch": "1.3.2", + "async-each": "1.0.1", + "glob-parent": "2.0.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "2.0.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0" + } + }, "chownr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", - "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=" + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "dev": true }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dev": true, "requires": { "inherits": "2.0.3", "safe-buffer": "5.1.1" @@ -1169,10 +1377,17 @@ "integrity": "sha1-0hfR6WERjjrJpLi7oyhVU79kfNs=", "dev": true }, + "co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "dev": true + }, "code-point-at": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true }, "coinstring": { "version": "2.3.0", @@ -1213,10 +1428,26 @@ "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, + "console-browserify": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.1.0.tgz", + "integrity": "sha1-8CQcRXMKn8YyOyBtvzjtx0HQuxA=", + "dev": true, + "requires": { + "date-now": "0.1.4" + } + }, "console-control-strings": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=" + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, + "constants-browserify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", + "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", + "dev": true }, "convert-source-map": { "version": "1.5.0", @@ -1233,7 +1464,8 @@ "core-util-is": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=" + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true }, "coveralls": { "version": "2.13.1", @@ -1256,10 +1488,21 @@ } } }, + "create-ecdh": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.0.tgz", + "integrity": "sha1-iIxyNZbN92EvZJgjPuvXo1MBc30=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "elliptic": "6.4.0" + } + }, "create-hash": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.1.3.tgz", "integrity": "sha1-YGBCrIuSYnUPSDyt2rD1gZFy2P0=", + "dev": true, "requires": { "cipher-base": "1.0.4", "inherits": "2.0.3", @@ -1271,6 +1514,7 @@ "version": "1.1.6", "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.6.tgz", "integrity": "sha1-rLniIaThe9sHbpBlfEK5PjcmzwY=", + "dev": true, "requires": { "cipher-base": "1.0.4", "create-hash": "1.1.3", @@ -1280,6 +1524,29 @@ "sha.js": "2.4.8" } }, + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", + "dev": true, + "requires": { + "lru-cache": "4.1.1", + "shebang-command": "1.2.0", + "which": "1.3.0" + }, + "dependencies": { + "lru-cache": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.1.tgz", + "integrity": "sha512-q4spe4KTfsAS1SUHLO0wz8Qiyf1+vMIAgpRYioFYDMNqKfHQbg+AVDH3i4fvpl71/P1L0dBl+fQi+P37UYf0ew==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + } + } + }, "cryptiles": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-2.0.5.tgz", @@ -1289,12 +1556,39 @@ "boom": "2.10.1" } }, + "crypto-browserify": { + "version": "3.11.1", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.11.1.tgz", + "integrity": "sha512-Na7ZlwCOqoaW5RwUK1WpXws2kv8mNhWdTlzob0UXulk6G9BDbyiJaGTYBIX61Ozn9l1EPPJpICZb4DaOpT9NlQ==", + "dev": true, + "requires": { + "browserify-cipher": "1.0.0", + "browserify-sign": "4.0.4", + "create-ecdh": "4.0.0", + "create-hash": "1.1.3", + "create-hmac": "1.1.6", + "diffie-hellman": "5.0.2", + "inherits": "2.0.3", + "pbkdf2": "3.0.13", + "public-encrypt": "4.0.0", + "randombytes": "2.0.5" + } + }, "crypto-js": { "version": "3.1.8", "resolved": "https://registry.npmjs.org/crypto-js/-/crypto-js-3.1.8.tgz", "integrity": "sha1-cV8HC/YBTyrpkqmLOSkli3E/CNU=", "dev": true }, + "d": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz", + "integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=", + "dev": true, + "requires": { + "es5-ext": "0.10.27" + } + }, "dashdash": { "version": "1.14.1", "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", @@ -1312,6 +1606,12 @@ } } }, + "date-now": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/date-now/-/date-now-0.1.4.tgz", + "integrity": "sha1-6vQ5/U1ISK105cx9vvIAZyueNFs=", + "dev": true + }, "death": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/death/-/death-1.1.0.tgz", @@ -1359,7 +1659,8 @@ "deep-extend": { "version": "0.4.2", "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.4.2.tgz", - "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=" + "integrity": "sha1-SLaZwn4zS/ifEIkr5DL25MfTSn8=", + "dev": true }, "deep-is": { "version": "0.1.3", @@ -1371,6 +1672,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz", "integrity": "sha512-uukrWD2bguRtXilKt6cAWKyoXrTSMo5m7crUdLfWQmu8kIm88w3QZoUL+6nhpfKVmhHANER6Re3sKoNoZ3IKMA==", + "dev": true, "requires": { "abstract-leveldown": "2.6.2" } @@ -1408,7 +1710,18 @@ "delegates": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=" + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, + "des.js": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.0.tgz", + "integrity": "sha1-wHTS4qpqipoH29YfmhXCzYPsjsw=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "minimalistic-assert": "1.0.0" + } }, "detect-indent": { "version": "4.0.0", @@ -1425,16 +1738,34 @@ "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=", "dev": true }, + "diffie-hellman": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.2.tgz", + "integrity": "sha1-tYNXOScM/ias9jIJn97SoH8gnl4=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "miller-rabin": "4.0.0", + "randombytes": "2.0.5" + } + }, "dom-walk": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/dom-walk/-/dom-walk-0.1.1.tgz", "integrity": "sha1-ZyIm3HTI95mtNTB9+TaroRrNYBg=", "dev": true }, + "domain-browser": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.1.7.tgz", + "integrity": "sha1-hnqksJP6oF8d4IwG9NeyH9+GmLw=", + "dev": true + }, "drbg.js": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", "integrity": "sha1-Pja2xCs3BDgjzbwzLVjzHiRFSAs=", + "dev": true, "requires": { "browserify-aes": "1.0.6", "create-hash": "1.1.3", @@ -1455,6 +1786,7 @@ "version": "6.4.0", "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.4.0.tgz", "integrity": "sha1-ysmvh2LIWDYYcAPI3+GT5eLq5d8=", + "dev": true, "requires": { "bn.js": "4.11.8", "brorand": "1.1.0", @@ -1465,6 +1797,12 @@ "minimalistic-crypto-utils": "1.0.1" } }, + "emojis-list": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", + "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", + "dev": true + }, "encoding": { "version": "0.1.12", "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.12.tgz", @@ -1478,14 +1816,28 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.0.tgz", "integrity": "sha1-epDYM+/abPpurA9JSduw+tOmMgY=", + "dev": true, "requires": { "once": "1.4.0" } }, + "enhanced-resolve": { + "version": "3.4.1", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz", + "integrity": "sha1-BCHjOf1xQZs9oT0Smzl5BAIwR24=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "memory-fs": "0.4.1", + "object-assign": "4.1.1", + "tapable": "0.2.8" + } + }, "errno": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.4.tgz", "integrity": "sha1-uJbiOp5ei6M4cfyZar02NfyaHH0=", + "dev": true, "requires": { "prr": "0.0.0" }, @@ -1493,7 +1845,8 @@ "prr": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=" + "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", + "dev": true } } }, @@ -1530,6 +1883,76 @@ "is-symbol": "1.0.1" } }, + "es5-ext": { + "version": "0.10.27", + "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.27.tgz", + "integrity": "sha512-3KXJRYzKXTd7xfFy5uZsJCXue55fAYQ035PRjyYk2PicllxIwcW9l3AbM/eGaw3vgVAUW4tl4xg9AXDEI6yw0w==", + "dev": true, + "requires": { + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } + }, + "es6-iterator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.1.tgz", + "integrity": "sha1-jjGcnwRTv1ddN0lAplWSDlnKVRI=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.27", + "es6-symbol": "3.1.1" + } + }, + "es6-map": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-map/-/es6-map-0.1.5.tgz", + "integrity": "sha1-kTbgUD3MBqMBaQ8LsU/042TpSfA=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.27", + "es6-iterator": "2.0.1", + "es6-set": "0.1.5", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-set": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/es6-set/-/es6-set-0.1.5.tgz", + "integrity": "sha1-0rPsXU2ADO2BjbU40ol02wpzzLE=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.27", + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1", + "event-emitter": "0.3.5" + } + }, + "es6-symbol": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz", + "integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.27" + } + }, + "es6-weak-map": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz", + "integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.27", + "es6-iterator": "2.0.1", + "es6-symbol": "3.1.1" + } + }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", @@ -1561,12 +1984,50 @@ } } }, + "escope": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/escope/-/escope-3.6.0.tgz", + "integrity": "sha1-4Bl16BJ4GhY6ba392AOY3GTIicM=", + "dev": true, + "requires": { + "es6-map": "0.1.5", + "es6-weak-map": "2.0.2", + "esrecurse": "4.2.0", + "estraverse": "4.2.0" + }, + "dependencies": { + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + } + } + }, "esprima": { "version": "2.7.3", "resolved": "https://registry.npmjs.org/esprima/-/esprima-2.7.3.tgz", "integrity": "sha1-luO3DVd59q1JzQMmc9HDEnZ7pYE=", "dev": true }, + "esrecurse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.2.0.tgz", + "integrity": "sha1-+pVo2Y04I/mkHZHpAtyrnqblsWM=", + "dev": true, + "requires": { + "estraverse": "4.2.0", + "object-assign": "4.1.1" + }, + "dependencies": { + "estraverse": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.2.0.tgz", + "integrity": "sha1-De4/7TH81GlhjOc0IJn8GvoL2xM=", + "dev": true + } + } + }, "estraverse": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-1.9.3.tgz", @@ -1582,12 +2043,14 @@ "ethereum-common": { "version": "0.0.16", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.16.tgz", - "integrity": "sha1-mh4Wnq00q3XgifUMpRK/0PvRJlU=" + "integrity": "sha1-mh4Wnq00q3XgifUMpRK/0PvRJlU=", + "dev": true }, "ethereumjs-account": { "version": "2.0.4", "resolved": "https://registry.npmjs.org/ethereumjs-account/-/ethereumjs-account-2.0.4.tgz", "integrity": "sha1-+MMCMby3B/RRTYoFLB+doQNiTUc=", + "dev": true, "requires": { "ethereumjs-util": "4.5.0", "rlp": "2.0.0" @@ -1597,6 +2060,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "dev": true, "requires": { "bn.js": "4.11.8", "create-hash": "1.1.3", @@ -1611,6 +2075,7 @@ "version": "1.2.2", "resolved": "https://registry.npmjs.org/ethereumjs-block/-/ethereumjs-block-1.2.2.tgz", "integrity": "sha1-LsdTSlkCG47JuDww5JaQxuuu3aE=", + "dev": true, "requires": { "async": "1.5.2", "ethereum-common": "0.0.16", @@ -1623,6 +2088,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "dev": true, "requires": { "bn.js": "4.11.8", "create-hash": "1.1.3", @@ -1639,46 +2105,11 @@ "integrity": "sha1-uw8tPDqjk1CHKtOOQMg+nXhzMck=", "dev": true }, - "ethereumjs-testrpc-sc": { - "version": "git+https://github.com/sc-forks/testrpc-sc.git#a11b9b530caf2785ff24f749fa2d5b0cb59a2810", - "dev": true, - "requires": { - "async": "1.5.2", - "bignumber.js": "2.1.4", - "bip39": "2.2.0", - "ethereumjs-account": "2.0.4", - "ethereumjs-block": "1.2.2", - "ethereumjs-tx": "1.1.2", - "ethereumjs-util": "5.1.2", - "ethereumjs-vm": "git+https://github.com/sc-forks/ethereumjs-vm-sc.git#328771cace30ed16ad5c1d13a69cda13d31173f9", - "ethereumjs-wallet": "0.6.0", - "fake-merkle-patricia-tree": "1.0.1", - "heap": "0.2.6", - "level-browserify": "1.1.1", - "level-sublevel": "6.6.1", - "merkle-patricia-tree": "2.1.2", - "seedrandom": "2.4.3", - "shelljs": "0.6.1", - "solc": "0.4.8", - "temp": "0.8.3", - "tmp": "0.0.31", - "web3": "0.16.0", - "web3-provider-engine": "git+https://github.com/sc-forks/provider-engine-sc.git#0e7af0eb99dfb21d399766bc031cf02e89536fe1", - "yargs": "3.29.0" - }, - "dependencies": { - "shelljs": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.6.1.tgz", - "integrity": "sha1-7GIRvtGSBEIIj+D3Cyg3Iy7SyKg=", - "dev": true - } - } - }, "ethereumjs-tx": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.1.2.tgz", "integrity": "sha1-wVFHfGIF0YYGAOKRCMPqyul+Kfo=", + "dev": true, "requires": { "ethereum-common": "0.0.17", "ethereumjs-util": "4.5.0" @@ -1687,12 +2118,14 @@ "ethereum-common": { "version": "0.0.17", "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.17.tgz", - "integrity": "sha1-C1VMqdUSytyL4EVvvQAP/MOsT28=" + "integrity": "sha1-C1VMqdUSytyL4EVvvQAP/MOsT28=", + "dev": true }, "ethereumjs-util": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "dev": true, "requires": { "bn.js": "4.11.8", "create-hash": "1.1.3", @@ -1810,18 +2243,69 @@ "strip-hex-prefix": "1.0.0" } }, + "event-emitter": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", + "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "dev": true, + "requires": { + "d": "1.0.0", + "es5-ext": "0.10.27" + } + }, + "events": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/events/-/events-1.1.1.tgz", + "integrity": "sha1-nr23Y1rQmccNzEwqH1AEKI6L2SQ=", + "dev": true + }, "evp_bytestokey": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.0.tgz", "integrity": "sha1-SXtmrZ/vZc18CKYYCCS6FHa2blM=", + "dev": true, "requires": { "create-hash": "1.1.3" } }, + "execa": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", + "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", + "dev": true, + "requires": { + "cross-spawn": "5.1.0", + "get-stream": "3.0.0", + "is-stream": "1.1.0", + "npm-run-path": "2.0.2", + "p-finally": "1.0.0", + "signal-exit": "3.0.2", + "strip-eof": "1.0.0" + } + }, + "expand-brackets": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", + "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", + "dev": true, + "requires": { + "is-posix-bracket": "0.1.1" + } + }, + "expand-range": { + "version": "1.8.2", + "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", + "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", + "dev": true, + "requires": { + "fill-range": "2.2.3" + } + }, "expand-template": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-1.0.3.tgz", - "integrity": "sha1-bDAzIxd6YrGyLAcCefeGEoe2mxo=" + "integrity": "sha1-bDAzIxd6YrGyLAcCefeGEoe2mxo=", + "dev": true }, "extend": { "version": "3.0.1", @@ -1829,6 +2313,15 @@ "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=", "dev": true }, + "extglob": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", + "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, "extsprintf": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", @@ -1839,14 +2332,15 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/fake-merkle-patricia-tree/-/fake-merkle-patricia-tree-1.0.1.tgz", "integrity": "sha1-S4w6z7Ugr635hgsfFM2M40As3dM=", + "dev": true, "requires": { "checkpoint-store": "1.1.0" } }, - "fast-future": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/fast-future/-/fast-future-1.0.2.tgz", - "integrity": "sha1-hDWpqqAteSSNF9cE52JZMB2ZKAo=", + "fast-deep-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.0.0.tgz", + "integrity": "sha1-liVqO8l1WV6zbYLpkp0GDYk0Of8=", "dev": true }, "fast-levenshtein": { @@ -1855,6 +2349,25 @@ "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=", "dev": true }, + "filename-regex": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", + "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", + "dev": true + }, + "fill-range": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.3.tgz", + "integrity": "sha1-ULd9/X5Gm8dJJHCWNpn+eoSFpyM=", + "dev": true, + "requires": { + "is-number": "2.1.0", + "isobject": "2.1.0", + "randomatic": "1.1.7", + "repeat-element": "1.1.2", + "repeat-string": "1.6.1" + } + }, "find-up": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", @@ -1874,6 +2387,21 @@ "is-function": "1.0.1" } }, + "for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "dev": true + }, + "for-own": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", + "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", + "dev": true, + "requires": { + "for-in": "1.0.2" + } + }, "foreach": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", @@ -1925,12 +2453,14 @@ "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=" + "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", + "dev": true }, "gauge": { "version": "2.7.4", "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, "requires": { "aproba": "1.1.2", "console-control-strings": "1.1.0", @@ -1969,6 +2499,12 @@ "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", "dev": true }, + "get-stream": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", + "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", + "dev": true + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -1989,7 +2525,8 @@ "github-from-package": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz", - "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=" + "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4=", + "dev": true }, "glob": { "version": "7.1.2", @@ -2005,6 +2542,25 @@ "path-is-absolute": "1.0.1" } }, + "glob-base": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", + "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", + "dev": true, + "requires": { + "glob-parent": "2.0.0", + "is-glob": "2.0.1" + } + }, + "glob-parent": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", + "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", + "dev": true, + "requires": { + "is-glob": "2.0.1" + } + }, "global": { "version": "4.3.2", "resolved": "https://registry.npmjs.org/global/-/global-4.3.2.tgz", @@ -2101,12 +2657,14 @@ "has-unicode": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true }, "hash-base": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", "integrity": "sha1-ZuodhW206KVHDK32/OI65SRO8uE=", + "dev": true, "requires": { "inherits": "2.0.3" } @@ -2115,6 +2673,7 @@ "version": "1.1.3", "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.3.tgz", "integrity": "sha512-/UETyP0W22QILqS+6HowevwhEFJ3MBJnwTf75Qob9Wz9t0DPuisL8kW8YZMK62dHAKE1c1p+gY1TtOLY+USEHA==", + "dev": true, "requires": { "inherits": "2.0.3", "minimalistic-assert": "1.0.0" @@ -2142,16 +2701,11 @@ "secp256k1": "3.3.0" } }, - "heap": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/heap/-/heap-0.2.6.tgz", - "integrity": "sha1-CH4fELBGky/IWU3Z5tN4r8nR5aw=", - "dev": true - }, "hmac-drbg": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "dev": true, "requires": { "hash.js": "1.1.3", "minimalistic-assert": "1.0.0", @@ -2191,22 +2745,35 @@ "sshpk": "1.13.1" } }, + "https-browserify": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-0.0.1.tgz", + "integrity": "sha1-P5E2XKvmC3ftDruiS0VOPgnZWoI=", + "dev": true + }, "iconv-lite": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.18.tgz", "integrity": "sha512-sr1ZQph3UwHTR0XftSbK85OvBbxe/abLGzEnPENCQwmHf7sck8Oyu4ob3LgBxWWxRoM+QszeUyl7jbqapu2TqA==", "dev": true }, - "idb-wrapper": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/idb-wrapper/-/idb-wrapper-1.7.1.tgz", - "integrity": "sha1-ajJnASLhc6hOzFz6lmj6LOsiGwQ=", + "ieee754": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.8.tgz", + "integrity": "sha1-vjPUCsEO8ZJnAfbwii2G+/0a0+Q=", "dev": true }, "immediate": { "version": "3.2.3", "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.2.3.tgz", - "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=" + "integrity": "sha1-0UD6j2FGWb1lQSMwl92qwlzdmRw=", + "dev": true + }, + "indexof": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", + "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "dev": true }, "inflight": { "version": "1.0.6", @@ -2221,12 +2788,14 @@ "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true }, "ini": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.4.tgz", - "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=" + "integrity": "sha1-BTfLedr1m1mhpRff9wbIbsA5Fi4=", + "dev": true }, "interpret": { "version": "1.0.3", @@ -2255,6 +2824,15 @@ "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", "dev": true }, + "is-binary-path": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", + "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "dev": true, + "requires": { + "binary-extensions": "1.9.0" + } + }, "is-buffer": { "version": "1.1.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.5.tgz", @@ -2282,6 +2860,33 @@ "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", "dev": true }, + "is-dotfile": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", + "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", + "dev": true + }, + "is-equal-shallow": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", + "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", + "dev": true, + "requires": { + "is-primitive": "2.0.0" + } + }, + "is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "dev": true + }, + "is-extglob": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", + "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", + "dev": true + }, "is-finite": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz", @@ -2295,6 +2900,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, "requires": { "number-is-nan": "1.0.1" } @@ -2305,6 +2911,15 @@ "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=", "dev": true }, + "is-glob": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", + "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", + "dev": true, + "requires": { + "is-extglob": "1.0.0" + } + }, "is-hex-prefixed": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", @@ -2323,6 +2938,27 @@ "xtend": "4.0.1" } }, + "is-number": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", + "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + } + }, + "is-posix-bracket": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", + "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", + "dev": true + }, + "is-primitive": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", + "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", + "dev": true + }, "is-property": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-property/-/is-property-1.0.2.tgz", @@ -2365,12 +3001,7 @@ "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" - }, - "isbuffer": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/isbuffer/-/isbuffer-0.0.0.tgz", - "integrity": "sha1-OMFG2d9Si4v5sHAcPUPPEt8/w5s=", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isexe": { @@ -2379,6 +3010,15 @@ "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", "dev": true }, + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dev": true, + "requires": { + "isarray": "1.0.0" + } + }, "isomorphic-fetch": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", @@ -2474,7 +3114,8 @@ "js-sha3": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.3.1.tgz", - "integrity": "sha1-hhIoAhQvCChQKg0d7h2V4lO7AkM=" + "integrity": "sha1-hhIoAhQvCChQKg0d7h2V4lO7AkM=", + "dev": true }, "js-tokens": { "version": "3.0.2", @@ -2505,12 +3146,33 @@ "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", "dev": true }, + "json-loader": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/json-loader/-/json-loader-0.5.7.tgz", + "integrity": "sha512-QLPs8Dj7lnf3e3QYS1zkCo+4ZwqOiF9d/nZnYozTISxXWCfNs9yuky5rJw4/W34s7POaNlbZmQGaB5NiXCbP4w==", + "dev": true + }, "json-schema": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, + "json-schema-traverse": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz", + "integrity": "sha1-NJptRMU6Ud6JtAgFxdXlm0F9M0A=", + "dev": true + }, + "json-stable-stringify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz", + "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=", + "dev": true, + "requires": { + "jsonify": "0.0.0" + } + }, "json-stringify-safe": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", @@ -2538,6 +3200,12 @@ "graceful-fs": "4.1.11" } }, + "jsonify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz", + "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=", + "dev": true + }, "jsonpointer": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/jsonpointer/-/jsonpointer-4.0.1.tgz", @@ -2581,6 +3249,7 @@ "version": "0.2.1", "resolved": "https://registry.npmjs.org/keccakjs/-/keccakjs-0.2.1.tgz", "integrity": "sha1-HWM6+QfvMFu/ny+mFtVsRFYd+k0=", + "dev": true, "requires": { "browserify-sha3": "0.0.1", "sha3": "1.2.0" @@ -2608,8 +3277,7 @@ "version": "1.0.4", "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-1.0.4.tgz", "integrity": "sha1-odePw6UEdMuAhF07O24dpJpEbo4=", - "dev": true, - "optional": true + "dev": true }, "lcid": { "version": "1.0.0", @@ -2626,26 +3294,17 @@ "integrity": "sha1-GwuP+ayceIklBYK3C3ExXZ2m2aM=", "dev": true }, - "level-browserify": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/level-browserify/-/level-browserify-1.1.1.tgz", - "integrity": "sha1-Ebk/h0yHIy3HUJrWGlkM5lyvBQM=", - "dev": true, - "requires": { - "level-js": "2.2.4", - "level-packager": "1.2.1", - "leveldown": "1.7.2" - } - }, "level-codec": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/level-codec/-/level-codec-7.0.0.tgz", - "integrity": "sha1-x1W2jQ1E/6Cxy6BEuPgaVaFK05s=" + "integrity": "sha1-x1W2jQ1E/6Cxy6BEuPgaVaFK05s=", + "dev": true }, "level-errors": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/level-errors/-/level-errors-1.0.4.tgz", "integrity": "sha1-NYXmI5dMc3qTdVSSpDwCZ82kQl8=", + "dev": true, "requires": { "errno": "0.1.4" } @@ -2654,6 +3313,7 @@ "version": "1.3.1", "resolved": "https://registry.npmjs.org/level-iterator-stream/-/level-iterator-stream-1.3.1.tgz", "integrity": "sha1-5Dt4sagUPm+pek9IXrjqUwNS8u0=", + "dev": true, "requires": { "inherits": "2.0.3", "level-errors": "1.0.4", @@ -2664,175 +3324,13 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "readable-stream": { "version": "1.1.14", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz", "integrity": "sha1-fPTFTvZI44EwhMY23SB54WbAgdk=", - "requires": { - "core-util-is": "1.0.2", - "inherits": "2.0.3", - "isarray": "0.0.1", - "string_decoder": "0.10.31" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" - } - } - }, - "level-js": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/level-js/-/level-js-2.2.4.tgz", - "integrity": "sha1-vAVfQYBjXUSJtWHJSG+jcOjBFpc=", - "dev": true, - "requires": { - "abstract-leveldown": "0.12.4", - "idb-wrapper": "1.7.1", - "isbuffer": "0.0.0", - "ltgt": "2.1.3", - "typedarray-to-buffer": "1.0.4", - "xtend": "2.1.2" - }, - "dependencies": { - "abstract-leveldown": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", - "integrity": "sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=", - "dev": true, - "requires": { - "xtend": "3.0.0" - }, - "dependencies": { - "xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", - "dev": true - } - } - }, - "xtend": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", - "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", - "dev": true, - "requires": { - "object-keys": "0.4.0" - } - } - } - }, - "level-packager": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/level-packager/-/level-packager-1.2.1.tgz", - "integrity": "sha1-Bn/t/Qcrf+PGvsYIDAy9SmsuEfQ=", - "dev": true, - "requires": { - "levelup": "1.3.9" - } - }, - "level-post": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/level-post/-/level-post-1.0.5.tgz", - "integrity": "sha1-KmY5BAm/ahYhpES6tvAWREzJgCw=", - "dev": true, - "requires": { - "ltgt": "2.1.3" - } - }, - "level-sublevel": { - "version": "6.6.1", - "resolved": "https://registry.npmjs.org/level-sublevel/-/level-sublevel-6.6.1.tgz", - "integrity": "sha1-+ad/dSGrcKj46S7VbyGjx4hqRIU=", - "dev": true, - "requires": { - "bytewise": "1.1.0", - "levelup": "0.19.1", - "ltgt": "2.1.3", - "pull-level": "2.0.3", - "pull-stream": "3.6.0", - "typewiselite": "1.0.0", - "xtend": "4.0.1" - }, - "dependencies": { - "abstract-leveldown": { - "version": "0.12.4", - "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-0.12.4.tgz", - "integrity": "sha1-KeGOYy5g5OIh1YECR4UqY9ey5BA=", - "dev": true, - "requires": { - "xtend": "3.0.0" - }, - "dependencies": { - "xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", - "dev": true - } - } - }, - "bl": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/bl/-/bl-0.8.2.tgz", - "integrity": "sha1-yba8oI0bwuoA/Ir7Txpf0eHGbk4=", - "dev": true, - "requires": { - "readable-stream": "1.0.34" - } - }, - "deferred-leveldown": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/deferred-leveldown/-/deferred-leveldown-0.2.0.tgz", - "integrity": "sha1-LO8fER4cV4cNi7uK8mUOWHzS9bQ=", - "dev": true, - "requires": { - "abstract-leveldown": "0.12.4" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "levelup": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/levelup/-/levelup-0.19.1.tgz", - "integrity": "sha1-86anIFJyxLXzXkEv8ASgOgrt9Qs=", - "dev": true, - "requires": { - "bl": "0.8.2", - "deferred-leveldown": "0.2.0", - "errno": "0.1.4", - "prr": "0.0.0", - "readable-stream": "1.0.34", - "semver": "5.1.1", - "xtend": "3.0.0" - }, - "dependencies": { - "xtend": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-3.0.0.tgz", - "integrity": "sha1-XM50B7r2Qsunvs2laBEcST9ZZlo=", - "dev": true - } - } - }, - "prr": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/prr/-/prr-0.0.0.tgz", - "integrity": "sha1-GoS4WQgyVQFBGFPQCB7j+obikmo=", - "dev": true - }, - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", "dev": true, "requires": { "core-util-is": "1.0.2", @@ -2841,12 +3339,6 @@ "string_decoder": "0.10.31" } }, - "semver": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.1.1.tgz", - "integrity": "sha1-oykqNz5vPgeY2gsgZBuanFvEfhk=", - "dev": true - }, "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", @@ -2859,6 +3351,7 @@ "version": "0.0.0", "resolved": "https://registry.npmjs.org/level-ws/-/level-ws-0.0.0.tgz", "integrity": "sha1-Ny5RIXeSSgBCSwtDrvK7QkltIos=", + "dev": true, "requires": { "readable-stream": "1.0.34", "xtend": "2.1.2" @@ -2867,12 +3360,14 @@ "isarray": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=" + "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", + "dev": true }, "readable-stream": { "version": "1.0.34", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=", + "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -2883,43 +3378,25 @@ "string_decoder": { "version": "0.10.31", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=" + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true }, "xtend": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/xtend/-/xtend-2.1.2.tgz", "integrity": "sha1-bv7MKk2tjmlixJAbM3znuoe10os=", + "dev": true, "requires": { "object-keys": "0.4.0" } } } }, - "leveldown": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/leveldown/-/leveldown-1.7.2.tgz", - "integrity": "sha1-XjRnuyfuJGpKe429j7KxYgam64s=", - "dev": true, - "requires": { - "abstract-leveldown": "2.6.2", - "bindings": "1.2.1", - "fast-future": "1.0.2", - "nan": "2.6.2", - "prebuild-install": "2.2.2" - }, - "dependencies": { - "bindings": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.2.1.tgz", - "integrity": "sha1-FK1hE4EtLTfXLme0ystLtyZQXxE=", - "dev": true - } - } - }, "levelup": { "version": "1.3.9", "resolved": "https://registry.npmjs.org/levelup/-/levelup-1.3.9.tgz", "integrity": "sha512-VVGHfKIlmw8w1XqpGOAGwq6sZm2WwWLmlDcULkKWQXEA5EopA8OBNJ2Ck2v6bdk8HeEZSbCSEgzXadyQFm76sQ==", + "dev": true, "requires": { "deferred-leveldown": "1.2.2", "level-codec": "7.0.0", @@ -2953,10 +3430,46 @@ "strip-bom": "2.0.0" } }, + "loader-runner": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.3.0.tgz", + "integrity": "sha1-9IKuqC1UPgeSFwDVpG7yb9rGuKI=", + "dev": true + }, + "loader-utils": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.1.0.tgz", + "integrity": "sha1-yYrvSIvM7aL/teLeZG1qdUQp9c0=", + "dev": true, + "requires": { + "big.js": "3.1.3", + "emojis-list": "2.1.0", + "json5": "0.5.1" + } + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + }, + "dependencies": { + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + } + } + }, "lodash": { "version": "4.17.4", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.4.tgz", - "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=" + "integrity": "sha1-eCA6TRwyiuHYbcpkYONptX9AVa4=", + "dev": true }, "lodash._baseassign": { "version": "3.2.0", @@ -3044,12 +3557,6 @@ "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", "dev": true }, - "looper": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/looper/-/looper-2.0.0.tgz", - "integrity": "sha1-Zs0Md0rz1P7axTeU90LbVtqPCew=", - "dev": true - }, "loose-envify": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.3.1.tgz", @@ -3068,12 +3575,23 @@ "ltgt": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/ltgt/-/ltgt-2.1.3.tgz", - "integrity": "sha1-EIUaBtmWS5cReEQcI8nlJpjuzjQ=" + "integrity": "sha1-EIUaBtmWS5cReEQcI8nlJpjuzjQ=", + "dev": true + }, + "mem": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mem/-/mem-1.1.0.tgz", + "integrity": "sha1-Xt1StIXKHZAP5kiVUFOZoN+kX3Y=", + "dev": true, + "requires": { + "mimic-fn": "1.1.0" + } }, "memdown": { "version": "1.2.4", "resolved": "https://registry.npmjs.org/memdown/-/memdown-1.2.4.tgz", "integrity": "sha1-zZo0qvB01TRFonEQjrS43U7A8n8=", + "dev": true, "requires": { "abstract-leveldown": "2.4.1", "functional-red-black-tree": "1.0.1", @@ -3086,12 +3604,23 @@ "version": "2.4.1", "resolved": "https://registry.npmjs.org/abstract-leveldown/-/abstract-leveldown-2.4.1.tgz", "integrity": "sha1-s7/tuITraToSd18MVenwpCDM7mQ=", + "dev": true, "requires": { "xtend": "4.0.1" } } } }, + "memory-fs": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", + "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "dev": true, + "requires": { + "errno": "0.1.4", + "readable-stream": "2.3.3" + } + }, "memorystream": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", @@ -3102,6 +3631,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/merkle-patricia-tree/-/merkle-patricia-tree-2.1.2.tgz", "integrity": "sha1-ckSD1Ut1YxpI/t2lXhFAUXBqcpE=", + "dev": true, "requires": { "async": "1.5.2", "ethereumjs-util": "4.5.0", @@ -3117,6 +3647,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", + "dev": true, "requires": { "bn.js": "4.11.8", "create-hash": "1.1.3", @@ -3127,6 +3658,37 @@ } } }, + "micromatch": { + "version": "2.3.11", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", + "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", + "dev": true, + "requires": { + "arr-diff": "2.0.0", + "array-unique": "0.2.1", + "braces": "1.8.5", + "expand-brackets": "0.1.5", + "extglob": "0.3.2", + "filename-regex": "2.0.1", + "is-extglob": "1.0.0", + "is-glob": "2.0.1", + "kind-of": "3.2.2", + "normalize-path": "2.1.1", + "object.omit": "2.0.1", + "parse-glob": "3.0.4", + "regex-cache": "0.4.3" + } + }, + "miller-rabin": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.0.tgz", + "integrity": "sha1-SmL7HUKTPAVYOYL0xxb2+55sbT0=", + "dev": true, + "requires": { + "bn.js": "4.11.8", + "brorand": "1.1.0" + } + }, "mime-db": { "version": "1.29.0", "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.29.0.tgz", @@ -3142,6 +3704,12 @@ "mime-db": "1.29.0" } }, + "mimic-fn": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.1.0.tgz", + "integrity": "sha1-5md4PZLonb00KBi1IwudYqZyrRg=", + "dev": true + }, "min-document": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/min-document/-/min-document-2.19.0.tgz", @@ -3154,12 +3722,14 @@ "minimalistic-assert": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.0.tgz", - "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=" + "integrity": "sha1-cCvi3aazf0g2vLP121ZkG2Sh09M=", + "dev": true }, "minimalistic-crypto-utils": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=" + "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "dev": true }, "minimatch": { "version": "3.0.4", @@ -3173,12 +3743,14 @@ "minimist": { "version": "0.0.8", "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", - "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, "requires": { "minimist": "0.0.8" } @@ -3277,12 +3849,14 @@ "nan": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/nan/-/nan-2.6.2.tgz", - "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=" + "integrity": "sha1-5P805slf37WuzAjeZZb0NgWn20U=", + "dev": true }, "node-abi": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.1.0.tgz", - "integrity": "sha512-AbW35CPRE4vdieOse46V+16dKispLNv3PQwgqlcfg7GQeQHcLu3gvp3fbU2gTh7d8NfGjp5CJh+j4Hpyb0XzaA==" + "integrity": "sha512-AbW35CPRE4vdieOse46V+16dKispLNv3PQwgqlcfg7GQeQHcLu3gvp3fbU2gTh7d8NfGjp5CJh+j4Hpyb0XzaA==", + "dev": true }, "node-fetch": { "version": "1.7.2", @@ -3294,10 +3868,56 @@ "is-stream": "1.1.0" } }, + "node-libs-browser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.0.0.tgz", + "integrity": "sha1-o6WeyXAkmFtG6Vg3lkb5bEthZkY=", + "dev": true, + "requires": { + "assert": "1.4.1", + "browserify-zlib": "0.1.4", + "buffer": "4.9.1", + "console-browserify": "1.1.0", + "constants-browserify": "1.0.0", + "crypto-browserify": "3.11.1", + "domain-browser": "1.1.7", + "events": "1.1.1", + "https-browserify": "0.0.1", + "os-browserify": "0.2.1", + "path-browserify": "0.0.0", + "process": "0.11.10", + "punycode": "1.4.1", + "querystring-es3": "0.2.1", + "readable-stream": "2.3.3", + "stream-browserify": "2.0.1", + "stream-http": "2.7.2", + "string_decoder": "0.10.31", + "timers-browserify": "2.0.3", + "tty-browserify": "0.0.0", + "url": "0.11.0", + "util": "0.10.3", + "vm-browserify": "0.0.4" + }, + "dependencies": { + "process": { + "version": "0.11.10", + "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", + "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", + "dev": true + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", + "dev": true + } + } + }, "noop-logger": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz", - "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=" + "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=", + "dev": true }, "nopt": { "version": "3.0.6", @@ -3320,10 +3940,29 @@ "validate-npm-package-license": "3.0.1" } }, + "normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dev": true, + "requires": { + "remove-trailing-separator": "1.0.2" + } + }, + "npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dev": true, + "requires": { + "path-key": "2.0.1" + } + }, "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, "requires": { "are-we-there-yet": "1.1.4", "console-control-strings": "1.1.0", @@ -3334,7 +3973,8 @@ "number-is-nan": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true }, "oauth-sign": { "version": "0.8.2", @@ -3345,7 +3985,8 @@ "object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", + "dev": true }, "object-inspect": { "version": "1.3.0", @@ -3356,12 +3997,24 @@ "object-keys": { "version": "0.4.0", "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-0.4.0.tgz", - "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=" + "integrity": "sha1-KKaq50KN0sOpLz2V8hM13SBOAzY=", + "dev": true + }, + "object.omit": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", + "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", + "dev": true, + "requires": { + "for-own": "0.1.5", + "is-extendable": "0.1.1" + } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, "requires": { "wrappy": "1.0.2" } @@ -3404,10 +4057,17 @@ "integrity": "sha1-DxMEcVhM0zURxew4yNWSE/msXiA=", "dev": true }, + "os-browserify": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.2.1.tgz", + "integrity": "sha1-Y/xMzuXS13Y9Jrv4YBB45sLgBE8=", + "dev": true + }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true }, "os-locale": { "version": "1.4.0", @@ -3424,6 +4084,58 @@ "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", "dev": true }, + "p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "dev": true + }, + "p-limit": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.1.0.tgz", + "integrity": "sha1-sH/y2aXYi+yAYDWJWiurZqJ5iLw=", + "dev": true + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.1.0" + } + }, + "pako": { + "version": "0.2.9", + "resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz", + "integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=", + "dev": true + }, + "parse-asn1": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.0.tgz", + "integrity": "sha1-N8T5t+06tlx0gXtfJICTf7+XxxI=", + "dev": true, + "requires": { + "asn1.js": "4.9.1", + "browserify-aes": "1.0.6", + "create-hash": "1.1.3", + "evp_bytestokey": "1.0.0", + "pbkdf2": "3.0.13" + } + }, + "parse-glob": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", + "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", + "dev": true, + "requires": { + "glob-base": "0.3.0", + "is-dotfile": "1.0.3", + "is-extglob": "1.0.0", + "is-glob": "2.0.1" + } + }, "parse-headers": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/parse-headers/-/parse-headers-2.0.1.tgz", @@ -3443,6 +4155,12 @@ "error-ex": "1.3.1" } }, + "path-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", + "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=", + "dev": true + }, "path-exists": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", @@ -3458,6 +4176,12 @@ "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, + "path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "dev": true + }, "path-parse": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.5.tgz", @@ -3525,6 +4249,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-2.2.2.tgz", "integrity": "sha512-F46pcvDxtQhbV3B+dm+exHuKxIyJK26fVNiJRmbTW/5D7o0Z2yzc8CKeu7UWbo9XxQZoVOC88aKgySAsza+cWw==", + "dev": true, "requires": { "expand-template": "1.0.3", "github-from-package": "0.0.0", @@ -3545,12 +4270,14 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true }, "tunnel-agent": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -3563,6 +4290,12 @@ "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", "dev": true }, + "preserve": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", + "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", + "dev": true + }, "private": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/private/-/private-0.1.7.tgz", @@ -3578,69 +4311,39 @@ "process-nextick-args": { "version": "1.0.7", "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=" + "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", + "dev": true }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=" - }, - "pull-cat": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/pull-cat/-/pull-cat-1.1.11.tgz", - "integrity": "sha1-tkLdElXaN2pwa220+pYvX9t0wxs=", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", "dev": true }, - "pull-level": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/pull-level/-/pull-level-2.0.3.tgz", - "integrity": "sha1-lQBjXiV5Rdb+7eGF9deiR3NFWxc=", - "dev": true, - "requires": { - "level-post": "1.0.5", - "pull-cat": "1.1.11", - "pull-live": "1.0.1", - "pull-pushable": "2.1.1", - "pull-stream": "3.6.0", - "pull-window": "2.1.4", - "stream-to-pull-stream": "1.7.2" - } - }, - "pull-live": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/pull-live/-/pull-live-1.0.1.tgz", - "integrity": "sha1-pOzuAeMwFV6RJLu89HYfIbOPUfU=", - "dev": true, - "requires": { - "pull-cat": "1.1.11", - "pull-stream": "3.6.0" - } - }, - "pull-pushable": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pull-pushable/-/pull-pushable-2.1.1.tgz", - "integrity": "sha1-hmZqu+P1QC8ffq0D7v1pt4Xspbg=", + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", "dev": true }, - "pull-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/pull-stream/-/pull-stream-3.6.0.tgz", - "integrity": "sha1-WdAzpoFdTjCX1Hw9KxiTqeWKI1E=", - "dev": true - }, - "pull-window": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/pull-window/-/pull-window-2.1.4.tgz", - "integrity": "sha1-/DuG/uvRkgx64pdpHiP3BfiFUvA=", + "public-encrypt": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", + "integrity": "sha1-OfaZ86RlYN1eusvKaTyvfGXBjMY=", "dev": true, "requires": { - "looper": "2.0.0" + "bn.js": "4.11.8", + "browserify-rsa": "4.0.1", + "create-hash": "1.1.3", + "parse-asn1": "5.1.0", + "randombytes": "2.0.5" } }, "pump": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/pump/-/pump-1.0.2.tgz", "integrity": "sha1-Oz7mUS+U8OV1U4wXmV+fFpkKXVE=", + "dev": true, "requires": { "end-of-stream": "1.4.0", "once": "1.4.0" @@ -3658,6 +4361,59 @@ "integrity": "sha1-51vV9uJoEioqDgvaYwslUMFmUCw=", "dev": true }, + "querystring": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", + "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "dev": true + }, + "querystring-es3": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", + "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", + "dev": true + }, + "randomatic": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", + "dev": true, + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dev": true, + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dev": true, + "requires": { + "is-buffer": "1.1.5" + } + } + } + }, "randombytes": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.0.5.tgz", @@ -3671,6 +4427,7 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.1.tgz", "integrity": "sha1-LgPo5C7kULjLPc5lvhv4l04d/ZU=", + "dev": true, "requires": { "deep-extend": "0.4.2", "ini": "1.3.4", @@ -3681,7 +4438,8 @@ "minimist": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", - "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" + "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", + "dev": true } } }, @@ -3710,6 +4468,7 @@ "version": "2.3.3", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.3.tgz", "integrity": "sha512-m+qzzcn7KUxEmd1gMbchF+Y2eIUbieUaxkWtptyHywrX0rE8QEYqPC07Vuy4Wm32/xE16NcdBctb8S0Xe/5IeQ==", + "dev": true, "requires": { "core-util-is": "1.0.2", "inherits": "2.0.3", @@ -3720,6 +4479,18 @@ "util-deprecate": "1.0.2" } }, + "readdirp": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.1.0.tgz", + "integrity": "sha1-TtCtBg3zBzMAxIRANz9y0cxkLXg=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "minimatch": "3.0.4", + "readable-stream": "2.3.3", + "set-immediate-shim": "1.0.1" + } + }, "rechoir": { "version": "0.6.2", "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", @@ -3752,6 +4523,16 @@ "private": "0.1.7" } }, + "regex-cache": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.3.tgz", + "integrity": "sha1-mxpsNdTQ3871cRrmUejp09cRQUU=", + "dev": true, + "requires": { + "is-equal-shallow": "0.1.3", + "is-primitive": "2.0.0" + } + }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -3778,6 +4559,18 @@ "jsesc": "0.5.0" } }, + "remove-trailing-separator": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.0.2.tgz", + "integrity": "sha1-abBi2XhyetFNxrVrpKt3L9jXBRE=", + "dev": true + }, + "repeat-element": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.2.tgz", + "integrity": "sha1-7wiaF40Ug7quTZPrmLT55OEdmQo=", + "dev": true + }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", @@ -3886,7 +4679,6 @@ "resolved": "https://registry.npmjs.org/right-align/-/right-align-0.1.3.tgz", "integrity": "sha1-YTObci/mo1FWiSENJOFMlhSGE+8=", "dev": true, - "optional": true, "requires": { "align-text": "0.1.4" } @@ -3904,6 +4696,7 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.1.tgz", "integrity": "sha1-D0WEKVxTo2KK9+bXmsohzlfRxuc=", + "dev": true, "requires": { "hash-base": "2.0.2", "inherits": "2.0.3" @@ -3912,12 +4705,14 @@ "rlp": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.0.0.tgz", - "integrity": "sha1-nbOE/0uJqPYVY9kjldhiWxjzr7A=" + "integrity": "sha1-nbOE/0uJqPYVY9kjldhiWxjzr7A=", + "dev": true }, "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==", + "dev": true }, "scrypt": { "version": "6.0.3", @@ -3951,6 +4746,7 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.3.0.tgz", "integrity": "sha512-CbrQoeGG5V0kQ1ohEMGI+J7oKerapLTpivLICBaXR0R4HyQcN3kM9itLsV5fdpV1UR1bD14tOkJ1xughmlDIiQ==", + "dev": true, "requires": { "bindings": "1.3.0", "bip66": "1.1.5", @@ -3963,31 +4759,41 @@ "safe-buffer": "5.1.1" } }, - "seedrandom": { - "version": "2.4.3", - "resolved": "https://registry.npmjs.org/seedrandom/-/seedrandom-2.4.3.tgz", - "integrity": "sha1-JDhQTa0zkXMUv/GKxNeU8W1qrsw=", - "dev": true - }, "semaphore": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/semaphore/-/semaphore-1.1.0.tgz", - "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==" + "integrity": "sha512-O4OZEaNtkMd/K0i6js9SL+gqy0ZCBMgUvlSqHKi4IBdjhe7wB8pwztUk1BbZ1fmrvpwFrPbHzqd2w5pTcJH6LA==", + "dev": true }, "semver": { "version": "5.4.1", "resolved": "https://registry.npmjs.org/semver/-/semver-5.4.1.tgz", - "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==" + "integrity": "sha512-WfG/X9+oATh81XtllIo/I8gOiY9EXRdv1cQdyykeXK17YcUW3EXUAi2To4pcH6nZtJPr7ZOpM5OMyWJZm+8Rsg==", + "dev": true }, "set-blocking": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "set-immediate-shim": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", + "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "dev": true + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true }, "sha.js": { "version": "2.4.8", "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.8.tgz", "integrity": "sha1-NwaMLEdra69ALRSknGf1l5IfY08=", + "dev": true, "requires": { "inherits": "2.0.3" } @@ -3996,10 +4802,26 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/sha3/-/sha3-1.2.0.tgz", "integrity": "sha1-aYnxtwpJhwWHajc+LGKs6WqpOZo=", + "dev": true, "requires": { "nan": "2.6.2" } }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dev": true, + "requires": { + "shebang-regex": "1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "dev": true + }, "shelljs": { "version": "0.7.8", "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.7.8.tgz", @@ -4020,12 +4842,14 @@ "signal-exit": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz", - "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=" + "integrity": "sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0=", + "dev": true }, "simple-get": { "version": "1.4.3", "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-1.4.3.tgz", "integrity": "sha1-6XVe2kB+ltpAxeUVjJ6jezO+y+s=", + "dev": true, "requires": { "once": "1.4.0", "unzip-response": "1.0.2", @@ -4091,32 +4915,59 @@ } }, "solidity-coverage": { - "version": "0.1.10", - "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.1.10.tgz", - "integrity": "sha512-DhYv8gVneDaDA1Nk//OXxW8Jh3RT7wYGfqEc8I8lbUPPGbBrUfgBMv999iPt2BeK91jhVUvGW987HWS+sZGvGg==", + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.2.1.tgz", + "integrity": "sha512-+vsgS3tMK4UyBiliIv1aE6PC+MfaLo/XQ0qzBlkaIuP2e/vw8Zn8pnzw2mYBmoImoSugsK3EuwslHgRQXQjCRw==", "dev": true, "requires": { "commander": "2.11.0", "death": "1.1.0", - "ethereumjs-testrpc-sc": "git+https://github.com/sc-forks/testrpc-sc.git#a11b9b530caf2785ff24f749fa2d5b0cb59a2810", + "ethereumjs-testrpc-sc": "4.0.1", "istanbul": "0.4.5", "keccakjs": "0.2.1", "mkdirp": "0.5.1", "req-cwd": "1.0.1", "shelljs": "0.7.8", "sol-explore": "1.6.2", - "solidity-parser": "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0" - } - }, - "solidity-parser": { - "version": "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0", - "dev": true, - "requires": { - "mocha": "2.5.3", - "pegjs": "0.10.0", - "yargs": "4.8.1" + "solidity-parser": "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0", + "web3": "0.18.4" }, "dependencies": { + "bignumber.js": { + "version": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", + "dev": true + }, + "ethereumjs-testrpc-sc": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/ethereumjs-testrpc-sc/-/ethereumjs-testrpc-sc-4.0.1.tgz", + "integrity": "sha512-hDyY7q6sqqYP9PMIa/5R5jnj9Ybc3LlACWM3qgX873CcjxBRit/cdsUApVVLDRNTA6XE1os04NqaJ5NbQJu+AQ==", + "dev": true, + "requires": { + "webpack": "3.5.4" + } + }, + "solidity-parser": { + "version": "git+https://github.com/sc-forks/solidity-parser.git#6c544bd308fb6d38b2ca7e2adde9a42334221ab0", + "dev": true, + "requires": { + "mocha": "2.5.3", + "pegjs": "0.10.0", + "yargs": "4.8.1" + } + }, + "web3": { + "version": "0.18.4", + "resolved": "https://registry.npmjs.org/web3/-/web3-0.18.4.tgz", + "integrity": "sha1-gewXhBRUkfLqqJVbMcBgSeB8Xn0=", + "dev": true, + "requires": { + "bignumber.js": "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2", + "crypto-js": "3.1.8", + "utf8": "2.1.2", + "xhr2": "0.1.4", + "xmlhttprequest": "1.8.0" + } + }, "yargs": { "version": "4.8.1", "resolved": "https://registry.npmjs.org/yargs/-/yargs-4.8.1.tgz", @@ -4141,6 +4992,12 @@ } } }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, "source-map": { "version": "0.5.6", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.6.tgz", @@ -4207,28 +5064,34 @@ } } }, - "stream-to-pull-stream": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/stream-to-pull-stream/-/stream-to-pull-stream-1.7.2.tgz", - "integrity": "sha1-dXYJrhzr0zx0MtSvvjH/eGULnd4=", + "stream-browserify": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.1.tgz", + "integrity": "sha1-ZiZu5fm9uZQKTkUUyvtDu3Hlyds=", "dev": true, "requires": { - "looper": "3.0.0", - "pull-stream": "3.6.0" - }, - "dependencies": { - "looper": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/looper/-/looper-3.0.0.tgz", - "integrity": "sha1-LvpUw7HLq6m5Su4uWRSwvlf7t0k=", - "dev": true - } + "inherits": "2.0.3", + "readable-stream": "2.3.3" + } + }, + "stream-http": { + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.7.2.tgz", + "integrity": "sha512-c0yTD2rbQzXtSsFSVhtpvY/vS6u066PcXOX9kBB3mSO76RiUQzL340uJkGBWnlBg4/HZzqiUXtaVA7wcRcJgEw==", + "dev": true, + "requires": { + "builtin-status-codes": "3.0.0", + "inherits": "2.0.3", + "readable-stream": "2.3.3", + "to-arraybuffer": "1.0.1", + "xtend": "4.0.1" } }, "string_decoder": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "dev": true, "requires": { "safe-buffer": "5.1.1" } @@ -4237,6 +5100,7 @@ "version": "1.0.2", "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, "requires": { "code-point-at": "1.1.0", "is-fullwidth-code-point": "1.0.0", @@ -4264,6 +5128,7 @@ "version": "3.0.1", "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, "requires": { "ansi-regex": "2.1.1" } @@ -4277,6 +5142,12 @@ "is-utf8": "0.2.1" } }, + "strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "dev": true + }, "strip-hex-prefix": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", @@ -4289,7 +5160,8 @@ "strip-json-comments": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=" + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true }, "supports-color": { "version": "2.0.0", @@ -4297,6 +5169,12 @@ "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", "dev": true }, + "tapable": { + "version": "0.2.8", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-0.2.8.tgz", + "integrity": "sha1-mTcqXJmb8t8WCvwNdL7U9HlIzSI=", + "dev": true + }, "tape": { "version": "4.8.0", "resolved": "https://registry.npmjs.org/tape/-/tape-4.8.0.tgz", @@ -4330,6 +5208,7 @@ "version": "1.15.3", "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-1.15.3.tgz", "integrity": "sha1-7M+TXpQUk9gVECjmNuUc5MPKfyA=", + "dev": true, "requires": { "chownr": "1.0.1", "mkdirp": "0.5.1", @@ -4341,6 +5220,7 @@ "version": "1.5.4", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.5.4.tgz", "integrity": "sha1-NlSc8E7RrumyowwBQyUiONr5QBY=", + "dev": true, "requires": { "bl": "1.2.1", "end-of-stream": "1.4.0", @@ -4348,39 +5228,28 @@ "xtend": "4.0.1" } }, - "temp": { - "version": "0.8.3", - "resolved": "https://registry.npmjs.org/temp/-/temp-0.8.3.tgz", - "integrity": "sha1-4Ma8TSa5AxJEEOT+2BEDAU38H1k=", - "dev": true, - "requires": { - "os-tmpdir": "1.0.2", - "rimraf": "2.2.8" - }, - "dependencies": { - "rimraf": { - "version": "2.2.8", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.2.8.tgz", - "integrity": "sha1-5Dm+Kq7jJzIZUnMPmaiSnk/FBYI=", - "dev": true - } - } - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", "dev": true }, - "tmp": { - "version": "0.0.31", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.31.tgz", - "integrity": "sha1-jzirlDjhcxXl29izZX6L+yd65Kc=", + "timers-browserify": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.3.tgz", + "integrity": "sha512-+JAqyNgg+M8+gXIrq2EeUr4kZqRz47Ysco7X5QKRGScRE9HIHckyHD1asozSFGeqx2nmPCgA8T5tIGVO0ML7/w==", "dev": true, "requires": { - "os-tmpdir": "1.0.2" + "global": "4.3.2", + "setimmediate": "1.0.5" } }, + "to-arraybuffer": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", + "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", + "dev": true + }, "to-fast-properties": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", @@ -4615,6 +5484,12 @@ } } }, + "tty-browserify": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", + "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", + "dev": true + }, "tunnel-agent": { "version": "0.4.3", "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.4.3.tgz", @@ -4643,39 +5518,11 @@ "integrity": "sha1-Dj8mcLRAmbC0bChNE2p+9Jx0wuo=", "dev": true }, - "typedarray-to-buffer": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-1.0.4.tgz", - "integrity": "sha1-m7i6DoQfs/TPH+fCRenz+opf6Zw=", - "dev": true - }, - "typewise": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/typewise/-/typewise-1.0.3.tgz", - "integrity": "sha1-EGeTZUCvl5N8xdz5kiSG6fooRlE=", - "dev": true, - "requires": { - "typewise-core": "1.2.0" - } - }, - "typewise-core": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/typewise-core/-/typewise-core-1.2.0.tgz", - "integrity": "sha1-l+uRgFx/VdL5QXSPpQ0xXZke8ZU=", - "dev": true - }, - "typewiselite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/typewiselite/-/typewiselite-1.0.0.tgz", - "integrity": "sha1-yIgvobsQksBgBal/NO9chQjjZk4=", - "dev": true - }, "uglify-js": { "version": "2.8.29", "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-2.8.29.tgz", "integrity": "sha1-KcVzMUgFe7Th913zW3qcty5qWd0=", "dev": true, - "optional": true, "requires": { "source-map": "0.5.6", "uglify-to-browserify": "1.0.2", @@ -4686,15 +5533,13 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true, - "optional": true + "dev": true }, "cliui": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/cliui/-/cliui-2.1.0.tgz", "integrity": "sha1-S0dXYP+AJkx2LDoXGQMukcf+oNE=", "dev": true, - "optional": true, "requires": { "center-align": "0.1.3", "right-align": "0.1.3", @@ -4705,22 +5550,19 @@ "version": "0.1.0", "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.0.tgz", "integrity": "sha1-VDjNLqk7IC76Ohn+iIeu58lPnJ0=", - "dev": true, - "optional": true + "dev": true }, "wordwrap": { "version": "0.0.2", "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.2.tgz", "integrity": "sha1-t5Zpu0LstAn4PVg8rVLKF+qhZD8=", - "dev": true, - "optional": true + "dev": true }, "yargs": { "version": "3.10.0", "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz", "integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=", "dev": true, - "optional": true, "requires": { "camelcase": "1.2.1", "cliui": "2.1.0", @@ -4737,6 +5579,17 @@ "dev": true, "optional": true }, + "uglifyjs-webpack-plugin": { + "version": "0.4.6", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz", + "integrity": "sha1-uVH0q7a9YX5m9j64kUmOORdj4wk=", + "dev": true, + "requires": { + "source-map": "0.5.6", + "uglify-js": "2.8.29", + "webpack-sources": "1.0.1" + } + }, "unorm": { "version": "1.4.1", "resolved": "https://registry.npmjs.org/unorm/-/unorm-1.4.1.tgz", @@ -4746,7 +5599,26 @@ "unzip-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", - "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=" + "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=", + "dev": true + }, + "url": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", + "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "dev": true, + "requires": { + "punycode": "1.3.2", + "querystring": "0.2.0" + }, + "dependencies": { + "punycode": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", + "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", + "dev": true + } + } }, "utf8": { "version": "2.1.2", @@ -4754,10 +5626,28 @@ "integrity": "sha1-H6DZJw6b6FDZsFAn9jUZv0ZFfZY=", "dev": true }, + "util": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", + "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", + "dev": true, + "requires": { + "inherits": "2.0.1" + }, + "dependencies": { + "inherits": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", + "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", + "dev": true + } + } + }, "util-deprecate": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true }, "uuid": { "version": "3.1.0", @@ -4794,96 +5684,244 @@ } } }, - "web3": { - "version": "0.16.0", - "resolved": "https://registry.npmjs.org/web3/-/web3-0.16.0.tgz", - "integrity": "sha1-pFVBdc1GKUMDWx8dOUMvdBxrYBk=", + "vm-browserify": { + "version": "0.0.4", + "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-0.0.4.tgz", + "integrity": "sha1-XX6kW7755Kb/ZflUOOCofDV9WnM=", "dev": true, "requires": { - "bignumber.js": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9", - "crypto-js": "3.1.8", - "utf8": "2.1.2", - "xmlhttprequest": "1.8.0" - }, - "dependencies": { - "bignumber.js": { - "version": "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9", - "dev": true - } + "indexof": "0.0.1" } }, - "web3-provider-engine": { - "version": "git+https://github.com/sc-forks/provider-engine-sc.git#0e7af0eb99dfb21d399766bc031cf02e89536fe1", + "watchpack": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.4.0.tgz", + "integrity": "sha1-ShRyvLuVK9Cpu0A2gB+VTfs5+qw=", "dev": true, "requires": { "async": "2.5.0", - "clone": "2.1.1", - "ethereumjs-block": "1.2.2", - "ethereumjs-tx": "1.3.3", - "ethereumjs-util": "5.1.2", - "isomorphic-fetch": "2.2.1", - "request": "2.79.0", - "semaphore": "1.1.0", - "solc": "0.4.8", - "tape": "4.8.0", - "web3": "0.16.0", - "xhr": "2.4.0", - "xtend": "4.0.1" + "chokidar": "1.7.0", + "graceful-fs": "4.1.11" }, "dependencies": { "async": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dev": true, + "requires": { + "lodash": "4.17.4" + } + } + } + }, + "webpack": { + "version": "3.5.4", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-3.5.4.tgz", + "integrity": "sha1-VYPrJj7Se3i1vRe/37DrGxzRv4E=", + "dev": true, + "requires": { + "acorn": "5.1.1", + "acorn-dynamic-import": "2.0.2", + "ajv": "5.2.2", + "ajv-keywords": "2.1.0", + "async": "2.5.0", + "enhanced-resolve": "3.4.1", + "escope": "3.6.0", + "interpret": "1.0.3", + "json-loader": "0.5.7", + "json5": "0.5.1", + "loader-runner": "2.3.0", + "loader-utils": "1.1.0", + "memory-fs": "0.4.1", + "mkdirp": "0.5.1", + "node-libs-browser": "2.0.0", + "source-map": "0.5.6", + "supports-color": "4.2.1", + "tapable": "0.2.8", + "uglifyjs-webpack-plugin": "0.4.6", + "watchpack": "1.4.0", + "webpack-sources": "1.0.1", + "yargs": "8.0.2" + }, + "dependencies": { + "ansi-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", + "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", + "dev": true + }, + "async": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/async/-/async-2.5.0.tgz", + "integrity": "sha512-e+lJAJeNWuPCNyxZKOBdaJGyLGHugXVQtrAwtuAe2vhxTYxFTKE73p8JuTmdH0qdQZtDvI4dhJwjZc5zsfIsYw==", + "dev": true, "requires": { "lodash": "4.17.4" } }, - "ethereum-common": { - "version": "0.0.18", - "resolved": "https://registry.npmjs.org/ethereum-common/-/ethereum-common-0.0.18.tgz", - "integrity": "sha1-L9w1dvIykDNYl26znaeDIT/5Uj8=" + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", + "dev": true }, - "ethereumjs-tx": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/ethereumjs-tx/-/ethereumjs-tx-1.3.3.tgz", - "integrity": "sha1-7OBR0+/b53GtKlGNYWMsoqt17Ls=", + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", "dev": true, "requires": { - "ethereum-common": "0.0.18", - "ethereumjs-util": "5.1.2" + "locate-path": "2.0.0" } }, - "ethereumjs-vm": { - "version": "git+https://github.com/sc-forks/ethereumjs-vm-sc.git#328771cace30ed16ad5c1d13a69cda13d31173f9", + "has-flag": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", + "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", + "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", + "dev": true + }, + "load-json-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz", + "integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=", + "dev": true, "requires": { - "async": "2.5.0", - "async-eventemitter": "0.2.3", - "ethereum-common": "0.0.18", - "ethereumjs-account": "2.0.4", - "ethereumjs-block": "1.2.2", - "ethereumjs-util": "4.5.0", - "fake-merkle-patricia-tree": "1.0.1", - "functional-red-black-tree": "1.0.1", - "merkle-patricia-tree": "2.1.2" - }, - "dependencies": { - "ethereumjs-util": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz", - "integrity": "sha1-PpQosxfuvaPXJg2FT93alUsfG8Y=", - "requires": { - "bn.js": "4.11.8", - "create-hash": "1.1.3", - "keccakjs": "0.2.1", - "rlp": "2.0.0", - "secp256k1": "3.3.0" - } - } + "graceful-fs": "4.1.11", + "parse-json": "2.2.0", + "pify": "2.3.0", + "strip-bom": "3.0.0" + } + }, + "os-locale": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-2.1.0.tgz", + "integrity": "sha512-3sslG3zJbEYcaC4YVAvDorjGxc7tv6KVATnLPZONiljsUncvihe9BQoVCEs0RZ1kmf4Hk9OBqlZfJZWI4GanKA==", + "dev": true, + "requires": { + "execa": "0.7.0", + "lcid": "1.0.0", + "mem": "1.1.0" + } + }, + "path-type": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-2.0.0.tgz", + "integrity": "sha1-8BLMuEFbcJb8LaoQVMPXI4lZTHM=", + "dev": true, + "requires": { + "pify": "2.3.0" + } + }, + "read-pkg": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz", + "integrity": "sha1-jvHAYjxqbbDcZxPEv6xGMysjaPg=", + "dev": true, + "requires": { + "load-json-file": "2.0.0", + "normalize-package-data": "2.4.0", + "path-type": "2.0.0" + } + }, + "read-pkg-up": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-2.0.0.tgz", + "integrity": "sha1-a3KoBImE4MQeeVEP1en6mbO1Sb4=", + "dev": true, + "requires": { + "find-up": "2.1.0", + "read-pkg": "2.0.0" + } + }, + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "2.0.0", + "strip-ansi": "4.0.0" + } + }, + "strip-ansi": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", + "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "dev": true, + "requires": { + "ansi-regex": "3.0.0" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", + "dev": true + }, + "supports-color": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-4.2.1.tgz", + "integrity": "sha512-qxzYsob3yv6U+xMzPrv170y8AwGP7i74g+pbixCfD6rgso8BscLT2qXIuz6TpOaiJZ3mFgT5O9lyT9nMU4LfaA==", + "dev": true, + "requires": { + "has-flag": "2.0.0" + } + }, + "which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", + "dev": true + }, + "yargs": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-8.0.2.tgz", + "integrity": "sha1-YpmpBVsc78lp/355wdkY3Osiw2A=", + "dev": true, + "requires": { + "camelcase": "4.1.0", + "cliui": "3.2.0", + "decamelize": "1.2.0", + "get-caller-file": "1.0.2", + "os-locale": "2.1.0", + "read-pkg-up": "2.0.0", + "require-directory": "2.1.1", + "require-main-filename": "1.0.1", + "set-blocking": "2.0.0", + "string-width": "2.1.1", + "which-module": "2.0.0", + "y18n": "3.2.1", + "yargs-parser": "7.0.0" + } + }, + "yargs-parser": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-7.0.0.tgz", + "integrity": "sha1-jQrELxbqVd69MyyvTEA4s+P139k=", + "dev": true, + "requires": { + "camelcase": "4.1.0" } } } }, + "webpack-sources": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.0.1.tgz", + "integrity": "sha512-05tMxipUCwHqYaVS8xc7sYPTly8PzXayRCB4dTxLhWTqlKUiwH6ezmEe0OSreL1c30LAuA3Zqmc+uEBUGFJDjw==", + "dev": true, + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.5.6" + } + }, "whatwg-fetch": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.3.tgz", @@ -4909,6 +5947,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", + "dev": true, "requires": { "string-width": "1.0.2" } @@ -4938,7 +5977,8 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true }, "xhr": { "version": "2.4.0", @@ -4967,7 +6007,8 @@ "xtend": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", - "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=" + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true }, "y18n": { "version": "3.2.1", @@ -4975,33 +6016,11 @@ "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", "dev": true }, - "yargs": { - "version": "3.29.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.29.0.tgz", - "integrity": "sha1-GquWYOrnnYuPZ1vK7qtu40ws9pw=", - "dev": true, - "requires": { - "camelcase": "1.2.1", - "cliui": "3.2.0", - "decamelize": "1.2.0", - "os-locale": "1.4.0", - "window-size": "0.1.4", - "y18n": "3.2.1" - }, - "dependencies": { - "camelcase": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-1.2.1.tgz", - "integrity": "sha1-m7UwTS4LVmmLLHWLCKPqqdqlijk=", - "dev": true - }, - "window-size": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz", - "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY=", - "dev": true - } - } + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true }, "yargs-parser": { "version": "2.4.1", diff --git a/yarn.lock b/yarn.lock index a8729655e..007160c50 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,53 +2,49 @@ # yarn lockfile v1 -abbrev@1, abbrev@1.0.x: +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" -abstract-leveldown@2.4.1, abstract-leveldown@~2.4.0: +abstract-leveldown@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.4.1.tgz#b3bfedb884eb693a12775f0c55e9f0a420ccee64" dependencies: xtend "~4.0.0" +abstract-leveldown@~2.6.0: + version "2.6.2" + resolved "https://registry.yarnpkg.com/abstract-leveldown/-/abstract-leveldown-2.6.2.tgz#e374c2a0fa036b88822bc1c51949119b11980590" + dependencies: + xtend "~4.0.0" + acorn-dynamic-import@^2.0.0: version "2.0.2" resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" dependencies: acorn "^4.0.3" -acorn-jsx@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-3.0.1.tgz#afdf9488fb1ecefc8348f6fb22f464e32a58b36b" - dependencies: - acorn "^3.0.4" - -acorn@^3.0.4: - version "3.3.0" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-3.3.0.tgz#45e37fb39e8da3f25baee3ff5369e2bb5f22017a" - acorn@^4.0.3: version "4.0.13" resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" -acorn@^5.0.0, acorn@^5.0.1: - version "5.0.3" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.0.3.tgz#c460df08491463f028ccb82eab3730bf01087b3d" +acorn@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.1.1.tgz#53fe161111f912ab999ee887a90a0bc52822fd75" aes-js@^0.2.3: version "0.2.4" resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-0.2.4.tgz#94b881ab717286d015fa219e08fb66709dda5a3d" -ajv-keywords@^1.0.0: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-1.5.1.tgz#314dd0a4b3368fad3dfcdc54ede6171b886daf3c" - ajv-keywords@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-2.1.0.tgz#a296e17f7bfae7c1ce4f7e0de53d29cb32162df0" -ajv@^4.7.0, ajv@^4.9.1: +ajv@^4.9.1: version "4.11.8" resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" dependencies: @@ -76,10 +72,6 @@ amdefine@>=0.0.4: version "1.0.1" resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" -ansi-escapes@^1.1.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-1.4.0.tgz#d3a8a83b319aa67793662b13e761c7911422306e" - ansi-regex@^2.0.0: version "2.1.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" @@ -126,24 +118,10 @@ arr-flatten@^1.0.1: version "1.1.0" resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" -array-union@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - dependencies: - array-uniq "^1.0.1" - -array-uniq@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - array-unique@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" -arrify@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" - asn1.js@^4.0.0: version "4.9.1" resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.9.1.tgz#48ba240b45a9280e94748990ba597d216617fd40" @@ -189,8 +167,8 @@ async@1.x, async@^1.4.0, async@^1.4.2: resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" async@^2.0.1, async@^2.1.2, async@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/async/-/async-2.4.1.tgz#62a56b279c98a11d0987096a01cc3eeb8eb7bbd7" + version "2.5.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.5.0.tgz#843190fd6b7357a0b9e1c956edddd5ec8462b54d" dependencies: lodash "^4.14.0" @@ -206,7 +184,7 @@ aws4@^1.2.1: version "1.6.0" resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.6.0.tgz#83ef5ca860b2b32e4a0deedee8c771b9db57471e" -babel-code-frame@^6.16.0, babel-code-frame@^6.22.0: +babel-code-frame@^6.22.0: version "6.22.0" resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.22.0.tgz#027620bee567a88c32561574e7fd0801d33118e4" dependencies: @@ -713,8 +691,8 @@ babel-register@^6.23.0, babel-register@^6.24.1: source-map-support "^0.4.2" babel-runtime@^6.18.0, babel-runtime@^6.22.0: - version "6.23.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.23.0.tgz#0a9489f144de70efb3ce4300accdb329e2fc543b" + version "6.25.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.25.0.tgz#33b98eaa5d482bb01a8d1aa6b437ad2b01aec41c" dependencies: core-js "^2.4.0" regenerator-runtime "^0.10.0" @@ -760,12 +738,12 @@ babelify@^7.3.0: object-assign "^4.0.0" babylon@^6.17.2: - version "6.17.3" - resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.3.tgz#1327d709950b558f204e5352587fd0290f8d8e48" + version "6.17.4" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.17.4.tgz#3e8b7402b88d22c3423e137a1577883b15ff869a" -balanced-match@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" +balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" base-x@^1.1.0: version "1.1.0" @@ -785,21 +763,21 @@ big.js@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" -"bignumber.js@git+https://github.com/debris/bignumber.js#master": - version "2.0.7" - resolved "git+https://github.com/debris/bignumber.js#c7a38de919ed75e6fb6ba38051986e294b328df9" - "bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2": version "2.0.7" resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" +"bignumber.js@git+https://github.com/debris/bignumber.js.git#master": + version "2.0.7" + resolved "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9" + binary-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.9.0.tgz#66506c16ce6f4d6928a5b3cd6a33ca41e941e37b" bindings@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.2.1.tgz#14ad6113812d2d37d72e67b4cacb4bb726505f11" + version "1.3.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.3.0.tgz#b346f6ecf6a95f5a815c5839fc7cdb22502f1ed7" bip39@^2.2.0: version "2.3.1" @@ -830,8 +808,8 @@ block-stream@*: inherits "~2.0.0" bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.11.3, bn.js@^4.4.0, bn.js@^4.8.0: - version "4.11.6" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.6.tgz#53344adb14617a13f6e8dd2ce28905d1c0ba3215" + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" boom@2.x.x: version "2.10.1" @@ -840,10 +818,10 @@ boom@2.x.x: hoek "2.x.x" brace-expansion@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.7.tgz#3effc3c50e000531fb720eaff80f0ae8ef23cf59" + version "1.1.8" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.8.tgz#c07b211c7c952ec1f8efd51a77ef0d1d3990a292" dependencies: - balanced-match "^0.4.1" + balanced-match "^1.0.0" concat-map "0.0.1" braces@^1.8.2: @@ -956,16 +934,6 @@ builtin-status-codes@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" -caller-path@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-0.1.0.tgz#94085ef63581ecd3daa92444a8fe94e82577751f" - dependencies: - callsites "^0.2.0" - -callsites@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-0.2.0.tgz#afab96262910a7f33c19a5775825c69f34e350ca" - camelcase@^1.0.2: version "1.2.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" @@ -994,19 +962,18 @@ center-align@^0.1.1: lazy-cache "^1.0.3" chai-as-promised@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.0.tgz#5bc1be34e39e8555785945dd1085222f720577e7" + version "7.1.1" + resolved "https://registry.yarnpkg.com/chai-as-promised/-/chai-as-promised-7.1.1.tgz#08645d825deb8696ee61725dbf590c012eb00ca0" dependencies: check-error "^1.0.2" - eslint "^3.19.0" chai-bignumber@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/chai-bignumber/-/chai-bignumber-2.0.0.tgz#0cbf9b81790801c3f24fb77f59fa1e17a9c6e3f2" + version "2.0.1" + resolved "https://registry.yarnpkg.com/chai-bignumber/-/chai-bignumber-2.0.1.tgz#8e336afc5d56ab16c27f95e2f59b25e0a0afc81c" chai@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/chai/-/chai-4.0.2.tgz#2f7327c4de6f385dd7787999e2ab02697a32b83b" + version "4.1.1" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.1.1.tgz#66e21279e6f3c6415ff8231878227900e2171b39" dependencies: assertion-error "^1.0.1" check-error "^1.0.1" @@ -1015,7 +982,7 @@ chai@^4.0.2: pathval "^1.0.0" type-detect "^4.0.0" -chalk@^1.0.0, chalk@^1.1.0, chalk@^1.1.1, chalk@^1.1.3: +chalk@^1.1.0, chalk@^1.1.1: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" dependencies: @@ -1055,24 +1022,11 @@ chownr@^1.0.1: resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.3.tgz#eeabf194419ce900da3018c207d212f2a6df0a07" + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" dependencies: inherits "^2.0.1" - -circular-json@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/circular-json/-/circular-json-0.3.1.tgz#be8b36aefccde8b3ca7aa2d6afc07a37242c0d2d" - -cli-cursor@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-1.0.2.tgz#64da3f7d56a54412e59794bd62dc35295e8f2987" - dependencies: - restore-cursor "^1.0.1" - -cli-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.1.0.tgz#b234ca209b29ef66fc518d9b98d5847b00edf00a" + safe-buffer "^5.0.1" cliui@^2.1.0: version "2.1.0" @@ -1123,24 +1077,20 @@ commander@2.3.0: version "2.3.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.3.0.tgz#fd430e889832ec353b9acd1de217c11cb3eef873" -commander@2.9.0, commander@^2.9.0: +commander@2.9.0: version "2.9.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.9.0.tgz#9c99094176e12240cb22d6c5146098400fe0f7d4" dependencies: graceful-readlink ">= 1.0.0" +commander@^2.9.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + concat-map@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" -concat-stream@^1.5.2: - version "1.6.0" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.0.tgz#0aac662fd52be78964d5532f694784e70110acf7" - dependencies: - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - console-browserify@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" @@ -1160,10 +1110,10 @@ convert-source-map@^1.1.0: resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.0.tgz#9acd70851c6d5dfdd93d9282e5edf94a03ff46b5" core-js@^2.4.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.4.1.tgz#4de911e667b0eae9124e34254b53aea6fc618d3e" + version "2.5.0" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.0.tgz#569c050918be6486b3837552028ae0466b717086" -core-util-is@~1.0.0: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -1263,13 +1213,7 @@ debug@2.2.0: dependencies: ms "0.7.1" -debug@2.6.0: - version "2.6.0" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.0.tgz#bc596bcabe7617f11d9fa15361eded5608b8499b" - dependencies: - ms "0.7.2" - -debug@^2.1.1, debug@^2.2.0: +debug@2.6.8, debug@^2.1.1, debug@^2.2.0: version "2.6.8" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.8.tgz#e731531ca2ede27d188222427da17821d68ff4fc" dependencies: @@ -1298,10 +1242,10 @@ deep-is@~0.1.3: resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" deferred-leveldown@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.1.tgz#5d25c3310f5fe909946f6240dc9f90dd109a71ef" + version "1.2.2" + resolved "https://registry.yarnpkg.com/deferred-leveldown/-/deferred-leveldown-1.2.2.tgz#3acd2e0b75d1669924bc0a4b642851131173e1eb" dependencies: - abstract-leveldown "~2.4.0" + abstract-leveldown "~2.6.0" define-properties@^1.1.2: version "1.1.2" @@ -1314,18 +1258,6 @@ defined@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" -del@^2.0.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/del/-/del-2.2.2.tgz#c12c981d067846c84bcaf862cff930d907ffd1a8" - dependencies: - globby "^5.0.0" - is-path-cwd "^1.0.0" - is-path-in-cwd "^1.0.0" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - rimraf "^2.2.8" - delayed-stream@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" @@ -1363,13 +1295,6 @@ diffie-hellman@^5.0.0: miller-rabin "^4.0.0" randombytes "^2.0.0" -doctrine@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/doctrine/-/doctrine-2.0.0.tgz#c73d8d2909d22291e1a007a395804da8b665fe63" - dependencies: - esutils "^2.0.2" - isarray "^1.0.0" - dom-walk@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/dom-walk/-/dom-walk-0.1.1.tgz#672226dc74c8f799ad35307df936aba11acd6018" @@ -1442,13 +1367,14 @@ error-ex@^1.2.0: is-arrayish "^0.2.1" es-abstract@^1.5.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.7.0.tgz#dfade774e01bfcd97f96180298c449c8623fb94c" + version "1.8.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.8.0.tgz#3b00385e85729932beffa9163bbea1234e932914" dependencies: es-to-primitive "^1.1.1" function-bind "^1.1.0" + has "^1.0.1" is-callable "^1.1.3" - is-regex "^1.0.3" + is-regex "^1.0.4" es-to-primitive@^1.1.1: version "1.1.1" @@ -1459,8 +1385,8 @@ es-to-primitive@^1.1.1: is-symbol "^1.0.1" es5-ext@^0.10.14, es5-ext@^0.10.9, es5-ext@~0.10.14: - version "0.10.23" - resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.23.tgz#7578b51be974207a5487821b56538c224e4e7b38" + version "0.10.27" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.27.tgz#bf926b058c62b1cb5de1a887930673b6aa6d9a66" dependencies: es6-iterator "2" es6-symbol "~3.1" @@ -1514,7 +1440,7 @@ escape-string-regexp@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz#4dbc2fe674e71949caf3fb2695ce7f2dc1d9a8d1" -escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: +escape-string-regexp@1.0.5, escape-string-regexp@^1.0.2: version "1.0.5" resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" @@ -1538,62 +1464,13 @@ escope@^3.6.0: esrecurse "^4.1.0" estraverse "^4.1.1" -eslint@^3.19.0: - version "3.19.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-3.19.0.tgz#c8fc6201c7f40dd08941b87c085767386a679acc" - dependencies: - babel-code-frame "^6.16.0" - chalk "^1.1.3" - concat-stream "^1.5.2" - debug "^2.1.1" - doctrine "^2.0.0" - escope "^3.6.0" - espree "^3.4.0" - esquery "^1.0.0" - estraverse "^4.2.0" - esutils "^2.0.2" - file-entry-cache "^2.0.0" - glob "^7.0.3" - globals "^9.14.0" - ignore "^3.2.0" - imurmurhash "^0.1.4" - inquirer "^0.12.0" - is-my-json-valid "^2.10.0" - is-resolvable "^1.0.0" - js-yaml "^3.5.1" - json-stable-stringify "^1.0.0" - levn "^0.3.0" - lodash "^4.0.0" - mkdirp "^0.5.0" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.1" - pluralize "^1.2.1" - progress "^1.1.8" - require-uncached "^1.0.2" - shelljs "^0.7.5" - strip-bom "^3.0.0" - strip-json-comments "~2.0.1" - table "^3.7.8" - text-table "~0.2.0" - user-home "^2.0.0" - -espree@^3.4.0: - version "3.4.3" - resolved "https://registry.yarnpkg.com/espree/-/espree-3.4.3.tgz#2910b5ccd49ce893c2ffffaab4fd8b3a31b82374" - dependencies: - acorn "^5.0.1" - acorn-jsx "^3.0.0" - esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esquery@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.0.0.tgz#cfba8b57d7fba93f17298a8a006a04cda13d80fa" - dependencies: - estraverse "^4.0.0" +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" esrecurse@^4.1.0: version "4.2.0" @@ -1606,7 +1483,7 @@ estraverse@^1.9.1: version "1.9.3" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-1.9.3.tgz#af67f2dc922582415950926091a4005d29c9bb44" -estraverse@^4.0.0, estraverse@^4.1.0, estraverse@^4.1.1, estraverse@^4.2.0: +estraverse@^4.1.0, estraverse@^4.1.1: version "4.2.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" @@ -1618,6 +1495,10 @@ ethereum-common@0.0.18, ethereum-common@^0.0.18: version "0.0.18" resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.0.18.tgz#2fdc3576f232903358976eb39da783213ff9523f" +ethereum-common@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/ethereum-common/-/ethereum-common-0.1.0.tgz#874dd0fae5e962a56c50ebf28efa6fe39492b0e7" + ethereumjs-account@^2.0.3: version "2.0.4" resolved "https://registry.yarnpkg.com/ethereumjs-account/-/ethereumjs-account-2.0.4.tgz#f8c30231bcb707f4514d8a052c1f9da103624d47" @@ -1626,8 +1507,8 @@ ethereumjs-account@^2.0.3: rlp "^2.0.0" ethereumjs-block@^1.2.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.5.1.tgz#ffb9f636f2e7d4db4b8060df98f08e9d688dc660" + version "1.6.0" + resolved "https://registry.yarnpkg.com/ethereumjs-block/-/ethereumjs-block-1.6.0.tgz#cded4962deaca1eef17372b4d290e84b35c84372" dependencies: async "^2.0.1" ethereum-common "0.0.18" @@ -1642,17 +1523,17 @@ ethereumjs-testrpc-sc@4.0.1: webpack "^3.0.0" ethereumjs-testrpc@^3.0.2: - version "3.9.0" - resolved "https://registry.yarnpkg.com/ethereumjs-testrpc/-/ethereumjs-testrpc-3.9.0.tgz#a961ea4c43f3e05d5a7cddd83ee24136e1af09b9" + version "3.9.2" + resolved "https://registry.yarnpkg.com/ethereumjs-testrpc/-/ethereumjs-testrpc-3.9.2.tgz#bb0f2d3c3aa39350872ad38e40c83e9d787331c9" ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2: - version "1.3.1" - resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.1.tgz#d6909abcfb37da6404fc18124d351eda20047dac" + version "1.3.3" + resolved "https://registry.yarnpkg.com/ethereumjs-tx/-/ethereumjs-tx-1.3.3.tgz#ece051d3efdbe771ad2a518d61632ca2ab75ecbb" dependencies: ethereum-common "^0.0.18" ethereumjs-util "^5.0.0" -ethereumjs-util@^4.0.0, ethereumjs-util@^4.0.1, ethereumjs-util@^4.4.0: +ethereumjs-util@4.5.0, ethereumjs-util@^4.0.0, ethereumjs-util@^4.0.1, ethereumjs-util@^4.4.0: version "4.5.0" resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-4.5.0.tgz#3e9428b317eebda3d7260d854fddda954b1f1bc6" dependencies: @@ -1676,15 +1557,15 @@ ethereumjs-util@^5.0.0, ethereumjs-util@^5.0.1: secp256k1 "^3.0.1" ethereumjs-vm@^2.0.2: - version "2.0.2" - resolved "https://github.com/sc-forks/ethereumjs-vm-sc.git#7ad1fd13789b4e6f307e3f282289e58b6d4e94a7" + version "2.2.1" + resolved "https://registry.yarnpkg.com/ethereumjs-vm/-/ethereumjs-vm-2.2.1.tgz#183406cc40e4d9f4248e7e047dea7c191beab3a1" dependencies: async "^2.1.2" async-eventemitter "^0.2.2" - ethereum-common "0.0.18" + ethereum-common "0.1.0" ethereumjs-account "^2.0.3" ethereumjs-block "^1.2.2" - ethereumjs-util "^4.0.1" + ethereumjs-util "4.5.0" fake-merkle-patricia-tree "^1.0.1" functional-red-black-tree "^1.0.1" merkle-patricia-tree "^2.1.2" @@ -1737,10 +1618,6 @@ execa@^0.7.0: signal-exit "^3.0.0" strip-eof "^1.0.0" -exit-hook@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/exit-hook/-/exit-hook-1.1.1.tgz#f05ca233b48c05d54fff07765df8507e95c02ff8" - expand-brackets@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" @@ -1767,9 +1644,9 @@ extglob@^0.3.1: dependencies: is-extglob "^1.0.0" -extsprintf@1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.0.2.tgz#e1080e0658e300b06294990cc70e1502235fd550" +extsprintf@1.3.0, extsprintf@^1.2.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" fake-merkle-patricia-tree@^1.0.1: version "1.0.1" @@ -1785,20 +1662,6 @@ fast-levenshtein@~2.0.4: version "2.0.6" resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" -figures@^1.3.5: - version "1.7.0" - resolved "https://registry.yarnpkg.com/figures/-/figures-1.7.0.tgz#cbe1e3affcf1cd44b80cadfed28dc793a9701d2e" - dependencies: - escape-string-regexp "^1.0.5" - object-assign "^4.1.0" - -file-entry-cache@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-2.0.0.tgz#c392990c3e684783d838b8c84a45d8a048458361" - dependencies: - flat-cache "^1.2.1" - object-assign "^4.0.1" - filename-regex@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" @@ -1826,15 +1689,6 @@ find-up@^2.0.0: dependencies: locate-path "^2.0.0" -flat-cache@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-1.2.2.tgz#fa86714e72c21db88601761ecf2f555d1abc6b96" - dependencies: - circular-json "^0.3.1" - del "^2.0.2" - graceful-fs "^4.1.2" - write "^0.2.1" - for-each@^0.3.2, for-each@~0.3.2: version "0.3.2" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.2.tgz#2c40450b9348e97f281322593ba96704b9abd4d4" @@ -1999,17 +1853,7 @@ glob@^5.0.15: once "^1.3.0" path-is-absolute "^1.0.0" -glob@^6.0.1: - version "6.0.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" - dependencies: - inflight "^1.0.4" - inherits "2" - minimatch "2 || 3" - once "^1.3.0" - path-is-absolute "^1.0.0" - -glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@~7.1.1: +glob@^7.0.0, glob@^7.0.5, glob@~7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" dependencies: @@ -2027,21 +1871,10 @@ global@^4.3.2, global@~4.3.0: min-document "^2.19.0" process "~0.5.1" -globals@^9.0.0, globals@^9.14.0: +globals@^9.0.0: version "9.18.0" resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" -globby@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-5.0.0.tgz#ebd84667ca0dbb330b99bcfc68eac2bc54370e0d" - dependencies: - array-union "^1.0.1" - arrify "^1.0.0" - glob "^7.0.3" - object-assign "^4.0.1" - pify "^2.0.0" - pinkie-promise "^2.0.0" - graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -2115,10 +1948,11 @@ hash-base@^2.0.0: inherits "^2.0.1" hash.js@^1.0.0, hash.js@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.0.3.tgz#1332ff00156c0a0ffdd8236013d07b77a0451573" + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" dependencies: - inherits "^2.0.1" + inherits "^2.0.3" + minimalistic-assert "^1.0.0" hawk@~3.1.3: version "3.1.3" @@ -2156,8 +1990,8 @@ home-or-tmp@^2.0.0: os-tmpdir "^1.0.1" hosted-git-info@^2.1.4: - version "2.4.2" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.4.2.tgz#0076b9f46a270506ddbaaea56496897460612a67" + version "2.5.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.5.0.tgz#6d60e34b3abbc8313062c3b798ef8d901a07af3c" http-signature@~1.1.0: version "1.1.1" @@ -2172,25 +2006,17 @@ https-browserify@0.0.1: resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-0.0.1.tgz#3f91365cabe60b77ed0ebba24b454e3e09d95a82" iconv-lite@~0.4.13: - version "0.4.17" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.17.tgz#4fdaa3b38acbc2c031b045d0edcdfe1ecab18c8d" + version "0.4.18" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.18.tgz#23d8656b16aae6742ac29732ea8f0336a4789cf2" ieee754@^1.1.4: version "1.1.8" resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.8.tgz#be33d40ac10ef1926701f6f08a2d86fbfd1ad3e4" -ignore@^3.2.0: - version "3.3.3" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.3.tgz#432352e57accd87ab3110e82d3fea0e47812156d" - immediate@^3.2.3: version "3.2.3" resolved "https://registry.yarnpkg.com/immediate/-/immediate-3.2.3.tgz#d140fa8f614659bd6541233097ddaac25cdd991c" -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - indexof@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" @@ -2214,24 +2040,6 @@ ini@~1.3.0: version "1.3.4" resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.4.tgz#0537cb79daf59b59a1a517dff706c86ec039162e" -inquirer@^0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-0.12.0.tgz#1ef2bfd63504df0bc75785fff8c2c41df12f077e" - dependencies: - ansi-escapes "^1.1.0" - ansi-regex "^2.0.0" - chalk "^1.0.0" - cli-cursor "^1.0.1" - cli-width "^2.0.0" - figures "^1.3.5" - lodash "^4.3.0" - readline2 "^1.0.1" - run-async "^0.1.0" - rx-lite "^3.1.2" - string-width "^1.0.1" - strip-ansi "^3.0.0" - through "^2.3.6" - interpret@^1.0.0: version "1.0.3" resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.0.3.tgz#cbc35c62eeee73f19ab7b10a801511401afc0f90" @@ -2322,7 +2130,7 @@ is-hex-prefixed@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" -is-my-json-valid@^2.10.0, is-my-json-valid@^2.12.4: +is-my-json-valid@^2.12.4: version "2.16.0" resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.16.0.tgz#f079dd9bfdae65ee2038aae8acbc86ab109e3693" dependencies: @@ -2343,22 +2151,6 @@ is-number@^3.0.0: dependencies: kind-of "^3.0.2" -is-path-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" - -is-path-in-cwd@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.0.tgz#6477582b8214d602346094567003be8a9eac04dc" - dependencies: - is-path-inside "^1.0.0" - -is-path-inside@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.0.tgz#fc06e5a1683fbda13de667aff717bbc10a48f37f" - dependencies: - path-is-inside "^1.0.1" - is-posix-bracket@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" @@ -2371,18 +2163,12 @@ is-property@^1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" -is-regex@^1.0.3: +is-regex@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" dependencies: has "^1.0.1" -is-resolvable@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.0.0.tgz#8df57c61ea2e3c501408d100fb013cf8d6e0cc62" - dependencies: - tryit "^1.0.1" - is-stream@^1.0.1, is-stream@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" @@ -2459,16 +2245,23 @@ js-sha3@^0.3.1: resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.3.1.tgz#86122802142f0828502a0d1dee1d95e253bb0243" js-tokens@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.1.tgz#08e9f132484a2c45a30907e9dc4d5567b7f114d7" + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@3.6.1, js-yaml@3.x, js-yaml@^3.5.1: +js-yaml@3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" dependencies: argparse "^1.0.7" esprima "^2.6.0" +js-yaml@3.x: + version "3.9.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -2493,7 +2286,7 @@ json-schema@0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" -json-stable-stringify@^1.0.0, json-stable-stringify@^1.0.1: +json-stable-stringify@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" dependencies: @@ -2526,13 +2319,13 @@ jsonpointer@^4.0.0: resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" jsprim@^1.2.2: - version "1.4.0" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.0.tgz#a3b87e40298d8c380552d8cc7628a0bb95a22918" + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" dependencies: assert-plus "1.0.0" - extsprintf "1.0.2" + extsprintf "1.3.0" json-schema "0.2.3" - verror "1.3.6" + verror "1.10.0" keccak@^1.0.2: version "1.3.0" @@ -2583,9 +2376,9 @@ lcov-parse@0.0.10: version "0.0.10" resolved "https://registry.yarnpkg.com/lcov-parse/-/lcov-parse-0.0.10.tgz#1b0b8ff9ac9c7889250582b70b71315d9da6d9a3" -level-codec@~6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-6.1.0.tgz#f5df0a99582f76dac43855151ab6f4e4d0d60045" +level-codec@~7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/level-codec/-/level-codec-7.0.0.tgz#c755b68d0d44ffa0b1cba044b8f81a55a14ad39b" level-errors@^1.0.3, level-errors@~1.0.3: version "1.0.4" @@ -2610,18 +2403,18 @@ level-ws@0.0.0: xtend "~2.1.1" levelup@^1.2.1: - version "1.3.8" - resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.8.tgz#fb442c488efbea1043f7eb9929a792a74fbd1da6" + version "1.3.9" + resolved "https://registry.yarnpkg.com/levelup/-/levelup-1.3.9.tgz#2dbcae845b2bb2b6bea84df334c475533bbd82ab" dependencies: deferred-leveldown "~1.2.1" - level-codec "~6.1.0" + level-codec "~7.0.0" level-errors "~1.0.3" level-iterator-stream "~1.3.0" prr "~1.0.1" - semver "~5.1.0" + semver "~5.4.1" xtend "~4.0.0" -levn@^0.3.0, levn@~0.3.0: +levn@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" dependencies: @@ -2717,7 +2510,7 @@ lodash.keys@^3.0.0: lodash.isarguments "^3.0.0" lodash.isarray "^3.0.0" -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.2.0, lodash@^4.3.0: +lodash@^4.14.0, lodash@^4.2.0: version "4.17.4" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.4.tgz#78203a4d1c328ae1d86dca6460e369b57f4055ae" @@ -2778,8 +2571,8 @@ memorystream@^0.3.1: resolved "https://registry.yarnpkg.com/memorystream/-/memorystream-0.3.1.tgz#86d7090b30ce455d63fbae12dda51a47ddcaf9b2" merkle-patricia-tree@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.1.2.tgz#724483d54b75631a48fedda55e114051706a7291" + version "2.2.0" + resolved "https://registry.yarnpkg.com/merkle-patricia-tree/-/merkle-patricia-tree-2.2.0.tgz#7a4787b1262ab00fe9b204ab471b005332306efa" dependencies: async "^1.4.2" ethereumjs-util "^4.0.0" @@ -2815,15 +2608,15 @@ miller-rabin@^4.0.0: bn.js "^4.0.0" brorand "^1.0.1" -mime-db@~1.27.0: - version "1.27.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.27.0.tgz#820f572296bbd20ec25ed55e5b5de869e5436eb1" +mime-db@~1.29.0: + version "1.29.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.29.0.tgz#48d26d235589651704ac5916ca06001914266878" mime-types@^2.1.12, mime-types@~2.1.7: - version "2.1.15" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.15.tgz#a4ebf5064094569237b8cf70046776d09fc92aed" + version "2.1.16" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.16.tgz#2b858a52e5ecd516db897ac2be87487830698e23" dependencies: - mime-db "~1.27.0" + mime-db "~1.29.0" mimic-fn@^1.0.0: version "1.1.0" @@ -2856,7 +2649,7 @@ minimatch@0.3: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -2864,11 +2657,15 @@ minimist@1.2.0, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + mkdirp@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" -mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0: +mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.1, mkdirp@~0.5.0: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -2894,12 +2691,12 @@ mocha@^2.4.5: to-iso-string "0.0.2" mocha@^3.4.2: - version "3.4.2" - resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.4.2.tgz#d0ef4d332126dbf18d0d640c9b382dd48be97594" + version "3.5.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-3.5.0.tgz#1328567d2717f997030f8006234bce9b8cd72465" dependencies: browser-stdout "1.3.0" commander "2.9.0" - debug "2.6.0" + debug "2.6.8" diff "3.2.0" escape-string-regexp "1.0.5" glob "7.1.1" @@ -2917,33 +2714,21 @@ ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" -ms@0.7.2: - version "0.7.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.2.tgz#ae25cf2512b3885a1d95d7f037868d8431124765" - ms@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" -mute-stream@0.0.5: - version "0.0.5" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.5.tgz#8fbfabb0a98a253d3184331f9e8deb7372fac6c0" - nan@^2.0.5, nan@^2.0.8, nan@^2.2.1, nan@^2.3.0: version "2.6.2" resolved "https://registry.yarnpkg.com/nan/-/nan-2.6.2.tgz#e4ff34e6c95fdfb5aecc08de6596f43605a7db45" -natural-compare@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" - node-abi@^2.0.0: - version "2.0.3" - resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.0.3.tgz#0ca67e5e667b8e1343549ca17153a815d0bbfdaa" + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-2.1.0.tgz#50ad834affcf17440e12bfc5f9ba0946f572d10c" node-fetch@^1.0.1: - version "1.7.1" - resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.1.tgz#899cb3d0a3c92f952c47f1b876f4c8aeabd400d5" + version "1.7.2" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-1.7.2.tgz#c54e9aac57e432875233525f3c891c4159ffefd7" dependencies: encoding "^0.1.11" is-stream "^1.0.1" @@ -3008,8 +2793,8 @@ nopt@^4.0.1: osenv "^0.1.4" normalize-package-data@^2.3.2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.3.8.tgz#d819eda2a9dedbd1ffa563ea4071d936782295bb" + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" dependencies: hosted-git-info "^2.1.4" is-builtin-module "^1.0.0" @@ -3029,8 +2814,8 @@ npm-run-path@^2.0.0: path-key "^2.0.0" npmlog@^4.0.1, npmlog@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.0.tgz#dc59bee85f64f00ed424efb2af0783df25d1c0b5" + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: are-we-there-yet "~1.1.2" console-control-strings "~1.1.0" @@ -3049,9 +2834,9 @@ object-assign@^4.0.0, object-assign@^4.0.1, object-assign@^4.1.0: version "4.1.1" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" -object-inspect@~1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.2.2.tgz#c82115e4fcc888aea14d64c22e4f17f6a70d5e5a" +object-inspect@~1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.3.0.tgz#5b1eb8e6742e2ee83342a637034d844928ba2f6d" object-keys@^1.0.8: version "1.0.11" @@ -3074,10 +2859,6 @@ once@1.x, once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: dependencies: wrappy "1" -onetime@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-1.1.0.tgz#a1f7838f8314c516f05ecefcbc4ccfe04b4ed789" - optimist@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/optimist/-/optimist-0.6.1.tgz#da3ea74686fa21a19a111c326e90eb15a0196686" @@ -3085,7 +2866,7 @@ optimist@^0.6.1: minimist "~0.0.1" wordwrap "~0.0.2" -optionator@^0.8.1, optionator@^0.8.2: +optionator@^0.8.1: version "0.8.2" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.2.tgz#364c5e409d3f4d6301d6c0b4c05bba50180aeb64" dependencies: @@ -3201,14 +2982,14 @@ path-is-absolute@^1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" -path-is-inside@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - path-key@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" +path-parse@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.5.tgz#3c1adf871ea9cd6c9431b6ea2bd74a0ff055c4c1" + path-type@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" @@ -3228,8 +3009,8 @@ pathval@^1.0.0: resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.0.tgz#b942e6d4bde653005ef6b71361def8727d0645e0" pbkdf2@^3.0.3, pbkdf2@^3.0.9: - version "3.0.12" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.12.tgz#be36785c5067ea48d806ff923288c5f750b6b8a2" + version "3.0.13" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.13.tgz#c37d295531e786b1da3e3eadc840426accb0ae25" dependencies: create-hash "^1.1.2" create-hmac "^1.1.4" @@ -3259,13 +3040,9 @@ pinkie@^2.0.0: version "2.0.4" resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" -pluralize@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/pluralize/-/pluralize-1.2.1.tgz#d1a21483fd22bb41e58a12fa3421823140897c45" - prebuild-install@^2.0.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.1.2.tgz#d9ae0ca85330e03962d93292f95a8b44c2ebf505" + version "2.2.2" + resolved "https://registry.yarnpkg.com/prebuild-install/-/prebuild-install-2.2.2.tgz#dd47c4d61f3754fb17bbf601759e5922e16e0671" dependencies: expand-template "^1.0.2" github-from-package "0.0.0" @@ -3279,7 +3056,7 @@ prebuild-install@^2.0.0: rc "^1.1.6" simple-get "^1.4.2" tar-fs "^1.13.0" - tunnel-agent "^0.4.3" + tunnel-agent "^0.6.0" xtend "4.0.1" prelude-ls@~1.1.2: @@ -3306,10 +3083,6 @@ process@~0.5.1: version "0.5.2" resolved "https://registry.yarnpkg.com/process/-/process-0.5.2.tgz#1638d8a8e34c2f440a91db95ab9aeb677fc185cf" -progress@^1.1.8: - version "1.1.8" - resolved "https://registry.yarnpkg.com/progress/-/progress-1.1.8.tgz#e260c78f6161cdd9b0e56cc3e0a85de17c7a57be" - prr@~0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/prr/-/prr-0.0.0.tgz#1a84b85908325501411853d0081ee3fa86e2926a" @@ -3415,7 +3188,28 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@^1.0.33, readable-stream@~1.0.15: +readable-stream@^1.0.33: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.6: + version "2.3.3" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.3.tgz#368f2512d79f9d46fdfc71349ae7878bbc1eb95c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + safe-buffer "~5.1.1" + string_decoder "~1.0.3" + util-deprecate "~1.0.1" + +readable-stream@~1.0.15: version "1.0.34" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: @@ -3424,18 +3218,6 @@ readable-stream@^1.0.33, readable-stream@~1.0.15: isarray "0.0.1" string_decoder "~0.10.x" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.5, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.2.2, readable-stream@^2.2.6: - version "2.2.11" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.2.11.tgz#0796b31f8d7688007ff0b93a8088d34aa17c0f72" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "~1.0.0" - process-nextick-args "~1.0.6" - safe-buffer "~5.0.1" - string_decoder "~1.0.0" - util-deprecate "~1.0.1" - readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -3445,14 +3227,6 @@ readdirp@^2.0.0: readable-stream "^2.0.2" set-immediate-shim "^1.0.1" -readline2@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/readline2/-/readline2-1.0.1.tgz#41059608ffc154757b715d9989d199ffbf372e35" - dependencies: - code-point-at "^1.0.0" - is-fullwidth-code-point "^1.0.0" - mute-stream "0.0.5" - rechoir@^0.6.2: version "0.6.2" resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" @@ -3530,7 +3304,7 @@ req-from@^1.0.1: dependencies: resolve-from "^2.0.0" -request@2.79.0, request@^2.67.0: +request@2.79.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: @@ -3555,7 +3329,7 @@ request@2.79.0, request@^2.67.0: tunnel-agent "~0.4.1" uuid "^3.0.0" -request@^2.81.0: +request@^2.67.0, request@^2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -3594,31 +3368,19 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" -require-uncached@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/require-uncached/-/require-uncached-1.0.3.tgz#4e0d56d6c9662fd31e43011c4b95aa49955421d3" - dependencies: - caller-path "^0.1.0" - resolve-from "^1.0.0" - -resolve-from@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-1.0.1.tgz#26cbfe935d1aeeeabb29bc3fe5aeb01e93d44226" - resolve-from@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" -resolve@1.1.x, resolve@^1.1.6, resolve@~1.1.7: +resolve@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -restore-cursor@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-1.0.1.tgz#34661f46886327fed2991479152252df92daa541" +resolve@^1.1.6, resolve@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" dependencies: - exit-hook "^1.0.0" - onetime "^1.0.0" + path-parse "^1.0.5" resumer@~0.0.0: version "0.0.0" @@ -3632,18 +3394,12 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@2, rimraf@^2.5.1, rimraf@^2.6.1: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.6.1: version "2.6.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.1.tgz#c2338ec643df7a1b7fe5c54fa86f57428a55f33d" dependencies: glob "^7.0.5" -rimraf@^2.2.8: - version "2.4.5" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.4.5.tgz#ee710ce5d93a8fdb856fb5ea8ff0e2d75934b2da" - dependencies: - glob "^6.0.1" - ripemd160@^2.0.0, ripemd160@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" @@ -3655,23 +3411,9 @@ rlp@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.0.0.tgz#9db384ff4b89a8f61563d92395d8625b18f3afb0" -run-async@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-0.1.0.tgz#c8ad4a5e110661e402a7d21b530e009f25f8e389" - dependencies: - once "^1.3.0" - -rx-lite@^3.1.2: - version "3.1.2" - resolved "https://registry.yarnpkg.com/rx-lite/-/rx-lite-3.1.2.tgz#19ce502ca572665f3b647b10939f97fd1615f102" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.0.tgz#fe4c8460397f9eaaaa58e73be46273408a45e223" - -safe-buffer@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.0.1.tgz#d263ca54696cd8a306b5ca6551e92de57918fbe7" +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" scrypt.js@^0.2.0: version "0.2.0" @@ -3707,16 +3449,12 @@ secp256k1@^3.0.1: safe-buffer "^5.1.0" semaphore@>=1.0.1, semaphore@^1.0.3: - version "1.0.5" - resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.0.5.tgz#b492576e66af193db95d65e25ec53f5f19798d60" + version "1.1.0" + resolved "https://registry.yarnpkg.com/semaphore/-/semaphore-1.1.0.tgz#aaad8b86b20fe8e9b32b16dc2ee682a8cd26a8aa" -"semver@2 || 3 || 4 || 5", semver@^5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" - -semver@~5.1.0: - version "5.1.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.1.1.tgz#a3292a373e6f3e0798da0b20641b9a9c5bc47e19" +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@~5.4.1: + version "5.4.1" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.4.1.tgz#e059c09d8571f0540823733433505d3a2f00b18e" set-blocking@^2.0.0, set-blocking@~2.0.0: version "2.0.0" @@ -3752,7 +3490,7 @@ shebang-regex@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" -shelljs@^0.7.4, shelljs@^0.7.5: +shelljs@^0.7.4: version "0.7.8" resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.7.8.tgz#decbcf874b0d1e5fb72e14b164a9683048e9acb3" dependencies: @@ -3780,10 +3518,6 @@ slash@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" -slice-ansi@0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" - sntp@1.x.x: version "1.0.9" resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" @@ -3794,7 +3528,7 @@ sol-explore@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/sol-explore/-/sol-explore-1.6.2.tgz#43ae8c419fd3ac056a05f8a9d1fb1022cd41ecc2" -solc@0.4.13, solc@^0.4.2: +solc@0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.13.tgz#aa5cbdcce3e6ae3c190d20f5fdf8bc880702ec75" dependencies: @@ -3804,6 +3538,16 @@ solc@0.4.13, solc@^0.4.2: semver "^5.3.0" yargs "^4.7.1" +solc@^0.4.2: + version "0.4.15" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.15.tgz#8ae8f1606a124a3f81c28b9dcecb0964ebdf9f25" + dependencies: + fs-extra "^0.30.0" + memorystream "^0.3.1" + require-from-string "^1.1.0" + semver "^5.3.0" + yargs "^4.7.1" + solidity-coverage@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.2.1.tgz#aa6fd8e7d49a6fcd1dc9913e9b61bc84f8ad046f" @@ -3912,8 +3656,8 @@ string-width@^1.0.1, string-width@^1.0.2: strip-ansi "^3.0.0" string-width@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.0.tgz#030664561fc146c9423ec7d978fe2457437fe6d0" + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" dependencies: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" @@ -3930,11 +3674,11 @@ string_decoder@^0.10.25, string_decoder@~0.10.x: version "0.10.31" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" -string_decoder@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.2.tgz#b29e1f4e1125fa97a10382b8a533737b7491e179" +string_decoder@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.0.3.tgz#0fc67d7c141825de94282dd536bec6b9bce860ab" dependencies: - safe-buffer "~5.0.1" + safe-buffer "~5.1.0" stringstream@~0.0.4: version "0.0.5" @@ -3980,7 +3724,7 @@ supports-color@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-1.2.0.tgz#ff1ed1e61169d06b3cf2d588e188b18d8847e17e" -supports-color@3.1.2, supports-color@^3.1.0: +supports-color@3.1.2: version "3.1.2" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.1.2.tgz#72a262894d9d408b956ca05ff37b2ed8a6e2a2d5" dependencies: @@ -3990,41 +3734,36 @@ supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" +supports-color@^3.1.0: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + supports-color@^4.2.1: version "4.2.1" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.1.tgz#65a4bb2631e90e02420dba5554c375a4754bb836" dependencies: has-flag "^2.0.0" -table@^3.7.8: - version "3.8.3" - resolved "https://registry.yarnpkg.com/table/-/table-3.8.3.tgz#2bbc542f0fda9861a755d3947fefd8b3f513855f" - dependencies: - ajv "^4.7.0" - ajv-keywords "^1.0.0" - chalk "^1.1.1" - lodash "^4.0.0" - slice-ansi "0.0.4" - string-width "^2.0.0" - tapable@^0.2.7: version "0.2.8" resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" tape@^4.4.0: - version "4.6.3" - resolved "https://registry.yarnpkg.com/tape/-/tape-4.6.3.tgz#637e77581e9ab2ce17577e9bd4ce4f575806d8b6" + version "4.8.0" + resolved "https://registry.yarnpkg.com/tape/-/tape-4.8.0.tgz#f6a9fec41cc50a1de50fa33603ab580991f6068e" dependencies: deep-equal "~1.0.1" defined "~1.0.0" for-each "~0.3.2" function-bind "~1.1.0" - glob "~7.1.1" + glob "~7.1.2" has "~1.0.1" inherits "~2.0.3" minimist "~1.2.0" - object-inspect "~1.2.1" - resolve "~1.1.7" + object-inspect "~1.3.0" + resolve "~1.4.0" resumer "~0.0.0" string.prototype.trim "~1.1.2" through "~2.3.8" @@ -4068,11 +3807,7 @@ tar@^2.2.1: fstream "^1.0.2" inherits "2" -text-table@~0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" - -through@^2.3.6, through@~2.3.4, through@~2.3.8: +through@~2.3.4, through@~2.3.8: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" @@ -4119,31 +3854,27 @@ truffle-hdwallet-provider@0.0.3: web3-provider-engine "^8.4.0" truffle@^3.4.6: - version "3.4.6" - resolved "https://registry.yarnpkg.com/truffle/-/truffle-3.4.6.tgz#72a07154233b4d1198ecb991a5fab468a0c54671" + version "3.4.8" + resolved "https://registry.yarnpkg.com/truffle/-/truffle-3.4.8.tgz#5d0cc363dfd6eb3fd5efbc9675732b52b587d8c3" dependencies: mocha "^3.4.2" original-require "^1.0.1" solc "0.4.13" -tryit@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tryit/-/tryit-1.0.3.tgz#393be730a9446fd1ead6da59a014308f36c289cb" - tty-browserify@0.0.0: version "0.0.0" resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" -tunnel-agent@^0.4.3, tunnel-agent@~0.4.1: - version "0.4.3" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" - tunnel-agent@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" dependencies: safe-buffer "^5.0.1" +tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + tweetnacl@^0.14.3, tweetnacl@~0.14.0: version "0.14.5" resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" @@ -4162,20 +3893,7 @@ type-detect@^4.0.0: version "4.0.3" resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.3.tgz#0e3f2670b44099b0b46c284d136a7ef49c74c2ea" -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - -uglify-js@^2.6: - version "2.8.28" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.28.tgz#e335032df9bb20dcb918f164589d5af47f38834a" - dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" - -uglify-js@^2.8.29: +uglify-js@^2.6, uglify-js@^2.8.29: version "2.8.29" resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" dependencies: @@ -4215,12 +3933,6 @@ url@^0.11.0: punycode "1.3.2" querystring "0.2.0" -user-home@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/user-home/-/user-home-2.0.0.tgz#9c70bfd8169bc1dcbf48604e0f04b8b49cde9e9f" - dependencies: - os-homedir "^1.0.0" - utf8@^2.1.1: version "2.1.2" resolved "https://registry.yarnpkg.com/utf8/-/utf8-2.1.2.tgz#1fa0d9270e9be850d9b05027f63519bf46457d96" @@ -4240,8 +3952,8 @@ uuid@^2.0.1: resolved "https://registry.yarnpkg.com/uuid/-/uuid-2.0.3.tgz#67e2e863797215530dff318e5bf9dcebfd47b21a" uuid@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.0.1.tgz#6544bba2dfda8c1cf17e629a3a305e2bb1fee6c1" + version "3.1.0" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.1.0.tgz#3dd3d3e790abc24d7b0d3a034ffababe28ebbc04" validate-npm-package-license@^3.0.1: version "3.0.1" @@ -4250,11 +3962,13 @@ validate-npm-package-license@^3.0.1: spdx-correct "~1.0.0" spdx-expression-parse "~1.0.0" -verror@1.3.6: - version "1.3.6" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.3.6.tgz#cff5df12946d297d2baaefaa2689e25be01c005c" +verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" dependencies: - extsprintf "1.0.2" + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" vm-browserify@0.0.4: version "0.0.4" @@ -4355,8 +4069,8 @@ which-module@^2.0.0: resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" which@^1.1.1, which@^1.2.9: - version "1.2.14" - resolved "https://registry.yarnpkg.com/which/-/which-1.2.14.tgz#9a87c4378f03e827cecaf1acdf56c736c01c14e5" + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: isexe "^2.0.0" @@ -4397,12 +4111,6 @@ wrappy@1: version "1.0.2" resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" -write@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/write/-/write-0.2.1.tgz#5fc03828e264cea3fe91455476f7a3c566cb0757" - dependencies: - mkdirp "^0.5.1" - xhr2@*: version "0.1.4" resolved "https://registry.yarnpkg.com/xhr2/-/xhr2-0.1.4.tgz#7f87658847716db5026323812f818cadab387a5f" From 4fc6bb7977f9f00c61cfd03f7450fe820f6b399d Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sat, 12 Aug 2017 21:33:32 -0300 Subject: [PATCH 105/160] remove token.finishMinting() from default finalization --- contracts/crowdsale/FinalizableCrowdsale.sol | 17 +++++++++-------- test/FinalizableCrowdsale.js | 7 ------- 2 files changed, 9 insertions(+), 15 deletions(-) diff --git a/contracts/crowdsale/FinalizableCrowdsale.sol b/contracts/crowdsale/FinalizableCrowdsale.sol index 1a736083c..b9920baca 100644 --- a/contracts/crowdsale/FinalizableCrowdsale.sol +++ b/contracts/crowdsale/FinalizableCrowdsale.sol @@ -16,8 +16,10 @@ contract FinalizableCrowdsale is Crowdsale, Ownable { event Finalized(); - // should be called after crowdsale ends, to do - // some extra finalization work + /** + * @dev Must be called after crowdsale ends, to do some extra finalization + * work. Calls the contract's finalization function. + */ function finalize() onlyOwner { require(!isFinalized); require(hasEnded()); @@ -28,12 +30,11 @@ contract FinalizableCrowdsale is Crowdsale, Ownable { isFinalized = true; } - // end token minting on finalization - // override this with custom logic if needed + /** + * @dev Can be overriden to add finalization logic. The overriding function + * should call super.finalization() to ensure the chain of finalization is + * executed entirely. + */ function finalization() internal { - token.finishMinting(); } - - - } diff --git a/test/FinalizableCrowdsale.js b/test/FinalizableCrowdsale.js index a7e76bfbf..f2266df74 100644 --- a/test/FinalizableCrowdsale.js +++ b/test/FinalizableCrowdsale.js @@ -60,11 +60,4 @@ contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { should.exist(event) }) - it('finishes minting of token', async function () { - await increaseTimeTo(this.afterEndTime) - await this.crowdsale.finalize({from: owner}) - const finished = await this.token.mintingFinished() - finished.should.equal(true) - }) - }) From 99e0f5b5cbe967884cae4aff71f1dfc891053229 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Sun, 13 Aug 2017 12:48:31 +0200 Subject: [PATCH 106/160] Refactor time manipulation in TokenTimelock tests --- test/TokenTimelock.js | 13 ++++++------- test/helpers/increaseTime.js | 4 +++- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/test/TokenTimelock.js b/test/TokenTimelock.js index 25ffd9e2e..8dd1a335a 100644 --- a/test/TokenTimelock.js +++ b/test/TokenTimelock.js @@ -5,10 +5,9 @@ require('chai') .use(require('chai-bignumber')(BigNumber)) .should() -import moment from 'moment' import latestTime from './helpers/latestTime' -import increaseTime from './helpers/increaseTime' +import {increaseTimeTo, duration} from './helpers/increaseTime' const MintableToken = artifacts.require('MintableToken') const TokenTimelock = artifacts.require('TokenTimelock') @@ -19,7 +18,7 @@ contract('TokenTimelock', function ([_, owner, beneficiary]) { beforeEach(async function () { this.token = await MintableToken.new({from: owner}) - this.releaseTime = latestTime().add(1, 'year').unix() + this.releaseTime = latestTime().unix() + duration.years(1) this.timelock = await TokenTimelock.new(this.token.address, beneficiary, this.releaseTime) await this.token.mint(this.timelock.address, amount, {from: owner}) }) @@ -29,26 +28,26 @@ contract('TokenTimelock', function ([_, owner, beneficiary]) { }) it('cannot be released just before time limit', async function () { - await increaseTime(moment.duration(0.99, 'year').asSeconds()) + await increaseTimeTo(this.releaseTime - duration.seconds(3)) await this.timelock.release().should.be.rejected }) it('can be released just after limit', async function () { - await increaseTime(moment.duration(1.01, 'year').asSeconds()) + await increaseTimeTo(this.releaseTime + duration.seconds(1)) await this.timelock.release().should.be.fulfilled const balance = await this.token.balanceOf(beneficiary) balance.should.be.bignumber.equal(amount) }) it('can be released after time limit', async function () { - await increaseTime(moment.duration(2, 'year').asSeconds()) + await increaseTimeTo(this.releaseTime + duration.years(1)) await this.timelock.release().should.be.fulfilled const balance = await this.token.balanceOf(beneficiary) balance.should.be.bignumber.equal(amount) }) it('cannot be released twice', async function () { - await increaseTime(moment.duration(2, 'year').asSeconds()) + await increaseTimeTo(this.releaseTime + duration.years(1)) await this.timelock.release().should.be.fulfilled await this.timelock.release().should.be.rejected const balance = await this.token.balanceOf(beneficiary) diff --git a/test/helpers/increaseTime.js b/test/helpers/increaseTime.js index 5a6a8e2c2..9d9f0d094 100644 --- a/test/helpers/increaseTime.js +++ b/test/helpers/increaseTime.js @@ -43,5 +43,7 @@ export const duration = { minutes: function(val) { return val * this.seconds(60) }, hours: function(val) { return val * this.minutes(60) }, days: function(val) { return val * this.hours(24) }, - weeks: function(val) { return val * this.days(7) } + weeks: function(val) { return val * this.days(7) }, + months: function(val) { return val * this.days(30)}, + years: function(val) { return val * this.days(365)} }; \ No newline at end of file From e86ac90853649808b56ee675d8399cbb61c007a0 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Mon, 14 Aug 2017 00:27:09 +0200 Subject: [PATCH 107/160] Refactor and remove moment.js usages --- test/CappedCrowdsale.js | 2 +- test/Crowdsale.js | 2 +- test/FinalizableCrowdsale.js | 2 +- test/RefundableCrowdsale.js | 2 +- test/SampleCrowdsale.js | 2 +- test/TokenTimelock.js | 2 +- test/helpers/increaseTime.js | 2 +- test/helpers/latestTime.js | 6 ++---- 8 files changed, 9 insertions(+), 11 deletions(-) diff --git a/test/CappedCrowdsale.js b/test/CappedCrowdsale.js index 9dd027b35..c3a7458ea 100644 --- a/test/CappedCrowdsale.js +++ b/test/CappedCrowdsale.js @@ -27,7 +27,7 @@ contract('CappedCrowdsale', function ([_, wallet]) { }) beforeEach(async function () { - this.startTime = latestTime().unix() + duration.weeks(1); + this.startTime = latestTime() + duration.weeks(1); this.endTime = this.startTime + duration.weeks(1); this.crowdsale = await CappedCrowdsale.new(this.startTime, this.endTime, rate, wallet, cap) diff --git a/test/Crowdsale.js b/test/Crowdsale.js index e3abe1975..3294818a2 100644 --- a/test/Crowdsale.js +++ b/test/Crowdsale.js @@ -27,7 +27,7 @@ contract('Crowdsale', function ([_, investor, wallet, purchaser]) { }) beforeEach(async function () { - this.startTime = latestTime().unix() + duration.weeks(1); + this.startTime = latestTime() + duration.weeks(1); this.endTime = this.startTime + duration.weeks(1); this.afterEndTime = this.endTime + duration.seconds(1) diff --git a/test/FinalizableCrowdsale.js b/test/FinalizableCrowdsale.js index a7e76bfbf..b138ec36d 100644 --- a/test/FinalizableCrowdsale.js +++ b/test/FinalizableCrowdsale.js @@ -23,7 +23,7 @@ contract('FinalizableCrowdsale', function ([_, owner, wallet, thirdparty]) { }) beforeEach(async function () { - this.startTime = latestTime().unix() + duration.weeks(1) + this.startTime = latestTime() + duration.weeks(1) this.endTime = this.startTime + duration.weeks(1) this.afterEndTime = this.endTime + duration.seconds(1) diff --git a/test/RefundableCrowdsale.js b/test/RefundableCrowdsale.js index d3150a94f..ce9515bb6 100644 --- a/test/RefundableCrowdsale.js +++ b/test/RefundableCrowdsale.js @@ -25,7 +25,7 @@ contract('RefundableCrowdsale', function ([_, owner, wallet, investor]) { }) beforeEach(async function () { - this.startTime = latestTime().unix() + duration.weeks(1) + this.startTime = latestTime() + duration.weeks(1) this.endTime = this.startTime + duration.weeks(1) this.afterEndTime = this.endTime + duration.seconds(1) diff --git a/test/SampleCrowdsale.js b/test/SampleCrowdsale.js index b17c15aeb..709c4bebd 100644 --- a/test/SampleCrowdsale.js +++ b/test/SampleCrowdsale.js @@ -26,7 +26,7 @@ contract('Crowdsale', function ([owner, wallet, investor]) { }) beforeEach(async function () { - this.startTime = latestTime().unix() + duration.weeks(1); + this.startTime = latestTime() + duration.weeks(1); this.endTime = this.startTime + duration.weeks(1); this.afterEndTime = this.endTime + duration.seconds(1); diff --git a/test/TokenTimelock.js b/test/TokenTimelock.js index 8dd1a335a..bbe431d3d 100644 --- a/test/TokenTimelock.js +++ b/test/TokenTimelock.js @@ -18,7 +18,7 @@ contract('TokenTimelock', function ([_, owner, beneficiary]) { beforeEach(async function () { this.token = await MintableToken.new({from: owner}) - this.releaseTime = latestTime().unix() + duration.years(1) + this.releaseTime = latestTime() + duration.years(1) this.timelock = await TokenTimelock.new(this.token.address, beneficiary, this.releaseTime) await this.token.mint(this.timelock.address, amount, {from: owner}) }) diff --git a/test/helpers/increaseTime.js b/test/helpers/increaseTime.js index 9d9f0d094..2b5511215 100644 --- a/test/helpers/increaseTime.js +++ b/test/helpers/increaseTime.js @@ -32,7 +32,7 @@ export default function increaseTime(duration) { * @param target time in seconds */ export function increaseTimeTo(target) { - let now = latestTime().unix(); + let now = latestTime(); if (target < now) throw Error(`Cannot increase current time(${now}) to a moment in the past(${target})`); let diff = target - now; return increaseTime(diff); diff --git a/test/helpers/latestTime.js b/test/helpers/latestTime.js index 1461a227c..bdc97053a 100644 --- a/test/helpers/latestTime.js +++ b/test/helpers/latestTime.js @@ -1,6 +1,4 @@ -import moment from 'moment' - -// Returns a moment.js instance representing the time of the last mined block +// Returns the time of the last mined block in seconds export default function latestTime() { - return moment.unix(web3.eth.getBlock('latest').timestamp) + return web3.eth.getBlock('latest').timestamp; } From 17cfb0fc78283ddc102d78da5c8a2f4fc0ea3af3 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Mon, 14 Aug 2017 00:36:01 +0200 Subject: [PATCH 108/160] Remove moment.js from package dependencies --- package.json | 1 - yarn.lock | 72 +++++++++++----------------------------------------- 2 files changed, 15 insertions(+), 58 deletions(-) diff --git a/package.json b/package.json index d22ff0e3e..80efe2c05 100644 --- a/package.json +++ b/package.json @@ -39,7 +39,6 @@ "coveralls": "^2.13.1", "ethereumjs-testrpc": "^3.0.2", "mocha-lcov-reporter": "^1.3.0", - "moment": "^2.18.1", "solidity-coverage": "^0.2.1", "truffle": "^3.4.6", "truffle-hdwallet-provider": "0.0.3" diff --git a/yarn.lock b/yarn.lock index 007160c50..2fc308b3c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,11 +2,7 @@ # yarn lockfile v1 -abbrev@1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" - -abbrev@1.0.x: +abbrev@1, abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" @@ -763,14 +759,14 @@ big.js@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" +"bignumber.js@git+https://github.com/debris/bignumber.js#master": + version "2.0.7" + resolved "git+https://github.com/debris/bignumber.js#c7a38de919ed75e6fb6ba38051986e294b328df9" + "bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2": version "2.0.7" resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" -"bignumber.js@git+https://github.com/debris/bignumber.js.git#master": - version "2.0.7" - resolved "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9" - binary-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.9.0.tgz#66506c16ce6f4d6928a5b3cd6a33ca41e941e37b" @@ -1468,10 +1464,6 @@ esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" -esprima@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" - esrecurse@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" @@ -2248,20 +2240,13 @@ js-tokens@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@3.6.1: +js-yaml@3.6.1, js-yaml@3.x: version "3.6.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" dependencies: argparse "^1.0.7" esprima "^2.6.0" -js-yaml@3.x: - version "3.9.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -2649,7 +2634,7 @@ minimatch@0.3: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8: +minimist@0.0.8, minimist@~0.0.1: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -2657,10 +2642,6 @@ minimist@1.2.0, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" -minimist@~0.0.1: - version "0.0.10" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" - mkdirp@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" @@ -2706,10 +2687,6 @@ mocha@^3.4.2: mkdirp "0.5.1" supports-color "3.1.2" -moment@^2.18.1: - version "2.18.1" - resolved "https://registry.yarnpkg.com/moment/-/moment-2.18.1.tgz#c36193dd3ce1c2eed2adb7c802dbbc77a81b1c0f" - ms@0.7.1: version "0.7.1" resolved "https://registry.yarnpkg.com/ms/-/ms-0.7.1.tgz#9cd13c03adbff25b65effde7ce864ee952017098" @@ -3188,9 +3165,9 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@^1.0.33: - version "1.1.14" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" +readable-stream@^1.0.33, readable-stream@~1.0.15: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -3209,15 +3186,6 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" -readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -3304,7 +3272,7 @@ req-from@^1.0.1: dependencies: resolve-from "^2.0.0" -request@2.79.0: +request@2.79.0, request@^2.67.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: @@ -3329,7 +3297,7 @@ request@2.79.0: tunnel-agent "~0.4.1" uuid "^3.0.0" -request@^2.67.0, request@^2.81.0: +request@^2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -3372,11 +3340,11 @@ resolve-from@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" -resolve@1.1.x: +resolve@1.1.x, resolve@^1.1.6: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@^1.1.6, resolve@~1.4.0: +resolve@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" dependencies: @@ -3528,7 +3496,7 @@ sol-explore@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/sol-explore/-/sol-explore-1.6.2.tgz#43ae8c419fd3ac056a05f8a9d1fb1022cd41ecc2" -solc@0.4.13: +solc@0.4.13, solc@^0.4.2: version "0.4.13" resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.13.tgz#aa5cbdcce3e6ae3c190d20f5fdf8bc880702ec75" dependencies: @@ -3538,16 +3506,6 @@ solc@0.4.13: semver "^5.3.0" yargs "^4.7.1" -solc@^0.4.2: - version "0.4.15" - resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.15.tgz#8ae8f1606a124a3f81c28b9dcecb0964ebdf9f25" - dependencies: - fs-extra "^0.30.0" - memorystream "^0.3.1" - require-from-string "^1.1.0" - semver "^5.3.0" - yargs "^4.7.1" - solidity-coverage@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.2.1.tgz#aa6fd8e7d49a6fcd1dc9913e9b61bc84f8ad046f" From 36452136f1ef26ecfeed3fa07404e3ec113c4489 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sun, 13 Aug 2017 22:41:25 -0300 Subject: [PATCH 109/160] add test for finishMinting --- test/MintableToken.js | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/test/MintableToken.js b/test/MintableToken.js index a3ae8968e..f6af9ebac 100644 --- a/test/MintableToken.js +++ b/test/MintableToken.js @@ -1,6 +1,6 @@ 'use strict'; -const assertJump = require('./helpers/assertJump'); +import expectThrow from './helpers/expectThrow'; var MintableToken = artifacts.require('../contracts/Tokens/MintableToken.sol'); contract('Mintable', function(accounts) { @@ -37,4 +37,10 @@ contract('Mintable', function(accounts) { assert(totalSupply, 100); }) + it('should fail to mint after call to finishMinting', async function () { + await token.finishMinting(); + assert.equal(await token.mintingFinished(), true); + await expectThrow(token.mint(accounts[0], 100)); + }) + }); From c79c6d76d819d9e8916a6551b7bddb1e24ab522b Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 14 Aug 2017 02:53:27 -0300 Subject: [PATCH 110/160] unify test and coverage scripts --- scripts/coverage.sh | 38 ++------------------------------------ scripts/test.sh | 29 +++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 38 deletions(-) diff --git a/scripts/coverage.sh b/scripts/coverage.sh index 70fd3192a..8a50f77b4 100755 --- a/scripts/coverage.sh +++ b/scripts/coverage.sh @@ -1,37 +1,3 @@ -#!/bin/bash +#!/usr/bin/env bash -# Executes cleanup function at script exit. -trap cleanup EXIT - -cleanup() { - # Kill the testrpc instance that we started (if we started one). - if [ -n "$testrpc_pid" ]; then - kill -9 $testrpc_pid - fi -} - -testrpc_running() { - nc -z localhost 8555 -} - -if testrpc_running; then - echo "Using existing testrpc-sc instance" -else - echo "Starting testrpc-sc to generate coverage" - # We define 10 accounts with balance 1M ether, needed for high-value tests. - ./node_modules/ethereumjs-testrpc-sc/build/cli.node.js --gasLimit 0xfffffffffff --port 8555 \ - --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501200,1000000000000000000000000" \ - --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501201,1000000000000000000000000" \ - --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501202,1000000000000000000000000" \ - --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501203,1000000000000000000000000" \ - --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501204,1000000000000000000000000" \ - --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501205,1000000000000000000000000" \ - --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501206,1000000000000000000000000" \ - --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501207,1000000000000000000000000" \ - --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501208,1000000000000000000000000" \ - --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501209,1000000000000000000000000" \ - > /dev/null & - testrpc_pid=$! -fi - -SOLIDITY_COVERAGE=true ./node_modules/.bin/solidity-coverage +SOLIDITY_COVERAGE=true scripts/test.sh diff --git a/scripts/test.sh b/scripts/test.sh index f55589db1..dff991a0b 100755 --- a/scripts/test.sh +++ b/scripts/test.sh @@ -1,5 +1,8 @@ #!/usr/bin/env bash +# Exit script as soon as a command fails. +set -o errexit + # Executes cleanup function at script exit. trap cleanup EXIT @@ -10,8 +13,22 @@ cleanup() { fi } +if [ "$SOLIDITY_COVERAGE" = true ]; then + testrpc_port=8555 +else + testrpc_port=8545 +fi + testrpc_running() { - nc -z localhost 8545 + nc -z localhost "$testrpc_port" +} + +testrpc() { + if [ "$SOLIDITY_COVERAGE" = true ]; then + node_modules/.bin/testrpc-sc --gasLimit 0xfffffffffff --port "$testrpc_port" "$@" + else + node_modules/.bin/testrpc "$@" + fi } if testrpc_running; then @@ -34,4 +51,12 @@ else testrpc_pid=$! fi -node_modules/.bin/truffle test "$@" +if [ "$SOLIDITY_COVERAGE" = true ]; then + node_modules/.bin/solidity-coverage + + if [ "$CONTINUOUS_INTEGRATION" = true ]; then + cat coverage/lcov.info | node_modules/.bin/coveralls + fi +else + node_modules/.bin/truffle test "$@" +fi From e82fa4eae03d476b9bf5e98479c1268ceabad1df Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 14 Aug 2017 02:55:17 -0300 Subject: [PATCH 111/160] parallelize tests and coverage in travis --- .travis.yml | 9 +++++++-- scripts/coveralls.sh | 4 ---- 2 files changed, 7 insertions(+), 6 deletions(-) delete mode 100755 scripts/coveralls.sh diff --git a/.travis.yml b/.travis.yml index af96e468c..e4af9c60f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,7 +6,12 @@ node_js: - "6" cache: yarn: true +env: + - + - SOLIDITY_COVERAGE=true +matrix: + fast_finish: true + allow_failures: + - env: SOLIDITY_COVERAGE=true script: - yarn test -after_script: - - yarn run coveralls diff --git a/scripts/coveralls.sh b/scripts/coveralls.sh deleted file mode 100755 index 264fe9521..000000000 --- a/scripts/coveralls.sh +++ /dev/null @@ -1,4 +0,0 @@ -#! /bin/bash - -yarn run coverage && cat coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js - From 0d6846a882042f093b08e6e37e8edebf35cf9c43 Mon Sep 17 00:00:00 2001 From: Jakub Wojciechowski Date: Tue, 15 Aug 2017 12:31:49 +0200 Subject: [PATCH 112/160] Remove moment.js dependencies - updates after review --- test/helpers/increaseTime.js | 1 - yarn.lock | 68 ++++++++++++++++++++++++++++-------- 2 files changed, 53 insertions(+), 16 deletions(-) diff --git a/test/helpers/increaseTime.js b/test/helpers/increaseTime.js index 2b5511215..a563caa5d 100644 --- a/test/helpers/increaseTime.js +++ b/test/helpers/increaseTime.js @@ -44,6 +44,5 @@ export const duration = { hours: function(val) { return val * this.minutes(60) }, days: function(val) { return val * this.hours(24) }, weeks: function(val) { return val * this.days(7) }, - months: function(val) { return val * this.days(30)}, years: function(val) { return val * this.days(365)} }; \ No newline at end of file diff --git a/yarn.lock b/yarn.lock index 2fc308b3c..a2b96f077 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,7 +2,11 @@ # yarn lockfile v1 -abbrev@1, abbrev@1.0.x: +abbrev@1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.0.tgz#d0554c2256636e2f56e7c2e5ad183f859428d81f" + +abbrev@1.0.x: version "1.0.9" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.0.9.tgz#91b4792588a7738c25f35dd6f63752a2f8776135" @@ -759,14 +763,14 @@ big.js@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" -"bignumber.js@git+https://github.com/debris/bignumber.js#master": - version "2.0.7" - resolved "git+https://github.com/debris/bignumber.js#c7a38de919ed75e6fb6ba38051986e294b328df9" - "bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2": version "2.0.7" resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" +"bignumber.js@git+https://github.com/debris/bignumber.js.git#master": + version "2.0.7" + resolved "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9" + binary-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.9.0.tgz#66506c16ce6f4d6928a5b3cd6a33ca41e941e37b" @@ -1464,6 +1468,10 @@ esprima@2.7.x, esprima@^2.6.0, esprima@^2.7.1: version "2.7.3" resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" +esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + esrecurse@^4.1.0: version "4.2.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.0.tgz#fa9568d98d3823f9a41d91e902dcab9ea6e5b163" @@ -2240,13 +2248,20 @@ js-tokens@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" -js-yaml@3.6.1, js-yaml@3.x: +js-yaml@3.6.1: version "3.6.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.6.1.tgz#6e5fe67d8b205ce4d22fad05b7781e8dadcc4b30" dependencies: argparse "^1.0.7" esprima "^2.6.0" +js-yaml@3.x: + version "3.9.1" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.9.1.tgz#08775cebdfdd359209f0d2acd383c8f86a6904a0" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + jsbn@~0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" @@ -2634,7 +2649,7 @@ minimatch@0.3: dependencies: brace-expansion "^1.1.7" -minimist@0.0.8, minimist@~0.0.1: +minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" @@ -2642,6 +2657,10 @@ minimist@1.2.0, minimist@^1.2.0, minimist@~1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +minimist@~0.0.1: + version "0.0.10" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.10.tgz#de3f98543dbf96082be48ad1a0c7cda836301dcf" + mkdirp@0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.3.0.tgz#1bbf5ab1ba827af23575143490426455f481fe1e" @@ -3165,9 +3184,9 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@^1.0.33, readable-stream@~1.0.15: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" +readable-stream@^1.0.33: + version "1.1.14" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.1.14.tgz#7cf4c54ef648e3813084c636dd2079e166c081d9" dependencies: core-util-is "~1.0.0" inherits "~2.0.1" @@ -3186,6 +3205,15 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.0.3" util-deprecate "~1.0.1" +readable-stream@~1.0.15: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -3272,7 +3300,7 @@ req-from@^1.0.1: dependencies: resolve-from "^2.0.0" -request@2.79.0, request@^2.67.0: +request@2.79.0: version "2.79.0" resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" dependencies: @@ -3297,7 +3325,7 @@ request@2.79.0, request@^2.67.0: tunnel-agent "~0.4.1" uuid "^3.0.0" -request@^2.81.0: +request@^2.67.0, request@^2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" dependencies: @@ -3340,11 +3368,11 @@ resolve-from@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-2.0.0.tgz#9480ab20e94ffa1d9e80a804c7ea147611966b57" -resolve@1.1.x, resolve@^1.1.6: +resolve@1.1.x: version "1.1.7" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.1.7.tgz#203114d82ad2c5ed9e8e0411b3932875e889e97b" -resolve@~1.4.0: +resolve@^1.1.6, resolve@~1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.4.0.tgz#a75be01c53da25d934a98ebd0e4c4a7312f92a86" dependencies: @@ -3496,7 +3524,7 @@ sol-explore@^1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/sol-explore/-/sol-explore-1.6.2.tgz#43ae8c419fd3ac056a05f8a9d1fb1022cd41ecc2" -solc@0.4.13, solc@^0.4.2: +solc@0.4.13: version "0.4.13" resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.13.tgz#aa5cbdcce3e6ae3c190d20f5fdf8bc880702ec75" dependencies: @@ -3506,6 +3534,16 @@ solc@0.4.13, solc@^0.4.2: semver "^5.3.0" yargs "^4.7.1" +solc@^0.4.2: + version "0.4.15" + resolved "https://registry.yarnpkg.com/solc/-/solc-0.4.15.tgz#8ae8f1606a124a3f81c28b9dcecb0964ebdf9f25" + dependencies: + fs-extra "^0.30.0" + memorystream "^0.3.1" + require-from-string "^1.1.0" + semver "^5.3.0" + yargs "^4.7.1" + solidity-coverage@^0.2.1: version "0.2.1" resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.2.1.tgz#aa6fd8e7d49a6fcd1dc9913e9b61bc84f8ad046f" From 7c9c0f6538646c4fe58a403d258ce5fd348eb964 Mon Sep 17 00:00:00 2001 From: Giuseppe Bertone Date: Tue, 15 Aug 2017 23:08:41 +0200 Subject: [PATCH 113/160] Fix for mispelled words (#371) --- contracts/token/StandardToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 0f73c8d73..09810f01a 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -21,7 +21,7 @@ contract StandardToken is ERC20, BasicToken { * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to - * @param _value uint256 the amout of tokens to be transfered + * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) returns (bool) { var _allowance = allowed[_from][msg.sender]; From b91a3eded33bbdb9fe1fb1893d3f303347e91456 Mon Sep 17 00:00:00 2001 From: Roman Storm Date: Tue, 15 Aug 2017 14:55:37 -0700 Subject: [PATCH 114/160] Remove beta tag from truffle truffle@beta uses old solc 0.4.11 truffle main branch uses most up to date 0.4.15 --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 8c4b198bb..9199ac0db 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ With OpenZeppelin, you can build distributed applications, protocols and organiz OpenZeppelin integrates with [Truffle](https://github.com/ConsenSys/truffle), an Ethereum development environment. Please install Truffle and initialize your project with `truffle init`. ```sh -npm install -g truffle@beta +npm install -g truffle mkdir myproject && cd myproject truffle init ``` From 6f94af92648b6625273fd09c99e26d5c04423fea Mon Sep 17 00:00:00 2001 From: SylTi Date: Thu, 17 Aug 2017 12:34:43 +0200 Subject: [PATCH 115/160] fix windows incompatibilty --- truffle.js => truffle-config.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename truffle.js => truffle-config.js (100%) diff --git a/truffle.js b/truffle-config.js similarity index 100% rename from truffle.js rename to truffle-config.js From 9333fec5f1e5cf0ad60f760df3a1020b60d529f8 Mon Sep 17 00:00:00 2001 From: Yaron Velner Date: Thu, 17 Aug 2017 21:56:11 +0300 Subject: [PATCH 116/160] fix to issue 375 --- contracts/token/StandardToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 0f73c8d73..d844202a7 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -29,8 +29,8 @@ contract StandardToken is ERC20, BasicToken { // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met // require (_value <= _allowance); - balances[_to] = balances[_to].add(_value); balances[_from] = balances[_from].sub(_value); + balances[_to] = balances[_to].add(_value); allowed[_from][msg.sender] = _allowance.sub(_value); Transfer(_from, _to, _value); return true; From b12db57f34017a00154982917f239d8e4dd9ae5e Mon Sep 17 00:00:00 2001 From: Petr Korolev Date: Fri, 18 Aug 2017 15:25:15 +0300 Subject: [PATCH 117/160] Fixed typo recieve -> receive --- contracts/token/MintableToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/MintableToken.sol b/contracts/token/MintableToken.sol index 92f591012..697551d3d 100644 --- a/contracts/token/MintableToken.sol +++ b/contracts/token/MintableToken.sol @@ -27,7 +27,7 @@ contract MintableToken is StandardToken, Ownable { /** * @dev Function to mint tokens - * @param _to The address that will recieve the minted tokens. + * @param _to The address that will receive the minted tokens. * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ From 99efe80c613980bcdecad6b37ea3157f9f53c64f Mon Sep 17 00:00:00 2001 From: Petr Korolev Date: Fri, 18 Aug 2017 15:35:13 +0300 Subject: [PATCH 118/160] fixed typos in standart token doc --- contracts/token/StandardToken.sol | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 0f73c8d73..4a30a6bc5 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -21,7 +21,7 @@ contract StandardToken is ERC20, BasicToken { * @dev Transfer tokens from one address to another * @param _from address The address which you want to send tokens from * @param _to address The address which you want to transfer to - * @param _value uint256 the amout of tokens to be transfered + * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) returns (bool) { var _allowance = allowed[_from][msg.sender]; @@ -37,7 +37,7 @@ contract StandardToken is ERC20, BasicToken { } /** - * @dev Aprove the passed address to spend the specified amount of tokens on behalf of msg.sender. + * @dev Approve the passed address to spend the specified amount of tokens on behalf of msg.sender. * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ @@ -58,7 +58,7 @@ contract StandardToken is ERC20, BasicToken { * @dev Function to check the amount of tokens that an owner allowed to a spender. * @param _owner address The address which owns the funds. * @param _spender address The address which will spend the funds. - * @return A uint256 specifing the amount of tokens still available for the spender. + * @return A uint256 specifying the amount of tokens still available for the spender. */ function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; From 84e3e76bb8f7d6b2e84dc4ffd1f41bdf7a848738 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sat, 19 Aug 2017 16:22:25 -0300 Subject: [PATCH 119/160] fix PausableToken documentation --- contracts/token/PausableToken.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/token/PausableToken.sol b/contracts/token/PausableToken.sol index 016f0340e..32a4afbf0 100644 --- a/contracts/token/PausableToken.sol +++ b/contracts/token/PausableToken.sol @@ -4,9 +4,9 @@ import './StandardToken.sol'; import '../lifecycle/Pausable.sol'; /** - * Pausable token + * @title Pausable token * - * Simple ERC20 Token example, with pausable token creation + * @dev StandardToken modified with pausable transfers. **/ contract PausableToken is StandardToken, Pausable { From 341ce621a9da74bfbdf86f454266103ae88f9b24 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Sat, 19 Aug 2017 18:22:42 -0300 Subject: [PATCH 120/160] remove main field from package.json --- package.json | 1 - 1 file changed, 1 deletion(-) diff --git a/package.json b/package.json index 80efe2c05..ce92df571 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,6 @@ "name": "zeppelin-solidity", "version": "1.2.0", "description": "Secure Smart Contract library for Solidity", - "main": "truffle.js", "scripts": { "test": "scripts/test.sh", "console": "truffle console", From 05609de044f1c3a6cfbec2b71d604a759a518f9f Mon Sep 17 00:00:00 2001 From: Nimo Naamani Date: Sun, 20 Aug 2017 21:58:27 +1200 Subject: [PATCH 121/160] Update limitbalance.rst Fixed typo --- docs/source/limitbalance.rst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/source/limitbalance.rst b/docs/source/limitbalance.rst index ba50cefa9..f30d119f4 100644 --- a/docs/source/limitbalance.rst +++ b/docs/source/limitbalance.rst @@ -5,8 +5,8 @@ Base contract that provides mechanism for limiting the amount of funds a contrac LimitBalance(unit _limit) """""""""""""""""""""""""""" -Constructor takes an unisgned integer and sets it as the limit of funds this contract can hold. +Constructor takes an unsigned integer and sets it as the limit of funds this contract can hold. modifier limitedPayable() """""""""""""""""""""""""""" -Throws an error if this contract's balance is already above the limit. \ No newline at end of file +Throws an error if this contract's balance is already above the limit. From 1da04678203e3c5c8042d6f31fb09a4acbd03cb0 Mon Sep 17 00:00:00 2001 From: Nimo Naamani Date: Sun, 20 Aug 2017 22:00:42 +1200 Subject: [PATCH 122/160] Update pullpayment.rst Fixed typo --- docs/source/pullpayment.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/source/pullpayment.rst b/docs/source/pullpayment.rst index fa2932428..636b3a1c5 100644 --- a/docs/source/pullpayment.rst +++ b/docs/source/pullpayment.rst @@ -9,4 +9,4 @@ Adds sent amount to available balance that payee can pull from this contract, ca withdrawPayments( ) """"""""""""""""""""""""""""""""""""""""""""""" -Sends designated balance to payee calling the contract. Throws error if designated balance is 0, if contract does not hold enough funds ot pay the payee, or if the send transaction is not successful. \ No newline at end of file +Sends designated balance to payee calling the contract. Throws error if designated balance is 0, if contract does not hold enough funds to pay the payee, or if the send transaction is not successful. From e7b1c339557a4153edc0774512aa311a10ff2877 Mon Sep 17 00:00:00 2001 From: pipaman Date: Tue, 23 May 2017 13:24:51 -0300 Subject: [PATCH 123/160] Update StandardToken.sol Added increaseApproval and decreaseApproval to increase / decrease the approval in 1 transaction. --- contracts/token/StandardToken.sol | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 42a5d561d..47feb936f 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -63,5 +63,32 @@ contract StandardToken is ERC20, BasicToken { function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; } + + /* + * approve should be called when allowed[_spender] == 0. To increment + * allowed value is better to use this function to avoid 2 calls (and wait until + * the first transaction is mined) + * From MonolithDAO Token.sol + */ + function increaseApproval (address _spender, uint _addedValue) + onlyPayloadSize(2 * 32) + returns (bool success) { + allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); + Approval(msg.sender, _spender, allowed[msg.sender][_spender]); + return true; + } + + function decreaseApproval (address _spender, uint _subtractedValue) + onlyPayloadSize(2 * 32) + returns (bool success) { + uint oldValue = allowed[msg.sender][_spender]; + if (_subtractedValue > oldValue) { + allowed[msg.sender][_spender] = 0; + } else { + allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); + } + Approval(msg.sender, _spender, allowed[msg.sender][_spender]); + return true; + } } From 21f251eafb256a6f8614b4758d66284ed7f39250 Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Sun, 20 Aug 2017 23:11:23 -0500 Subject: [PATCH 124/160] Removed onlyPayloadSize modifier --- contracts/token/StandardToken.sol | 2 -- 1 file changed, 2 deletions(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 47feb936f..407ba0532 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -71,7 +71,6 @@ contract StandardToken is ERC20, BasicToken { * From MonolithDAO Token.sol */ function increaseApproval (address _spender, uint _addedValue) - onlyPayloadSize(2 * 32) returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); @@ -79,7 +78,6 @@ contract StandardToken is ERC20, BasicToken { } function decreaseApproval (address _spender, uint _subtractedValue) - onlyPayloadSize(2 * 32) returns (bool success) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { From 8b11035b39a909befc225ef50d77572f4781791e Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Sun, 20 Aug 2017 23:13:26 -0500 Subject: [PATCH 125/160] Indentation refactoring. --- contracts/token/StandardToken.sol | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 407ba0532..358d6f05e 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -72,21 +72,21 @@ contract StandardToken is ERC20, BasicToken { */ function increaseApproval (address _spender, uint _addedValue) returns (bool success) { - allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); - Approval(msg.sender, _spender, allowed[msg.sender][_spender]); - return true; - } + allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); + Approval(msg.sender, _spender, allowed[msg.sender][_spender]); + return true; + } function decreaseApproval (address _spender, uint _subtractedValue) returns (bool success) { - uint oldValue = allowed[msg.sender][_spender]; - if (_subtractedValue > oldValue) { - allowed[msg.sender][_spender] = 0; - } else { - allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); - } - Approval(msg.sender, _spender, allowed[msg.sender][_spender]); - return true; + uint oldValue = allowed[msg.sender][_spender]; + if (_subtractedValue > oldValue) { + allowed[msg.sender][_spender] = 0; + } else { + allowed[msg.sender][_spender] = oldValue.sub(_subtractedValue); + } + Approval(msg.sender, _spender, allowed[msg.sender][_spender]); + return true; } } From 289fd87ef847ce43049d5674f777a6ad15340df8 Mon Sep 17 00:00:00 2001 From: Rudy Godoy Date: Sun, 20 Aug 2017 23:19:50 -0500 Subject: [PATCH 126/160] Tests increase and decrease allowance for spender - Spender starts with 0 tokens allowed to spend - Spender is granted 50, then decreased it's allowance by 10 Refs PR #224 --- test/StandardToken.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/test/StandardToken.js b/test/StandardToken.js index 3a96be81b..96a51afe5 100644 --- a/test/StandardToken.js +++ b/test/StandardToken.js @@ -70,4 +70,22 @@ contract('StandardToken', function(accounts) { } }); + describe('validating allowance updates to spender', function() { + let preApproved; + + it('should start with zero', async function() { + preApproved = await token.allowance(accounts[0], accounts[1]); + assert.equal(preApproved, 0); + }) + + it('should increase by 50 then decrease by 10', async function() { + await token.increaseApproval(accounts[1], 50); + let postIncrease = await token.allowance(accounts[0], accounts[1]); + preApproved.plus(50).should.be.bignumber.equal(postIncrease); + await token.decreaseApproval(accounts[1], 10); + let postDecrease = await token.allowance(accounts[0], accounts[1]); + postIncrease.minus(10).should.be.bignumber.equal(postDecrease); + }) + }); + }); From ac75f4e2ed888817b35c676f3911d8dcc86f0c53 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 21 Aug 2017 16:04:30 -0300 Subject: [PATCH 127/160] Revert "[bugfix] windows incompatibilty" --- truffle-config.js => truffle.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename truffle-config.js => truffle.js (100%) diff --git a/truffle-config.js b/truffle.js similarity index 100% rename from truffle-config.js rename to truffle.js From 33de70158c8034cf84cc62924c70254c4478abe4 Mon Sep 17 00:00:00 2001 From: sot528 Date: Tue, 22 Aug 2017 10:15:21 +0900 Subject: [PATCH 128/160] remove coveralls script from package.json --- package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/package.json b/package.json index ce92df571..4f236a4cf 100644 --- a/package.json +++ b/package.json @@ -5,8 +5,7 @@ "scripts": { "test": "scripts/test.sh", "console": "truffle console", - "coverage": "scripts/coverage.sh", - "coveralls": "scripts/coveralls.sh" + "coverage": "scripts/coverage.sh" }, "repository": { "type": "git", From a0c0cb66c56301b1c5d3a33d393995ee373fada0 Mon Sep 17 00:00:00 2001 From: Roman Storm Date: Wed, 23 Aug 2017 18:57:22 -0700 Subject: [PATCH 129/160] Remove confusing comment left from FinalizableCrowdsale AFter this PR https://github.com/OpenZeppelin/zeppelin-solidity/pull/364 the comment was left. --- contracts/crowdsale/FinalizableCrowdsale.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/crowdsale/FinalizableCrowdsale.sol b/contracts/crowdsale/FinalizableCrowdsale.sol index b9920baca..9e63e7226 100644 --- a/contracts/crowdsale/FinalizableCrowdsale.sol +++ b/contracts/crowdsale/FinalizableCrowdsale.sol @@ -7,7 +7,7 @@ import './Crowdsale.sol'; /** * @title FinalizableCrowdsale * @dev Extension of Crowsdale where an owner can do extra work - * after finishing. By default, it will end token minting. + * after finishing. */ contract FinalizableCrowdsale is Crowdsale, Ownable { using SafeMath for uint256; From 1827cbfd2a35d37e63d1b52522ffc7d8ff75ddd1 Mon Sep 17 00:00:00 2001 From: Andrew Redden Date: Thu, 24 Aug 2017 10:41:41 -0300 Subject: [PATCH 130/160] changed decimal to be uint8 so that it matches the ERC20 specification. --- contracts/examples/SimpleToken.sol | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/examples/SimpleToken.sol b/contracts/examples/SimpleToken.sol index b1ea2bdcb..a226de227 100644 --- a/contracts/examples/SimpleToken.sol +++ b/contracts/examples/SimpleToken.sol @@ -6,7 +6,7 @@ import "../token/StandardToken.sol"; /** * @title SimpleToken - * @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator. + * @dev Very simple ERC20 Token example, where all tokens are pre-assigned to the creator. * Note they can later distribute these tokens as they wish using `transfer` and other * `StandardToken` functions. */ @@ -14,12 +14,12 @@ contract SimpleToken is StandardToken { string public constant name = "SimpleToken"; string public constant symbol = "SIM"; - uint256 public constant decimals = 18; + uint8 public constant decimals = 18; uint256 public constant INITIAL_SUPPLY = 10000; /** - * @dev Contructor that gives msg.sender all of existing tokens. + * @dev Contructor that gives msg.sender all of existing tokens. */ function SimpleToken() { totalSupply = INITIAL_SUPPLY; From 406004a99ad4bdd371610d768e106e3dde46433d Mon Sep 17 00:00:00 2001 From: SylTi Date: Thu, 3 Aug 2017 13:21:51 +0200 Subject: [PATCH 131/160] refactor HasNoTokens.sol --- contracts/ownership/CanReclaimToken.sol | 24 +++++++++++++++++ contracts/ownership/HasNoTokens.sol | 14 ++-------- test/CanReclaimToken.js | 35 +++++++++++++++++++++++++ 3 files changed, 61 insertions(+), 12 deletions(-) create mode 100644 contracts/ownership/CanReclaimToken.sol create mode 100644 test/CanReclaimToken.js diff --git a/contracts/ownership/CanReclaimToken.sol b/contracts/ownership/CanReclaimToken.sol new file mode 100644 index 000000000..f057d4394 --- /dev/null +++ b/contracts/ownership/CanReclaimToken.sol @@ -0,0 +1,24 @@ +pragma solidity ^0.4.11; + +import "./Ownable.sol"; +import "../token/ERC20Basic.sol"; + +/** + * @title Contracts that should be able to recover tokens + * @author SylTi + * @dev This allow a contract to recover any ERC20 token received in a contract by transfering the balance to the contract owner. + * This will prevent any accidental loss of tokens. + */ +contract CanReclaimToken is Ownable { + + /** + * @dev Reclaim all ERC20Basic compatible tokens + * @param tokenAddr address The address of the token contract + */ + function reclaimToken(address tokenAddr) external onlyOwner { + ERC20Basic tokenInst = ERC20Basic(tokenAddr); + uint256 balance = tokenInst.balanceOf(this); + tokenInst.transfer(owner, balance); + } + +} \ No newline at end of file diff --git a/contracts/ownership/HasNoTokens.sol b/contracts/ownership/HasNoTokens.sol index 85c209e76..3f91ad24a 100644 --- a/contracts/ownership/HasNoTokens.sol +++ b/contracts/ownership/HasNoTokens.sol @@ -1,7 +1,6 @@ pragma solidity ^0.4.11; -import "./Ownable.sol"; -import "../token/ERC20Basic.sol"; +import "./CanReclaimToken.sol"; /** * @title Contracts that should not own Tokens @@ -10,7 +9,7 @@ import "../token/ERC20Basic.sol"; * Should tokens (any ERC20Basic compatible) end up in the contract, it allows the * owner to reclaim the tokens. */ -contract HasNoTokens is Ownable { +contract HasNoTokens is CanReclaimToken { /** * @dev Reject all ERC23 compatible tokens @@ -22,13 +21,4 @@ contract HasNoTokens is Ownable { revert(); } - /** - * @dev Reclaim all ERC20Basic compatible tokens - * @param tokenAddr address The address of the token contract - */ - function reclaimToken(address tokenAddr) external onlyOwner { - ERC20Basic tokenInst = ERC20Basic(tokenAddr); - uint256 balance = tokenInst.balanceOf(this); - tokenInst.transfer(owner, balance); - } } diff --git a/test/CanReclaimToken.js b/test/CanReclaimToken.js new file mode 100644 index 000000000..01378630e --- /dev/null +++ b/test/CanReclaimToken.js @@ -0,0 +1,35 @@ +'use strict'; +import expectThrow from './helpers/expectThrow'; +import toPromise from './helpers/toPromise'; +const CanReclaimToken = artifacts.require('../contracts/ownership/CanReclaimToken.sol'); +const BasicTokenMock = artifacts.require("./helpers/BasicTokenMock.sol"); + +contract('CanReclaimToken', function(accounts) { + let token = null; + let canReclaimToken = null; + + beforeEach(async () => { + // Create contract and token + token = await BasicTokenMock.new(accounts[0], 100); + canReclaimToken = await CanReclaimToken.new(); + // Force token into contract + await token.transfer(canReclaimToken.address, 10); + const startBalance = await token.balanceOf(canReclaimToken.address); + assert.equal(startBalance, 10); + }); + + it('should allow owner to reclaim tokens', async function() { + const ownerStartBalance = await token.balanceOf(accounts[0]); + await canReclaimToken.reclaimToken(token.address); + const ownerFinalBalance = await token.balanceOf(accounts[0]); + const finalBalance = await token.balanceOf(canReclaimToken.address); + assert.equal(finalBalance, 0); + assert.equal(ownerFinalBalance - ownerStartBalance, 10); + }); + + it('should allow only owner to reclaim tokens', async function() { + await expectThrow( + canReclaimToken.reclaimToken(token.address, {from: accounts[1]}), + ); + }); +}); From 51906bae6cb44b70b1706174dbacf5d1dc586eb4 Mon Sep 17 00:00:00 2001 From: SylTi Date: Thu, 24 Aug 2017 21:35:19 +0200 Subject: [PATCH 132/160] refactor --- contracts/ownership/CanReclaimToken.sol | 9 ++++----- test/CanReclaimToken.js | 2 +- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/contracts/ownership/CanReclaimToken.sol b/contracts/ownership/CanReclaimToken.sol index f057d4394..4921b7c49 100644 --- a/contracts/ownership/CanReclaimToken.sol +++ b/contracts/ownership/CanReclaimToken.sol @@ -13,12 +13,11 @@ contract CanReclaimToken is Ownable { /** * @dev Reclaim all ERC20Basic compatible tokens - * @param tokenAddr address The address of the token contract + * @param token ERC20Basic The address of the token contract */ - function reclaimToken(address tokenAddr) external onlyOwner { - ERC20Basic tokenInst = ERC20Basic(tokenAddr); - uint256 balance = tokenInst.balanceOf(this); - tokenInst.transfer(owner, balance); + function reclaimToken(ERC20Basic token) external onlyOwner { + uint256 balance = token.balanceOf(this); + token.transfer(owner, balance); } } \ No newline at end of file diff --git a/test/CanReclaimToken.js b/test/CanReclaimToken.js index 01378630e..b8efceea4 100644 --- a/test/CanReclaimToken.js +++ b/test/CanReclaimToken.js @@ -8,7 +8,7 @@ contract('CanReclaimToken', function(accounts) { let token = null; let canReclaimToken = null; - beforeEach(async () => { + beforeEach(async function() { // Create contract and token token = await BasicTokenMock.new(accounts[0], 100); canReclaimToken = await CanReclaimToken.new(); From 271e6192e82a9021acfa06d23df71586f903bc06 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Thu, 24 Aug 2017 18:33:05 -0300 Subject: [PATCH 133/160] remove moment.js from package-lock --- package-lock.json | 6 ------ yarn.lock | 8 ++++---- 2 files changed, 4 insertions(+), 10 deletions(-) diff --git a/package-lock.json b/package-lock.json index 1f566ccda..018fdba3f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3834,12 +3834,6 @@ "integrity": "sha1-Rpve9PivyaEWBW8HnfYYLQr7A4Q=", "dev": true }, - "moment": { - "version": "2.18.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.18.1.tgz", - "integrity": "sha1-w2GT3Tzhwu7SrbfIAtu8d6gbHA8=", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", diff --git a/yarn.lock b/yarn.lock index a2b96f077..b5a457c48 100644 --- a/yarn.lock +++ b/yarn.lock @@ -763,14 +763,14 @@ big.js@^3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.1.3.tgz#4cada2193652eb3ca9ec8e55c9015669c9806978" +"bignumber.js@git+https://github.com/debris/bignumber.js#master": + version "2.0.7" + resolved "git+https://github.com/debris/bignumber.js#c7a38de919ed75e6fb6ba38051986e294b328df9" + "bignumber.js@git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2": version "2.0.7" resolved "git+https://github.com/debris/bignumber.js.git#94d7146671b9719e00a09c29b01a691bc85048c2" -"bignumber.js@git+https://github.com/debris/bignumber.js.git#master": - version "2.0.7" - resolved "git+https://github.com/debris/bignumber.js.git#c7a38de919ed75e6fb6ba38051986e294b328df9" - binary-extensions@^1.0.0: version "1.9.0" resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.9.0.tgz#66506c16ce6f4d6928a5b3cd6a33ca41e941e37b" From d463b26709758de66e8688c0f7044a21cb9c3a13 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Thu, 24 Aug 2017 18:35:02 -0300 Subject: [PATCH 134/160] bump testrpc to 4.1.1 --- package-lock.json | 11 +++++++---- package.json | 2 +- yarn.lock | 8 +++++--- 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/package-lock.json b/package-lock.json index 018fdba3f..662c07dec 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2100,10 +2100,13 @@ } }, "ethereumjs-testrpc": { - "version": "3.9.2", - "resolved": "https://registry.npmjs.org/ethereumjs-testrpc/-/ethereumjs-testrpc-3.9.2.tgz", - "integrity": "sha1-uw8tPDqjk1CHKtOOQMg+nXhzMck=", - "dev": true + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ethereumjs-testrpc/-/ethereumjs-testrpc-4.1.1.tgz", + "integrity": "sha512-NQjL/5chwWVjCOzVfsExdkw2yN+atFPGUVfxhyCh27fLBREcK0X2KU72b2kLaqkd4nIEjd68+O3zMtExzf43+w==", + "dev": true, + "requires": { + "webpack": "3.5.4" + } }, "ethereumjs-tx": { "version": "1.1.2", diff --git a/package.json b/package.json index 4f236a4cf..5e2434a34 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "chai-as-promised": "^7.0.0", "chai-bignumber": "^2.0.0", "coveralls": "^2.13.1", - "ethereumjs-testrpc": "^3.0.2", + "ethereumjs-testrpc": "^4.1.1", "mocha-lcov-reporter": "^1.3.0", "solidity-coverage": "^0.2.1", "truffle": "^3.4.6", diff --git a/yarn.lock b/yarn.lock index b5a457c48..ebc95078b 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1522,9 +1522,11 @@ ethereumjs-testrpc-sc@4.0.1: dependencies: webpack "^3.0.0" -ethereumjs-testrpc@^3.0.2: - version "3.9.2" - resolved "https://registry.yarnpkg.com/ethereumjs-testrpc/-/ethereumjs-testrpc-3.9.2.tgz#bb0f2d3c3aa39350872ad38e40c83e9d787331c9" +ethereumjs-testrpc@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ethereumjs-testrpc/-/ethereumjs-testrpc-4.1.1.tgz#ea4af03ff24463dead1116404d25083b4bf869a6" + dependencies: + webpack "^3.0.0" ethereumjs-tx@^1.2.0, ethereumjs-tx@^1.2.2: version "1.3.3" From f27a1ac0404945ae497e4cd7bbfd0db8610b07b0 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 25 Aug 2017 20:08:41 -0300 Subject: [PATCH 135/160] update solidity-coverage to 0.2.2 --- package-lock.json | 2 +- package.json | 2 +- yarn.lock | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 662c07dec..03db7b09d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4912,7 +4912,7 @@ } }, "solidity-coverage": { - "version": "0.2.1", + "version": "0.2.2", "resolved": "https://registry.npmjs.org/solidity-coverage/-/solidity-coverage-0.2.1.tgz", "integrity": "sha512-+vsgS3tMK4UyBiliIv1aE6PC+MfaLo/XQ0qzBlkaIuP2e/vw8Zn8pnzw2mYBmoImoSugsK3EuwslHgRQXQjCRw==", "dev": true, diff --git a/package.json b/package.json index 5e2434a34..671173084 100644 --- a/package.json +++ b/package.json @@ -37,7 +37,7 @@ "coveralls": "^2.13.1", "ethereumjs-testrpc": "^4.1.1", "mocha-lcov-reporter": "^1.3.0", - "solidity-coverage": "^0.2.1", + "solidity-coverage": "^0.2.2", "truffle": "^3.4.6", "truffle-hdwallet-provider": "0.0.3" } diff --git a/yarn.lock b/yarn.lock index ebc95078b..ec9bfc3e6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3546,9 +3546,9 @@ solc@^0.4.2: semver "^5.3.0" yargs "^4.7.1" -solidity-coverage@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.2.1.tgz#aa6fd8e7d49a6fcd1dc9913e9b61bc84f8ad046f" +solidity-coverage@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/solidity-coverage/-/solidity-coverage-0.2.2.tgz#7bc1843f4f6a617db490ad2f11caff946df7bd13" dependencies: commander "^2.9.0" death "^1.1.0" From 69e21dacb8895dbadf98826582240e0d7edd6045 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Fri, 25 Aug 2017 20:00:42 -0300 Subject: [PATCH 136/160] rename truffle.js to truffle-config.js --- truffle.js => truffle-config.js | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename truffle.js => truffle-config.js (100%) diff --git a/truffle.js b/truffle-config.js similarity index 100% rename from truffle.js rename to truffle-config.js From c7636bdc4c20b8193825e48b6d476dca0e06a671 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 28 Aug 2017 17:30:59 -0300 Subject: [PATCH 137/160] add safe ERC20 helpers --- contracts/token/SafeERC20.sol | 22 +++++++++++++++ test/SafeERC20.js | 27 ++++++++++++++++++ test/helpers/SafeERC20Helper.sol | 48 ++++++++++++++++++++++++++++++++ 3 files changed, 97 insertions(+) create mode 100644 contracts/token/SafeERC20.sol create mode 100644 test/SafeERC20.js create mode 100644 test/helpers/SafeERC20Helper.sol diff --git a/contracts/token/SafeERC20.sol b/contracts/token/SafeERC20.sol new file mode 100644 index 000000000..405a7617b --- /dev/null +++ b/contracts/token/SafeERC20.sol @@ -0,0 +1,22 @@ +pragma solidity ^0.4.11; + +import './ERC20Basic.sol'; +import './ERC20.sol'; + +/** + * @title SafeERC20 + * @dev Wrappers around ERC20 operations that throw on failure. + */ +library SafeERC20 { + function safeTransfer(ERC20Basic token, address to, uint256 value) internal { + assert(token.transfer(to, value)); + } + + function safeTransferFrom(ERC20 token, address from, address to, uint256 value) internal { + assert(token.transferFrom(from, to, value)); + } + + function safeApprove(ERC20 token, address spender, uint256 value) internal { + assert(token.approve(spender, value)); + } +} diff --git a/test/SafeERC20.js b/test/SafeERC20.js new file mode 100644 index 000000000..b2cf67d50 --- /dev/null +++ b/test/SafeERC20.js @@ -0,0 +1,27 @@ +import EVMThrow from './helpers/EVMThrow'; + +require('chai') + .use(require('chai-as-promised')) + .should(); + +const SafeERC20Helper = artifacts.require('./helpers/SafeERC20Helper.sol'); + +contract('SafeERC20', function () { + + beforeEach(async function () { + this.helper = await SafeERC20Helper.new(); + }); + + it('should throw on failed transfer', async function () { + await this.helper.doFailingTransfer().should.be.rejectedWith(EVMThrow); + }); + + it('should throw on failed transferFrom', async function () { + await this.helper.doFailingTransferFrom().should.be.rejectedWith(EVMThrow); + }); + + it('should throw on failed approve', async function () { + await this.helper.doFailingApprove().should.be.rejectedWith(EVMThrow); + }); + +}); diff --git a/test/helpers/SafeERC20Helper.sol b/test/helpers/SafeERC20Helper.sol new file mode 100644 index 000000000..b0d6994c8 --- /dev/null +++ b/test/helpers/SafeERC20Helper.sol @@ -0,0 +1,48 @@ +pragma solidity ^0.4.11; + +import '../../contracts/token/ERC20.sol'; +import '../../contracts/token/SafeERC20.sol'; + +contract ERC20FailingMock is ERC20 { + function transfer(address, uint256) returns (bool) { + return false; + } + + function transferFrom(address, address, uint256) returns (bool) { + return false; + } + + function approve(address, uint256) returns (bool) { + return false; + } + + function balanceOf(address) constant returns (uint256) { + return 0; + } + + function allowance(address, address) constant returns (uint256) { + return 0; + } +} + +contract SafeERC20Helper { + using SafeERC20 for ERC20; + + ERC20 token; + + function SafeERC20Helper() { + token = new ERC20FailingMock(); + } + + function doFailingTransfer() { + token.safeTransfer(0, 0); + } + + function doFailingTransferFrom() { + token.safeTransferFrom(0, 0, 0); + } + + function doFailingApprove() { + token.safeApprove(0, 0); + } +} From 7b463769a5d88fb1e312b10ce5bf810d39853289 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 28 Aug 2017 17:34:25 -0300 Subject: [PATCH 138/160] explain how to use SafeERC20 --- contracts/token/SafeERC20.sol | 2 ++ 1 file changed, 2 insertions(+) diff --git a/contracts/token/SafeERC20.sol b/contracts/token/SafeERC20.sol index 405a7617b..cffa8b9f8 100644 --- a/contracts/token/SafeERC20.sol +++ b/contracts/token/SafeERC20.sol @@ -6,6 +6,8 @@ import './ERC20.sol'; /** * @title SafeERC20 * @dev Wrappers around ERC20 operations that throw on failure. + * To use this library you can add a `using SafeERC20 for ERC20;` statement to your contract, + * which allows you to call the safe operations as `token.safeTransfer(...)`, etc. */ library SafeERC20 { function safeTransfer(ERC20Basic token, address to, uint256 value) internal { From c37c233d22ccab2e599cb6ccbc25e1e11710994f Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 28 Aug 2017 17:47:48 -0300 Subject: [PATCH 139/160] add SafeERC20 tests for succeeding operations --- test/SafeERC20.js | 11 ++++++++ test/helpers/SafeERC20Helper.sol | 46 ++++++++++++++++++++++++++++---- 2 files changed, 52 insertions(+), 5 deletions(-) diff --git a/test/SafeERC20.js b/test/SafeERC20.js index b2cf67d50..46b9ad1c0 100644 --- a/test/SafeERC20.js +++ b/test/SafeERC20.js @@ -24,4 +24,15 @@ contract('SafeERC20', function () { await this.helper.doFailingApprove().should.be.rejectedWith(EVMThrow); }); + it('should not throw on succeeding transfer', async function () { + await this.helper.doSucceedingTransfer().should.be.fulfilled; + }); + + it('should not throw on succeeding transferFrom', async function () { + await this.helper.doSucceedingTransferFrom().should.be.fulfilled; + }); + + it('should not throw on succeeding approve', async function () { + await this.helper.doSucceedingApprove().should.be.fulfilled; + }); }); diff --git a/test/helpers/SafeERC20Helper.sol b/test/helpers/SafeERC20Helper.sol index b0d6994c8..693af0934 100644 --- a/test/helpers/SafeERC20Helper.sol +++ b/test/helpers/SafeERC20Helper.sol @@ -25,24 +25,60 @@ contract ERC20FailingMock is ERC20 { } } +contract ERC20SucceedingMock is ERC20 { + function transfer(address, uint256) returns (bool) { + return true; + } + + function transferFrom(address, address, uint256) returns (bool) { + return true; + } + + function approve(address, uint256) returns (bool) { + return true; + } + + function balanceOf(address) constant returns (uint256) { + return 0; + } + + function allowance(address, address) constant returns (uint256) { + return 0; + } +} + contract SafeERC20Helper { using SafeERC20 for ERC20; - ERC20 token; + ERC20 failing; + ERC20 succeeding; function SafeERC20Helper() { - token = new ERC20FailingMock(); + failing = new ERC20FailingMock(); + succeeding = new ERC20SucceedingMock(); } function doFailingTransfer() { - token.safeTransfer(0, 0); + failing.safeTransfer(0, 0); } function doFailingTransferFrom() { - token.safeTransferFrom(0, 0, 0); + failing.safeTransferFrom(0, 0, 0); } function doFailingApprove() { - token.safeApprove(0, 0); + failing.safeApprove(0, 0); + } + + function doSucceedingTransfer() { + succeeding.safeTransfer(0, 0); + } + + function doSucceedingTransferFrom() { + succeeding.safeTransferFrom(0, 0, 0); + } + + function doSucceedingApprove() { + succeeding.safeApprove(0, 0); } } From 209e2de93be06110bc7133b46f25a773d0a4c427 Mon Sep 17 00:00:00 2001 From: Pavel Rubin Date: Mon, 28 Aug 2017 21:00:29 +0300 Subject: [PATCH 140/160] Fix for #400: Check that destination of token transfers is not 0x --- contracts/token/BasicToken.sol | 2 ++ contracts/token/StandardToken.sol | 2 ++ 2 files changed, 4 insertions(+) diff --git a/contracts/token/BasicToken.sol b/contracts/token/BasicToken.sol index ef35a37a8..e584df274 100644 --- a/contracts/token/BasicToken.sol +++ b/contracts/token/BasicToken.sol @@ -20,6 +20,8 @@ contract BasicToken is ERC20Basic { * @param _value The amount to be transferred. */ function transfer(address _to, uint256 _value) returns (bool) { + require(_to != address(0)); + balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 358d6f05e..74b16a65a 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -24,6 +24,8 @@ contract StandardToken is ERC20, BasicToken { * @param _value uint256 the amount of tokens to be transferred */ function transferFrom(address _from, address _to, uint256 _value) returns (bool) { + require(_to != address(0)); + var _allowance = allowed[_from][msg.sender]; // Check is not needed because sub(_allowance, _value) will already throw if this condition is not met From d095ba84bf8fe6f2ed1620ca8ee809d2dcf21c7b Mon Sep 17 00:00:00 2001 From: Pavel Rubin Date: Tue, 29 Aug 2017 00:10:40 +0300 Subject: [PATCH 141/160] Add tests to check transfers to 0x0 fail --- test/BasicToken.js | 10 ++++++++++ test/StandardToken.js | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/test/BasicToken.js b/test/BasicToken.js index ee9bc9079..76248948a 100644 --- a/test/BasicToken.js +++ b/test/BasicToken.js @@ -32,4 +32,14 @@ contract('BasicToken', function(accounts) { } }); + it("should throw an error when trying to transfer to 0x0", async function() { + let token = await StandardTokenMock.new(accounts[0], 100); + try { + let transfer = await token.transfer(0x0, 100); + assert.fail('should have thrown before'); + } catch(error) { + assertJump(error); + } + }); + }); diff --git a/test/StandardToken.js b/test/StandardToken.js index 96a51afe5..acf53c31e 100644 --- a/test/StandardToken.js +++ b/test/StandardToken.js @@ -88,4 +88,14 @@ contract('StandardToken', function(accounts) { }) }); + it("should throw an error when trying to transfer to 0x0", async function() { + let token = await StandardTokenMock.new(accounts[0], 100); + try { + let transfer = await token.transfer(0x0, 100); + assert.fail('should have thrown before'); + } catch(error) { + assertJump(error); + } + }); + }); From 74db6c2b3b2d52705b034b713c5efb5dbaced570 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 28 Aug 2017 19:17:49 -0300 Subject: [PATCH 142/160] add missing test for error when doing transferFrom to 0x0 --- test/BasicToken.js | 6 +++--- test/StandardToken.js | 15 +++++++++++++-- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/test/BasicToken.js b/test/BasicToken.js index 76248948a..e5bb46868 100644 --- a/test/BasicToken.js +++ b/test/BasicToken.js @@ -22,7 +22,7 @@ contract('BasicToken', function(accounts) { assert.equal(secondAccountBalance, 100); }); - it("should throw an error when trying to transfer more than balance", async function() { + it('should throw an error when trying to transfer more than balance', async function() { let token = await BasicTokenMock.new(accounts[0], 100); try { let transfer = await token.transfer(accounts[1], 101); @@ -32,14 +32,14 @@ contract('BasicToken', function(accounts) { } }); - it("should throw an error when trying to transfer to 0x0", async function() { + it('should throw an error when trying to transfer to 0x0', async function() { let token = await StandardTokenMock.new(accounts[0], 100); try { let transfer = await token.transfer(0x0, 100); assert.fail('should have thrown before'); } catch(error) { assertJump(error); - } + } }); }); diff --git a/test/StandardToken.js b/test/StandardToken.js index acf53c31e..cb4e9b038 100644 --- a/test/StandardToken.js +++ b/test/StandardToken.js @@ -88,14 +88,25 @@ contract('StandardToken', function(accounts) { }) }); - it("should throw an error when trying to transfer to 0x0", async function() { + it('should throw an error when trying to transfer to 0x0', async function() { let token = await StandardTokenMock.new(accounts[0], 100); try { let transfer = await token.transfer(0x0, 100); assert.fail('should have thrown before'); } catch(error) { assertJump(error); - } + } + }); + + it('should throw an error when trying to transferFrom to 0x0', async function() { + let token = await StandardTokenMock.new(accounts[0], 100); + await token.approve(accounts[1], 100); + try { + let transfer = await token.transferFrom(accounts[0], 0x0, 100, {from: accounts[1]}); + assert.fail('should have thrown before'); + } catch(error) { + assertJump(error); + } }); }); From 00f80c726abbddee5bafc5936985ddd259b447eb Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 28 Aug 2017 19:29:15 -0300 Subject: [PATCH 143/160] fix reference to mock contract --- test/BasicToken.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/BasicToken.js b/test/BasicToken.js index e5bb46868..261a68c3b 100644 --- a/test/BasicToken.js +++ b/test/BasicToken.js @@ -33,7 +33,7 @@ contract('BasicToken', function(accounts) { }); it('should throw an error when trying to transfer to 0x0', async function() { - let token = await StandardTokenMock.new(accounts[0], 100); + let token = await BasicTokenMock.new(accounts[0], 100); try { let transfer = await token.transfer(0x0, 100); assert.fail('should have thrown before'); From aad25205cdc54243ccfe82a1bd35c08904d2a152 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Tue, 29 Aug 2017 11:50:02 -0300 Subject: [PATCH 144/160] add comment making explicit that SafeMath.sub can throw --- contracts/token/BasicToken.sol | 1 + 1 file changed, 1 insertion(+) diff --git a/contracts/token/BasicToken.sol b/contracts/token/BasicToken.sol index e584df274..d13156477 100644 --- a/contracts/token/BasicToken.sol +++ b/contracts/token/BasicToken.sol @@ -22,6 +22,7 @@ contract BasicToken is ERC20Basic { function transfer(address _to, uint256 _value) returns (bool) { require(_to != address(0)); + // SafeMath.sub will throw if there is not enough balance. balances[msg.sender] = balances[msg.sender].sub(_value); balances[_to] = balances[_to].add(_value); Transfer(msg.sender, _to, _value); From 0bd22e78d34574841e73dcfc740a06af41d4ee5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Flores?= Date: Fri, 1 Sep 2017 14:03:31 +0100 Subject: [PATCH 145/160] Fix docblock syntax --- contracts/token/StandardToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 74b16a65a..f5cf58fc2 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -66,7 +66,7 @@ contract StandardToken is ERC20, BasicToken { return allowed[_owner][_spender]; } - /* + /** * approve should be called when allowed[_spender] == 0. To increment * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) From b59469c1511bcec93d570cbc769f0691938bf1bf Mon Sep 17 00:00:00 2001 From: Yevhenii Babichenko Date: Tue, 5 Sep 2017 18:32:07 +0300 Subject: [PATCH 146/160] fire OwnershipTransferred event when the owner of an Ownable contract instance actually changed --- contracts/ownership/Claimable.sol | 1 + contracts/ownership/DelayedClaimable.sol | 1 + contracts/ownership/Ownable.sol | 4 ++++ 3 files changed, 6 insertions(+) diff --git a/contracts/ownership/Claimable.sol b/contracts/ownership/Claimable.sol index 59c2158a2..ae8080270 100644 --- a/contracts/ownership/Claimable.sol +++ b/contracts/ownership/Claimable.sol @@ -34,5 +34,6 @@ contract Claimable is Ownable { function claimOwnership() onlyPendingOwner { owner = pendingOwner; pendingOwner = 0x0; + OwnershipTransferred(owner); } } diff --git a/contracts/ownership/DelayedClaimable.sol b/contracts/ownership/DelayedClaimable.sol index f83ed5046..ddffd0d0e 100644 --- a/contracts/ownership/DelayedClaimable.sol +++ b/contracts/ownership/DelayedClaimable.sol @@ -36,6 +36,7 @@ contract DelayedClaimable is Claimable { owner = pendingOwner; pendingOwner = 0x0; end = 0; + OwnershipTransferred(owner); } } diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index fcb3ef91f..666747362 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -10,6 +10,9 @@ contract Ownable { address public owner; + event OwnershipTransferred(address indexed newOwner); + + /** * @dev The Ownable constructor sets the original `owner` of the contract to the sender * account. @@ -35,6 +38,7 @@ contract Ownable { function transferOwnership(address newOwner) onlyOwner { require(newOwner != address(0)); owner = newOwner; + OwnershipTransferred(newOwner); } } From 6beac0f2157d242de9a2f4b478fc8b55e09cffb4 Mon Sep 17 00:00:00 2001 From: Yevhenii Babichenko Date: Wed, 6 Sep 2017 10:29:25 +0300 Subject: [PATCH 147/160] add previousOwner field to OwnershipTransferred event --- contracts/ownership/Ownable.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index 666747362..eaa55ffaa 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -10,7 +10,7 @@ contract Ownable { address public owner; - event OwnershipTransferred(address indexed newOwner); + event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** From 7a36a6c92a3f958521d9da1db25f02b55b0122ef Mon Sep 17 00:00:00 2001 From: Yevhenii Babichenko Date: Wed, 6 Sep 2017 10:31:23 +0300 Subject: [PATCH 148/160] fix calls to OwnershipTransferred --- contracts/ownership/Claimable.sol | 2 +- contracts/ownership/DelayedClaimable.sol | 2 +- contracts/ownership/Ownable.sol | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/contracts/ownership/Claimable.sol b/contracts/ownership/Claimable.sol index ae8080270..4f6ea1a86 100644 --- a/contracts/ownership/Claimable.sol +++ b/contracts/ownership/Claimable.sol @@ -32,8 +32,8 @@ contract Claimable is Ownable { * @dev Allows the pendingOwner address to finalize the transfer. */ function claimOwnership() onlyPendingOwner { + OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = 0x0; - OwnershipTransferred(owner); } } diff --git a/contracts/ownership/DelayedClaimable.sol b/contracts/ownership/DelayedClaimable.sol index ddffd0d0e..b3ef96dbf 100644 --- a/contracts/ownership/DelayedClaimable.sol +++ b/contracts/ownership/DelayedClaimable.sol @@ -33,10 +33,10 @@ contract DelayedClaimable is Claimable { */ function claimOwnership() onlyPendingOwner { require((block.number <= end) && (block.number >= start)); + OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = 0x0; end = 0; - OwnershipTransferred(owner); } } diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index eaa55ffaa..ed40618ce 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -38,7 +38,7 @@ contract Ownable { function transferOwnership(address newOwner) onlyOwner { require(newOwner != address(0)); owner = newOwner; - OwnershipTransferred(newOwner); + OwnershipTransferred(owner, newOwner); } } From 99887da49a3b3b545a4b18cfdecf8d53633f0cc9 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Wed, 6 Sep 2017 15:06:56 -0300 Subject: [PATCH 149/160] fix Pausable documentation --- contracts/lifecycle/Pausable.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/lifecycle/Pausable.sol b/contracts/lifecycle/Pausable.sol index 4baba694e..ca5f435d6 100644 --- a/contracts/lifecycle/Pausable.sol +++ b/contracts/lifecycle/Pausable.sol @@ -16,7 +16,7 @@ contract Pausable is Ownable { /** - * @dev modifier to allow actions only when the contract IS paused + * @dev Modifier to make a function callable only when the contract is not paused. */ modifier whenNotPaused() { require(!paused); @@ -24,7 +24,7 @@ contract Pausable is Ownable { } /** - * @dev modifier to allow actions only when the contract IS NOT paused + * @dev Modifier to make a function callable only when the contract is paused. */ modifier whenPaused() { require(paused); From 5035718e4bf5e052c17e97548e0c49ccc0e5c8ef Mon Sep 17 00:00:00 2001 From: Yevhenii Babichenko Date: Thu, 7 Sep 2017 11:59:36 +0300 Subject: [PATCH 150/160] fixed wrong call order in Ownable.transferOwnership --- contracts/ownership/Ownable.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index ed40618ce..a671e80b0 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -37,8 +37,8 @@ contract Ownable { */ function transferOwnership(address newOwner) onlyOwner { require(newOwner != address(0)); - owner = newOwner; OwnershipTransferred(owner, newOwner); + owner = newOwner; } } From 20187f2970ce6b87d31238869a5567e90ce21ab2 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Thu, 7 Sep 2017 20:04:48 -0300 Subject: [PATCH 151/160] use SafeERC20#safeTransfer --- contracts/ownership/CanReclaimToken.sol | 6 ++++-- contracts/token/TokenTimelock.sol | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/contracts/ownership/CanReclaimToken.sol b/contracts/ownership/CanReclaimToken.sol index 4921b7c49..2d03fab30 100644 --- a/contracts/ownership/CanReclaimToken.sol +++ b/contracts/ownership/CanReclaimToken.sol @@ -2,6 +2,7 @@ pragma solidity ^0.4.11; import "./Ownable.sol"; import "../token/ERC20Basic.sol"; +import "../token/SafeERC20.sol"; /** * @title Contracts that should be able to recover tokens @@ -10,6 +11,7 @@ import "../token/ERC20Basic.sol"; * This will prevent any accidental loss of tokens. */ contract CanReclaimToken is Ownable { + using SafeERC20 for ERC20Basic; /** * @dev Reclaim all ERC20Basic compatible tokens @@ -17,7 +19,7 @@ contract CanReclaimToken is Ownable { */ function reclaimToken(ERC20Basic token) external onlyOwner { uint256 balance = token.balanceOf(this); - token.transfer(owner, balance); + token.safeTransfer(owner, balance); } -} \ No newline at end of file +} diff --git a/contracts/token/TokenTimelock.sol b/contracts/token/TokenTimelock.sol index 8250083d4..86dc3b260 100644 --- a/contracts/token/TokenTimelock.sol +++ b/contracts/token/TokenTimelock.sol @@ -2,6 +2,7 @@ pragma solidity ^0.4.11; import './ERC20Basic.sol'; +import "../token/SafeERC20.sol"; /** * @title TokenTimelock @@ -9,6 +10,7 @@ import './ERC20Basic.sol'; * beneficiary to extract the tokens after a given release time */ contract TokenTimelock { + using SafeERC20 for ERC20Basic; // ERC20 basic token contract being held ERC20Basic token; @@ -44,6 +46,6 @@ contract TokenTimelock { uint256 amount = token.balanceOf(this); require(amount > 0); - token.transfer(beneficiary, amount); + token.safeTransfer(beneficiary, amount); } } From fac580d1a90bb2c6084782c10b6e001e675c4a65 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 11 Sep 2017 12:08:23 -0300 Subject: [PATCH 152/160] remove indexed declaration of uint event parameter --- contracts/token/BurnableToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/BurnableToken.sol b/contracts/token/BurnableToken.sol index 5498cb3ae..a5429e7f5 100644 --- a/contracts/token/BurnableToken.sol +++ b/contracts/token/BurnableToken.sol @@ -23,5 +23,5 @@ contract BurnableToken is StandardToken { Burn(burner, _value); } - event Burn(address indexed burner, uint indexed value); + event Burn(address indexed burner, uint256 value); } From f96ebfca31d8ca9942c13b739af90aa031c87939 Mon Sep 17 00:00:00 2001 From: Francisco Giordano Date: Mon, 11 Sep 2017 12:09:26 -0300 Subject: [PATCH 153/160] cosmetic changes to BurnableToken --- contracts/token/BurnableToken.sol | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/contracts/token/BurnableToken.sol b/contracts/token/BurnableToken.sol index a5429e7f5..67cb850fe 100644 --- a/contracts/token/BurnableToken.sol +++ b/contracts/token/BurnableToken.sol @@ -8,13 +8,13 @@ import './StandardToken.sol'; */ contract BurnableToken is StandardToken { + event Burn(address indexed burner, uint256 value); + /** * @dev Burns a specific amount of tokens. * @param _value The amount of token to be burned. */ - function burn(uint _value) - public - { + function burn(uint256 _value) public { require(_value > 0); address burner = msg.sender; @@ -22,6 +22,4 @@ contract BurnableToken is StandardToken { totalSupply = totalSupply.sub(_value); Burn(burner, _value); } - - event Burn(address indexed burner, uint256 value); } From 61f62eb3c7343e2eeda3498659949fd7f8e5ecd7 Mon Sep 17 00:00:00 2001 From: Santiago Palladino Date: Mon, 11 Sep 2017 12:13:19 -0300 Subject: [PATCH 154/160] Fix INITIAL_SUPPLY in SimpleToken example Use token decimals --- contracts/examples/SimpleToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/examples/SimpleToken.sol b/contracts/examples/SimpleToken.sol index a226de227..0e24d4ace 100644 --- a/contracts/examples/SimpleToken.sol +++ b/contracts/examples/SimpleToken.sol @@ -16,7 +16,7 @@ contract SimpleToken is StandardToken { string public constant symbol = "SIM"; uint8 public constant decimals = 18; - uint256 public constant INITIAL_SUPPLY = 10000; + uint256 public constant INITIAL_SUPPLY = 10000 * (10 ** uint256(decimals)); /** * @dev Contructor that gives msg.sender all of existing tokens. From 6d8bb497c854f4c9ddc8bf364072da1b1885cdf7 Mon Sep 17 00:00:00 2001 From: Roy Blankman Date: Sat, 16 Sep 2017 10:20:06 -0400 Subject: [PATCH 155/160] removing trailing whitespace --- .gitignore | 2 +- .solcover.js | 2 +- .soliumignore | 2 +- LICENSE | 16 ++--- audit/ZeppelinAudit.md | 64 ++++++++++---------- contracts/crowdsale/Crowdsale.sol | 8 +-- contracts/crowdsale/FinalizableCrowdsale.sol | 4 +- contracts/examples/SampleCrowdsale.sol | 2 +- contracts/lifecycle/Destructible.sol | 4 +- contracts/lifecycle/TokenDestructible.sol | 6 +- contracts/ownership/Contactable.sol | 2 +- contracts/ownership/HasNoContracts.sol | 2 +- contracts/ownership/NoOwner.sol | 4 +- contracts/ownership/Ownable.sol | 2 +- contracts/token/BasicToken.sol | 4 +- contracts/token/StandardToken.sol | 8 +-- docs/Makefile | 2 +- docs/source/basictoken.rst | 2 +- docs/source/developer-resources.rst | 2 +- docs/source/index.rst | 10 +-- docs/source/killable.rst | 2 +- docs/source/license.rst | 18 +++--- docs/source/migrations.rst | 2 +- docs/source/pausable.rst | 2 +- docs/source/safemath.rst | 2 +- docs/source/standardtoken.rst | 2 +- test/BasicToken.js | 2 +- test/Bounty.js | 4 +- test/BurnableToken.js | 6 +- test/Crowdsale.js | 12 ++-- test/LimitBalance.js | 4 +- test/MintableToken.js | 2 +- test/Ownable.js | 2 +- test/PausableToken.js | 6 +- test/PullPayment.js | 4 +- test/SampleCrowdsale.js | 2 +- test/StandardToken.js | 6 +- test/TokenDestructible.js | 2 +- test/helpers/BurnableTokenMock.sol | 2 +- test/helpers/CappedCrowdsaleImpl.sol | 2 +- test/helpers/FinalizableCrowdsaleImpl.sol | 2 +- test/helpers/RefundableCrowdsaleImpl.sol | 2 +- test/helpers/increaseTime.js | 4 +- test/helpers/timer.js | 2 +- truffle-config.js | 8 +-- 45 files changed, 125 insertions(+), 125 deletions(-) diff --git a/.gitignore b/.gitignore index 8c72974ad..264489235 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,4 @@ build/ /coverage coverage.json allFiredEvents -scTopics \ No newline at end of file +scTopics diff --git a/.solcover.js b/.solcover.js index 0fbd9dc86..caaf89b4c 100644 --- a/.solcover.js +++ b/.solcover.js @@ -2,4 +2,4 @@ module.exports = { norpc: true, testCommand: 'node --max-old-space-size=4096 ../node_modules/.bin/truffle test --network coverage', skipFiles: ['lifecycle/Migrations.sol'] -} \ No newline at end of file +} diff --git a/.soliumignore b/.soliumignore index b512c09d4..3c3629e64 100644 --- a/.soliumignore +++ b/.soliumignore @@ -1 +1 @@ -node_modules \ No newline at end of file +node_modules diff --git a/LICENSE b/LICENSE index 85f533218..98dd89cdc 100644 --- a/LICENSE +++ b/LICENSE @@ -5,18 +5,18 @@ Copyright (c) 2016 Smart Contract Solutions, Inc. Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, +without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to +permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. diff --git a/audit/ZeppelinAudit.md b/audit/ZeppelinAudit.md index 2291749f6..51c0b7ab5 100644 --- a/audit/ZeppelinAudit.md +++ b/audit/ZeppelinAudit.md @@ -5,7 +5,7 @@ Authored by Dennis Peterson and Peter Vessenes # Introduction -Zeppelin requested that New Alchemy perform an audit of the contracts in their OpenZeppelin library. The OpenZeppelin contracts are a set of contracts intended to be a safe building block for a variety of uses by parties that may not be as sophisticated as the OpenZeppelin team. It is a design goal that the contracts be deployable safely and "as-is". +Zeppelin requested that New Alchemy perform an audit of the contracts in their OpenZeppelin library. The OpenZeppelin contracts are a set of contracts intended to be a safe building block for a variety of uses by parties that may not be as sophisticated as the OpenZeppelin team. It is a design goal that the contracts be deployable safely and "as-is". The contracts are hosted at: @@ -22,9 +22,9 @@ The audit makes no statements or warrantees about utility of the code, safety of # Executive Summary -Overall the OpenZeppelin codebase is of reasonably high quality -- it is clean, modular and follows best practices throughout. +Overall the OpenZeppelin codebase is of reasonably high quality -- it is clean, modular and follows best practices throughout. -It is still in flux as a codebase, and needs better documentation per file as to expected behavior and future plans. It probably needs more comprehensive and aggressive tests written by people less nice than the current OpenZeppelin team. +It is still in flux as a codebase, and needs better documentation per file as to expected behavior and future plans. It probably needs more comprehensive and aggressive tests written by people less nice than the current OpenZeppelin team. We identified two critical errors and one moderate issue, and would not recommend this commit hash for public use until these bugs are remedied. @@ -34,12 +34,12 @@ The repository includes a set of Truffle unit tests, a requirement and best prac ## Big Picture: Is This A Worthwhile Project? -As soon as a developer touches OpenZeppelin contracts, they will modify something, leaving them in an un-audited state. We do not recommend developers deploy any unaudited code to the Blockchain if it will handle money, information or other things of value. +As soon as a developer touches OpenZeppelin contracts, they will modify something, leaving them in an un-audited state. We do not recommend developers deploy any unaudited code to the Blockchain if it will handle money, information or other things of value. > "In accordance with Unix philosophy, Perl gives you enough rope to hang yourself" > --Larry Wall -We think this is an incredibly worthwhile project -- aided by the high code quality. Creating a framework that can be easily extended helps increase the average code quality on the Blockchain by charting a course for developers and encouraging containment of modifications to certain sections. +We think this is an incredibly worthwhile project -- aided by the high code quality. Creating a framework that can be easily extended helps increase the average code quality on the Blockchain by charting a course for developers and encouraging containment of modifications to certain sections. > "Rust: The language that makes you take the safety off before shooting yourself in the foot" > -- (@mbrubeck) @@ -65,7 +65,7 @@ In general we prefer `throw` in our code audits, because it is simpler -- it's l In the OpenZeppelin contracts, both styles are used in different parts of the codebase. `SimpleToken` transfers throw upon failure, while the full ERC20 token returns `false`. Some modifiers `throw`, others just wrap the function body in a conditional, effectively allowing the function to return false if the condition is not met. -We don't love this, and would usually recommend you stick with one style or the other throughout the codebase. +We don't love this, and would usually recommend you stick with one style or the other throughout the codebase. In at least one case, these different techniques are combined cleverly (see the Multisig comments, line 65). As a set of contracts intended for general use, we recommend you either strive for more consistency or document explicit design criteria that govern which techniques are used where. @@ -77,19 +77,19 @@ Note that it may be impossible to use either one in all situations. For example, CrowdsaleToken.sol has no provision for withdrawing the raised ether. We *strongly* recommend a standard `withdraw` function be added. There is no scenario in which someone should deploy this contract as is, whether for testing or live. ## Recursive Call in MultisigWallet -Line 45 of `MultisigWallet.sol` checks if the amount being sent by `execute` is under a daily limit. +Line 45 of `MultisigWallet.sol` checks if the amount being sent by `execute` is under a daily limit. -This function can only be called by the "Owner". As a first angle of attack, it's worth asking what will happen if the multisig wallet owners reset the daily limit by approving a call to `resetSpentToday`. +This function can only be called by the "Owner". As a first angle of attack, it's worth asking what will happen if the multisig wallet owners reset the daily limit by approving a call to `resetSpentToday`. If a chain of calls can be constructed in which the owner confirms the `resetSpentToday` function and then withdraws through `execute` in a recursive call, the contract can be drained. In fact, this could be done without a recursive call, just through repeated `execute` calls alternating with the `confirm` calls. -We are still working through the confirmation protocol in `Shareable.sol`, but we are not convinced that this is impossible, in fact it looks possible. The flexibility any shared owner has in being able to revoke confirmation later is another worrisome angle of approach even if some simple patches are included. +We are still working through the confirmation protocol in `Shareable.sol`, but we are not convinced that this is impossible, in fact it looks possible. The flexibility any shared owner has in being able to revoke confirmation later is another worrisome angle of approach even if some simple patches are included. This bug has a number of causes that need to be addressed: -1. `resetSpentToday` and `confirm` together do not limit the days on which the function can be called or (it appears) the number of times it can be called. -1. Once a call has been confirmed and `execute`d it appears that it can be re-executed. This is not good. -3. `confirmandCheck` doesn't seem to have logic about whether or not the function in question has been called. +1. `resetSpentToday` and `confirm` together do not limit the days on which the function can be called or (it appears) the number of times it can be called. +1. Once a call has been confirmed and `execute`d it appears that it can be re-executed. This is not good. +3. `confirmandCheck` doesn't seem to have logic about whether or not the function in question has been called. 4. Even if it did, `revoke` would need updates and logic to deal with revocation requests after a function call had been completed. We do not recommend using the MultisigWallet until these issues are fixed. @@ -97,9 +97,9 @@ We do not recommend using the MultisigWallet until these issues are fixed. # Moderate to Minor Issues ## PullPayment -PullPayment.sol needs some work. It has no explicit provision for cancelling a payment. This would be desirable in a number of scenarios; consider a payee losing their wallet, or giving a griefing address, or just an address that requires more than the default gas offered by `send`. +PullPayment.sol needs some work. It has no explicit provision for cancelling a payment. This would be desirable in a number of scenarios; consider a payee losing their wallet, or giving a griefing address, or just an address that requires more than the default gas offered by `send`. -`asyncSend` has no overflow checking. This is a bad plan. We recommend overflow and underflow checking at the layer closest to the data manipulation. +`asyncSend` has no overflow checking. This is a bad plan. We recommend overflow and underflow checking at the layer closest to the data manipulation. `asyncSend` allows more balance to be queued up for sending than the contract holds. This is probably a bad idea, or at the very least should be called something different. If the intent is to allow this, it should have provisions for dealing with race conditions between competing `withdrawPayments` calls. @@ -107,7 +107,7 @@ It would be nice to see how many payments are pending. This would imply a bit of ## Shareable Contract -We do not believe the `Shareable.sol` contract is ready for primetime. It is missing functions, and as written may be vulnerable to a reordering attack -- an attack in which a miner or other party "racing" with a smart contract participant inserts their own information into a list or mapping. +We do not believe the `Shareable.sol` contract is ready for primetime. It is missing functions, and as written may be vulnerable to a reordering attack -- an attack in which a miner or other party "racing" with a smart contract participant inserts their own information into a list or mapping. The confirmation and revocation code needs to be looked over with a very careful eye imagining extraordinarily bad behavior by shared owners before this contract can be called safe. @@ -129,7 +129,7 @@ I presume that the goal of this contract is to allow and annotate a migration to ### Pausable -We like these pauses! Note that these allow significant griefing potential by owners, and that this might not be obvious to participants in smart contracts using the OpenZeppelin framework. We would recommend that additional sample logic be added to for instance the TokenContract showing safer use of the pause and resume functions. In particular, we would recommend a timelock after which anyone could unpause the contract. +We like these pauses! Note that these allow significant griefing potential by owners, and that this might not be obvious to participants in smart contracts using the OpenZeppelin framework. We would recommend that additional sample logic be added to for instance the TokenContract showing safer use of the pause and resume functions. In particular, we would recommend a timelock after which anyone could unpause the contract. The modifers use the pattern `if(bool){_;}`. This is fine for functions that return false upon failure, but could be problematic for functions expected to throw upon failure. See our comments above on standardizing on `throw` or `return(false)`. @@ -163,7 +163,7 @@ Line 34: "this contract only has six types of events"...actually only two. Line 61: Why is `ownerIndex` keyed by addresses hashed to `uint`s? Why not use the addresses directly, so `ownerIndex` is less obscure, and so there's stronger typing? -Line 62: Do not love `++i) ... owners[2+ i]`. Makes me do math, which is not what I want to do. I want to not have to do math. +Line 62: Do not love `++i) ... owners[2+ i]`. Makes me do math, which is not what I want to do. I want to not have to do math. There should probably be a function for adding a new operation, so the developer doesn't have to work directly with the internal data. (This would make the multisig contract even shorter.) @@ -171,7 +171,7 @@ There's a `revoke` function but not a `propose` function that we can see. Beware reordering. If `propose` allows the user to choose a bytes string for their proposal, bad things(TM) will happen as currently written. - + ### Multisig Just an interface. Note it allows changing an owner address, but not changing the number of owners. This is somewhat limiting but also simplifies implementation. @@ -184,9 +184,9 @@ Safe from reentrance attack since ether send is at the end, plus it uses `.send( There's an argument to be made that `.call.value()` is a better option *if* you're sure that it will be done after all state updates, since `.send` will fail if the recipient has an expensive fallback function. However, in the context of a function meant to be embedded in other contracts, it's probably better to use `.send`. One possible compromise is to add a function which allows only the owner to send ether via `.call.value`. -If you don't use `call.value` you should implement a `cancel` function in case some value is pending here. +If you don't use `call.value` you should implement a `cancel` function in case some value is pending here. -Line 14: +Line 14: Doesn't use safeAdd. Although it appears that payout amounts can only be increased, in fact the payer could lower the payout as much as desired via overflow. Also, the payer could add a large non-overflowing amount, causing the payment to exceed the contract balance and therefore fail when withdraw is attempted. Recommendation: track the sum of non-withdrawn asyncSends, and don't allow a new one which exceeds the leftover balance. If it's ever desirable to make payments revocable, it should be done explicitly. @@ -195,7 +195,7 @@ Recommendation: track the sum of non-withdrawn asyncSends, and don't allow a new ### ERC20 -Standard ERC20 interface only. +Standard ERC20 interface only. There's a security hole in the standard, reported at Edcon: `approve` does not protect against race conditions and simply replaces the current value. An approved spender could wait for the owner to call `approve` again, then attempt to spend the old limit before the new limit is applied. If successful, this attacker could successfully spend the sum of both limits. @@ -208,11 +208,11 @@ https://drive.google.com/file/d/0ByMtMw2hul0EN3NCaVFHSFdxRzA/view ### ERC20Basic -Simpler interface skipping the Approve function. Note this departs from ERC20 in another way: transfer throws instead of returning false. +Simpler interface skipping the Approve function. Note this departs from ERC20 in another way: transfer throws instead of returning false. ### BasicToken -Uses `SafeSub` and `SafeMath`, so transfer `throw`s instead of returning false. This complies with ERC20Basic but not the actual ERC20 standard. +Uses `SafeSub` and `SafeMath`, so transfer `throw`s instead of returning false. This complies with ERC20Basic but not the actual ERC20 standard. ### StandardToken @@ -234,10 +234,10 @@ Note: an alternative pattern is a mint() function which is only callable from a ### VestedToken -Lines 23, 27: -Functions `transfer()` and `transferFrom()` have a modifier canTransfer which throws if not enough tokens are available. However, transfer() returns a boolean success. Inconsistent treatment of failure conditions may cause problems for other contracts using the token. (Note that transferableTokens() relies on safeSub(), so will also throw if there's insufficient balance.) +Lines 23, 27: +Functions `transfer()` and `transferFrom()` have a modifier canTransfer which throws if not enough tokens are available. However, transfer() returns a boolean success. Inconsistent treatment of failure conditions may cause problems for other contracts using the token. (Note that transferableTokens() relies on safeSub(), so will also throw if there's insufficient balance.) -Line 64: +Line 64: Delete not actually necessary since the value is overwritten in the next line anyway. ## Root level @@ -255,7 +255,7 @@ The modifier `limitedDaily` calls `underLimit`, which both checks that the spend Lines 4, 11: Comment claims that `DayLimit` is multiowned, and Shareable is imported, but DayLimit does not actually inherit from Shareable. The intent may be for child contracts to inherit from Shareable (as Multisig does); in this case the import should be removed and the comment altered. -Line 46: +Line 46: Manual overflow check instead of using safeAdd. Since this is called from a function that throws upon failure anyway, there's no real downside to using safeAdd. ### LimitBalance @@ -264,19 +264,19 @@ No issues. ### MultisigWallet -Lines 28, 76, 80: +Lines 28, 76, 80: `kill`, `setDailyLimit`, and `resetSpentToday` only happen with multisig approval, and hashes for these actions are logged by Shareable. However, they should probably post their own events for easy reading. -Line 45: +Line 45: This call to underLimit will reduce the daily limit, and then either throw or return 0. So in this case there's no danger that the limit will be reduced without the operation going through. -Line 65: +Line 65: Shareable's onlyManyOwners will take the user's confirmation, and execute the function body if and only if enough users have confirmed. Whole thing throws if the send fails, which will roll back the confirmation. Confirm returns false if not enough have confirmed yet, true if the whole thing succeeds, and throws only in the exceptional circumstance that the designated transaction unexpectedly fails. Elegant design. -Line 68: +Line 68: Throw here is good but note this function can fail either by returning false or by throwing. -Line 92: +Line 92: A bit odd to split `clearPending()` between this contract and Shareable. However this does allow contracts inheriting from Shareable to use custom structs for pending transactions. diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index e4cc4eb07..986397b2e 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -4,11 +4,11 @@ import '../token/MintableToken.sol'; import '../math/SafeMath.sol'; /** - * @title Crowdsale + * @title Crowdsale * @dev Crowdsale is a base contract for managing a token crowdsale. * Crowdsales have a start and end timestamps, where investors can make * token purchases and the crowdsale will assign them tokens based - * on a token per ETH rate. Funds collected are forwarded to a wallet + * on a token per ETH rate. Funds collected are forwarded to a wallet * as they arrive. */ contract Crowdsale { @@ -36,7 +36,7 @@ contract Crowdsale { * @param beneficiary who got the tokens * @param value weis paid for purchase * @param amount amount of tokens purchased - */ + */ event TokenPurchase(address indexed purchaser, address indexed beneficiary, uint256 value, uint256 amount); @@ -53,7 +53,7 @@ contract Crowdsale { wallet = _wallet; } - // creates the token to be sold. + // creates the token to be sold. // override this method to have crowdsale of a specific mintable token. function createTokenContract() internal returns (MintableToken) { return new MintableToken(); diff --git a/contracts/crowdsale/FinalizableCrowdsale.sol b/contracts/crowdsale/FinalizableCrowdsale.sol index 9e63e7226..0bae44b47 100644 --- a/contracts/crowdsale/FinalizableCrowdsale.sol +++ b/contracts/crowdsale/FinalizableCrowdsale.sol @@ -7,7 +7,7 @@ import './Crowdsale.sol'; /** * @title FinalizableCrowdsale * @dev Extension of Crowsdale where an owner can do extra work - * after finishing. + * after finishing. */ contract FinalizableCrowdsale is Crowdsale, Ownable { using SafeMath for uint256; @@ -26,7 +26,7 @@ contract FinalizableCrowdsale is Crowdsale, Ownable { finalization(); Finalized(); - + isFinalized = true; } diff --git a/contracts/examples/SampleCrowdsale.sol b/contracts/examples/SampleCrowdsale.sol index 554aa6be8..0adc487b6 100644 --- a/contracts/examples/SampleCrowdsale.sol +++ b/contracts/examples/SampleCrowdsale.sol @@ -45,4 +45,4 @@ contract SampleCrowdsale is CappedCrowdsale, RefundableCrowdsale { return new SampleCrowdsaleToken(); } -} \ No newline at end of file +} diff --git a/contracts/lifecycle/Destructible.sol b/contracts/lifecycle/Destructible.sol index 3561e3b74..d0cd9d9a2 100644 --- a/contracts/lifecycle/Destructible.sol +++ b/contracts/lifecycle/Destructible.sol @@ -10,10 +10,10 @@ import "../ownership/Ownable.sol"; */ contract Destructible is Ownable { - function Destructible() payable { } + function Destructible() payable { } /** - * @dev Transfers the current balance to the owner and terminates the contract. + * @dev Transfers the current balance to the owner and terminates the contract. */ function destroy() onlyOwner { selfdestruct(owner); diff --git a/contracts/lifecycle/TokenDestructible.sol b/contracts/lifecycle/TokenDestructible.sol index fe0b46b6d..a6e028c10 100644 --- a/contracts/lifecycle/TokenDestructible.sol +++ b/contracts/lifecycle/TokenDestructible.sol @@ -4,7 +4,7 @@ pragma solidity ^0.4.11; import "../ownership/Ownable.sol"; import "../token/ERC20Basic.sol"; -/** +/** * @title TokenDestructible: * @author Remco Bloemen * @dev Base contract that can be destroyed by owner. All funds in contract including @@ -12,9 +12,9 @@ import "../token/ERC20Basic.sol"; */ contract TokenDestructible is Ownable { - function TokenDestructible() payable { } + function TokenDestructible() payable { } - /** + /** * @notice Terminate contract and refund to owner * @param tokens List of addresses of ERC20 or ERC20Basic token contracts to refund. diff --git a/contracts/ownership/Contactable.sol b/contracts/ownership/Contactable.sol index 0db3ee07c..16b14c1ef 100644 --- a/contracts/ownership/Contactable.sol +++ b/contracts/ownership/Contactable.sol @@ -4,7 +4,7 @@ import './Ownable.sol'; /** * @title Contactable token - * @dev Basic version of a contactable contract, allowing the owner to provide a string with their + * @dev Basic version of a contactable contract, allowing the owner to provide a string with their * contact information. */ contract Contactable is Ownable{ diff --git a/contracts/ownership/HasNoContracts.sol b/contracts/ownership/HasNoContracts.sol index b5bd649d7..19b363d46 100644 --- a/contracts/ownership/HasNoContracts.sol +++ b/contracts/ownership/HasNoContracts.sol @@ -2,7 +2,7 @@ pragma solidity ^0.4.11; import "./Ownable.sol"; -/** +/** * @title Contracts that should not own Contracts * @author Remco Bloemen * @dev Should contracts (anything Ownable) end up being owned by this contract, it allows the owner diff --git a/contracts/ownership/NoOwner.sol b/contracts/ownership/NoOwner.sol index 7215abf3a..c0ef7f4dc 100644 --- a/contracts/ownership/NoOwner.sol +++ b/contracts/ownership/NoOwner.sol @@ -4,10 +4,10 @@ import "./HasNoEther.sol"; import "./HasNoTokens.sol"; import "./HasNoContracts.sol"; -/** +/** * @title Base contract for contracts that should not own things. * @author Remco Bloemen - * @dev Solves a class of errors where a contract accidentally becomes owner of Ether, Tokens or + * @dev Solves a class of errors where a contract accidentally becomes owner of Ether, Tokens or * Owned contracts. See respective base contracts for details. */ contract NoOwner is HasNoEther, HasNoTokens, HasNoContracts { diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index a671e80b0..1871efe22 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -36,7 +36,7 @@ contract Ownable { * @param newOwner The address to transfer ownership to. */ function transferOwnership(address newOwner) onlyOwner { - require(newOwner != address(0)); + require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; } diff --git a/contracts/token/BasicToken.sol b/contracts/token/BasicToken.sol index d13156477..d452c70e6 100644 --- a/contracts/token/BasicToken.sol +++ b/contracts/token/BasicToken.sol @@ -7,7 +7,7 @@ import '../math/SafeMath.sol'; /** * @title Basic token - * @dev Basic version of StandardToken, with no allowances. + * @dev Basic version of StandardToken, with no allowances. */ contract BasicToken is ERC20Basic { using SafeMath for uint256; @@ -31,7 +31,7 @@ contract BasicToken is ERC20Basic { /** * @dev Gets the balance of the specified address. - * @param _owner The address to query the the balance of. + * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ function balanceOf(address _owner) constant returns (uint256 balance) { diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index f5cf58fc2..9ed357890 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -65,21 +65,21 @@ contract StandardToken is ERC20, BasicToken { function allowance(address _owner, address _spender) constant returns (uint256 remaining) { return allowed[_owner][_spender]; } - + /** * approve should be called when allowed[_spender] == 0. To increment - * allowed value is better to use this function to avoid 2 calls (and wait until + * allowed value is better to use this function to avoid 2 calls (and wait until * the first transaction is mined) * From MonolithDAO Token.sol */ - function increaseApproval (address _spender, uint _addedValue) + function increaseApproval (address _spender, uint _addedValue) returns (bool success) { allowed[msg.sender][_spender] = allowed[msg.sender][_spender].add(_addedValue); Approval(msg.sender, _spender, allowed[msg.sender][_spender]); return true; } - function decreaseApproval (address _spender, uint _subtractedValue) + function decreaseApproval (address _spender, uint _subtractedValue) returns (bool success) { uint oldValue = allowed[msg.sender][_spender]; if (_subtractedValue > oldValue) { diff --git a/docs/Makefile b/docs/Makefile index 309af2ca8..37f1e4727 100644 --- a/docs/Makefile +++ b/docs/Makefile @@ -17,4 +17,4 @@ help: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/source/basictoken.rst b/docs/source/basictoken.rst index 2903c10a5..8e8fb25b6 100644 --- a/docs/source/basictoken.rst +++ b/docs/source/basictoken.rst @@ -9,4 +9,4 @@ Returns the token balance of the passed address. function transfer(address _to, uint _value) returns (bool success) """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" -Transfers tokens from sender's account. Amount must not be greater than sender's balance. \ No newline at end of file +Transfers tokens from sender's account. Amount must not be greater than sender's balance. diff --git a/docs/source/developer-resources.rst b/docs/source/developer-resources.rst index b015dfce3..802d9ce0f 100644 --- a/docs/source/developer-resources.rst +++ b/docs/source/developer-resources.rst @@ -9,4 +9,4 @@ Interested in contributing to Zeppelin? * Framework proposal and roadmap: https://medium.com/zeppelin-blog/zeppelin-framework-proposal-and-development-roadmap-fdfa9a3a32ab#.iain47pak * Issue tracker: https://github.com/OpenZeppelin/zeppelin-solidity/issues -* Contribution guidelines: https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/CONTRIBUTING.md \ No newline at end of file +* Contribution guidelines: https://github.com/OpenZeppelin/zeppelin-solidity/blob/master/CONTRIBUTING.md diff --git a/docs/source/index.rst b/docs/source/index.rst index aaa9b98fb..e0e999c16 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -6,14 +6,14 @@ Welcome to Zeppelin-Solidity ============================================= -Zeppelin is a library for writing secure Smart Contracts on Ethereum. +Zeppelin is a library for writing secure Smart Contracts on Ethereum. With Zeppelin, you can build distributed applications, protocols and organizations: * using :doc:`contract-security-patterns` * in the `Solidity language `_. -The code is open-source, and `available on github `_. +The code is open-source, and `available on github `_. .. toctree:: :maxdepth: 2 @@ -24,7 +24,7 @@ The code is open-source, and `available on github e.event === 'TokenPurchase') - + should.exist(event) event.args.purchaser.should.equal(purchaser) event.args.beneficiary.should.equal(investor) event.args.value.should.be.bignumber.equal(value) event.args.amount.should.be.bignumber.equal(expectedTokenAmount) }) - + it('should increase totalSupply', async function () { await this.crowdsale.buyTokens(investor, {value, from: purchaser}) const totalSupply = await this.token.totalSupply() totalSupply.should.be.bignumber.equal(expectedTokenAmount) }) - + it('should assign tokens to beneficiary', async function () { await this.crowdsale.buyTokens(investor, {value, from: purchaser}) const balance = await this.token.balanceOf(investor) balance.should.be.bignumber.equal(expectedTokenAmount) }) - + it('should forward funds to wallet', async function () { const pre = web3.eth.getBalance(wallet) await this.crowdsale.buyTokens(investor, {value, from: purchaser}) diff --git a/test/LimitBalance.js b/test/LimitBalance.js index 12fae06c2..a5aaa5a5b 100644 --- a/test/LimitBalance.js +++ b/test/LimitBalance.js @@ -31,7 +31,7 @@ contract('LimitBalance', function(accounts) { assert.fail('should have thrown before'); } catch(error) { assertJump(error); - } + } }); it('should allow multiple sends below limit', async function() { @@ -55,7 +55,7 @@ contract('LimitBalance', function(accounts) { assert.fail('should have thrown before'); } catch(error) { assertJump(error); - } + } }); }); diff --git a/test/MintableToken.js b/test/MintableToken.js index f6af9ebac..453628c51 100644 --- a/test/MintableToken.js +++ b/test/MintableToken.js @@ -32,7 +32,7 @@ contract('Mintable', function(accounts) { let balance0 = await token.balanceOf(accounts[0]); assert(balance0, 100); - + let totalSupply = await token.totalSupply(); assert(totalSupply, 100); }) diff --git a/test/Ownable.js b/test/Ownable.js index be2653de6..0c417100a 100644 --- a/test/Ownable.js +++ b/test/Ownable.js @@ -45,4 +45,4 @@ contract('Ownable', function(accounts) { } }); -}); \ No newline at end of file +}); diff --git a/test/PausableToken.js b/test/PausableToken.js index b8c5ef282..db570a97e 100644 --- a/test/PausableToken.js +++ b/test/PausableToken.js @@ -53,7 +53,7 @@ contract('PausableToken', function(accounts) { it('should throw an error trying to transfer while transactions are paused', async function() { await token.pause(); - try { + try { await token.transfer(accounts[1], 100); assert.fail('should have thrown before'); } catch (error) { @@ -63,11 +63,11 @@ contract('PausableToken', function(accounts) { it('should throw an error trying to transfer from another account while transactions are paused', async function() { await token.pause(); - try { + try { await token.transferFrom(accounts[0], accounts[1], 100); assert.fail('should have thrown before'); } catch (error) { assertJump(error); } }); -}) \ No newline at end of file +}) diff --git a/test/PullPayment.js b/test/PullPayment.js index f8106464a..26d7ac5e5 100644 --- a/test/PullPayment.js +++ b/test/PullPayment.js @@ -3,11 +3,11 @@ var PullPaymentMock = artifacts.require("./helpers/PullPaymentMock.sol"); contract('PullPayment', function(accounts) { let ppce; let amount = 17*1e18; - + beforeEach(async function() { ppce = await PullPaymentMock.new({value: amount}); }); - + it("can't call asyncSend externally", async function() { assert.isUndefined(ppce.asyncSend); }); diff --git a/test/SampleCrowdsale.js b/test/SampleCrowdsale.js index 709c4bebd..290ff76c0 100644 --- a/test/SampleCrowdsale.js +++ b/test/SampleCrowdsale.js @@ -34,7 +34,7 @@ contract('Crowdsale', function ([owner, wallet, investor]) { this.token = SampleCrowdsaleToken.at(await this.crowdsale.token()); }); - + it('should create crowdsale with correct parameters', async function () { this.crowdsale.should.exist; this.token.should.exist; diff --git a/test/StandardToken.js b/test/StandardToken.js index cb4e9b038..7dd11a782 100644 --- a/test/StandardToken.js +++ b/test/StandardToken.js @@ -6,11 +6,11 @@ var StandardTokenMock = artifacts.require('./helpers/StandardTokenMock.sol'); contract('StandardToken', function(accounts) { let token; - + beforeEach(async function() { token = await StandardTokenMock.new(accounts[0], 100); }); - + it('should return the correct totalSupply after construction', async function() { let totalSupply = await token.totalSupply(); @@ -72,7 +72,7 @@ contract('StandardToken', function(accounts) { describe('validating allowance updates to spender', function() { let preApproved; - + it('should start with zero', async function() { preApproved = await token.allowance(accounts[0], accounts[1]); assert.equal(preApproved, 0); diff --git a/test/TokenDestructible.js b/test/TokenDestructible.js index 7ba052e21..f43f08a1d 100644 --- a/test/TokenDestructible.js +++ b/test/TokenDestructible.js @@ -10,7 +10,7 @@ contract('TokenDestructible', function(accounts) { beforeEach(async function() { destructible = await TokenDestructible.new({fron: accounts[0], value: web3.toWei('10', 'ether')}); }); - + it('should send balance to owner after destruction', async function() { let owner = await destructible.owner(); let initBalance = web3.eth.getBalance(owner); diff --git a/test/helpers/BurnableTokenMock.sol b/test/helpers/BurnableTokenMock.sol index a8bc38b9a..c82a0cac8 100644 --- a/test/helpers/BurnableTokenMock.sol +++ b/test/helpers/BurnableTokenMock.sol @@ -9,4 +9,4 @@ contract BurnableTokenMock is BurnableToken { totalSupply = initialBalance; } -} \ No newline at end of file +} diff --git a/test/helpers/CappedCrowdsaleImpl.sol b/test/helpers/CappedCrowdsaleImpl.sol index 1a9497498..0f65471d0 100644 --- a/test/helpers/CappedCrowdsaleImpl.sol +++ b/test/helpers/CappedCrowdsaleImpl.sol @@ -14,7 +14,7 @@ contract CappedCrowdsaleImpl is CappedCrowdsale { uint256 _cap ) Crowdsale(_startTime, _endTime, _rate, _wallet) - CappedCrowdsale(_cap) + CappedCrowdsale(_cap) { } diff --git a/test/helpers/FinalizableCrowdsaleImpl.sol b/test/helpers/FinalizableCrowdsaleImpl.sol index cc6d31c09..3c3279c1b 100644 --- a/test/helpers/FinalizableCrowdsaleImpl.sol +++ b/test/helpers/FinalizableCrowdsaleImpl.sol @@ -13,7 +13,7 @@ contract FinalizableCrowdsaleImpl is FinalizableCrowdsale { address _wallet ) Crowdsale(_startTime, _endTime, _rate, _wallet) - FinalizableCrowdsale() + FinalizableCrowdsale() { } diff --git a/test/helpers/RefundableCrowdsaleImpl.sol b/test/helpers/RefundableCrowdsaleImpl.sol index 2db8257fc..1dccc8d25 100644 --- a/test/helpers/RefundableCrowdsaleImpl.sol +++ b/test/helpers/RefundableCrowdsaleImpl.sol @@ -14,7 +14,7 @@ contract RefundableCrowdsaleImpl is RefundableCrowdsale { uint256 _goal ) Crowdsale(_startTime, _endTime, _rate, _wallet) - RefundableCrowdsale(_goal) + RefundableCrowdsale(_goal) { } diff --git a/test/helpers/increaseTime.js b/test/helpers/increaseTime.js index a563caa5d..af1dd3584 100644 --- a/test/helpers/increaseTime.js +++ b/test/helpers/increaseTime.js @@ -44,5 +44,5 @@ export const duration = { hours: function(val) { return val * this.minutes(60) }, days: function(val) { return val * this.hours(24) }, weeks: function(val) { return val * this.days(7) }, - years: function(val) { return val * this.days(365)} -}; \ No newline at end of file + years: function(val) { return val * this.days(365)} +}; diff --git a/test/helpers/timer.js b/test/helpers/timer.js index 4cd8f0916..2a0b7c252 100644 --- a/test/helpers/timer.js +++ b/test/helpers/timer.js @@ -2,7 +2,7 @@ module.exports = s => { return new Promise((resolve, reject) => { web3.currentProvider.sendAsync({ - jsonrpc: '2.0', + jsonrpc: '2.0', method: 'evm_increaseTime', params: [s], // 60 seaconds, may need to be hex, I forget id: new Date().getTime() // Id of the request; anything works, really diff --git a/truffle-config.js b/truffle-config.js index d33b28990..31397e46e 100644 --- a/truffle-config.js +++ b/truffle-config.js @@ -23,10 +23,10 @@ module.exports = { }, coverage: { host: "localhost", - network_id: "*", - port: 8555, - gas: 0xfffffffffff, - gasPrice: 0x01 + network_id: "*", + port: 8555, + gas: 0xfffffffffff, + gasPrice: 0x01 } } }; From 676f5f693112170d45d8fe32b8b1a5187e495b43 Mon Sep 17 00:00:00 2001 From: benjyz Date: Mon, 18 Sep 2017 12:18:10 +0700 Subject: [PATCH 156/160] comments on vesting --- contracts/token/VestedToken.sol | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index 5bee34dc2..cdcaf9a66 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -128,13 +128,13 @@ contract VestedToken is StandardToken, LimitedTransferToken { } /** - * @dev Calculate amount of vested tokens at a specifc time. - * @param tokens uint256 The amount of tokens grantted. + * @dev Calculate amount of vested tokens at a specific time + * @param tokens uint256 The amount of tokens granted * @param time uint64 The time to be checked * @param start uint64 A time representing the begining of the grant - * @param cliff uint64 The cliff period. - * @param vesting uint64 The vesting period. - * @return An uint256 representing the amount of vested tokensof a specif grant. + * @param cliff uint64 The cliff period, the period until which nothing can be vested + * @param vesting uint64 The vesting period + * @return An uint256 representing the amount of vested tokens of a specific grant * transferableTokens * | _/-------- vestedTokens rect * | _/ @@ -149,7 +149,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * | . | * | . | * +===+===========+---------+----------> time - * Start Clift Vesting + * Start Cliff Vesting */ function calculateVestedTokens( uint256 tokens, From 9f1826d83e1ae87699f3d951d18a676f7faab6be Mon Sep 17 00:00:00 2001 From: benjyz Date: Mon, 18 Sep 2017 12:22:23 +0700 Subject: [PATCH 157/160] vesting: more corrections on comments --- contracts/token/VestedToken.sol | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index cdcaf9a66..cb1857d8a 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -131,7 +131,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @dev Calculate amount of vested tokens at a specific time * @param tokens uint256 The amount of tokens granted * @param time uint64 The time to be checked - * @param start uint64 A time representing the begining of the grant + * @param start uint64 The time representing the beginning of the grant * @param cliff uint64 The cliff period, the period until which nothing can be vested * @param vesting uint64 The vesting period * @return An uint256 representing the amount of vested tokens of a specific grant @@ -166,7 +166,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { // As before cliff the shortcut returns 0, we can use just calculate a value // in the vesting rect (as shown in above's figure) - // vestedTokens = tokens * (time - start) / (vesting - start) + // vestedTokens = (tokens * (time - start)) / (vesting - start) uint256 vestedTokens = SafeMath.div( SafeMath.mul( tokens, From 2438557255d1ca6bf745e0293abb549dade124fc Mon Sep 17 00:00:00 2001 From: benjyz Date: Mon, 18 Sep 2017 12:41:54 +0700 Subject: [PATCH 158/160] explain cliff --- contracts/token/VestedToken.sol | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index cb1857d8a..be50de75a 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -132,7 +132,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @param tokens uint256 The amount of tokens granted * @param time uint64 The time to be checked * @param start uint64 The time representing the beginning of the grant - * @param cliff uint64 The cliff period, the period until which nothing can be vested + * @param cliff uint64 The cliff period, the period before nothing can be paid out * @param vesting uint64 The vesting period * @return An uint256 representing the amount of vested tokens of a specific grant * transferableTokens From b395b06b65ce35cac155c13d01ab3fc9d42c5cfb Mon Sep 17 00:00:00 2001 From: dmx374 Date: Mon, 18 Sep 2017 13:41:40 +0200 Subject: [PATCH 159/160] Explicit public visibility on methods --- contracts/Bounty.sol | 6 +++--- contracts/ECRecovery.sol | 2 +- contracts/crowdsale/Crowdsale.sol | 2 +- contracts/crowdsale/FinalizableCrowdsale.sol | 2 +- contracts/crowdsale/RefundVault.sol | 8 ++++---- contracts/crowdsale/RefundableCrowdsale.sol | 2 +- contracts/lifecycle/Destructible.sol | 4 ++-- contracts/lifecycle/Migrations.sol | 4 ++-- contracts/lifecycle/Pausable.sol | 4 ++-- contracts/lifecycle/TokenDestructible.sol | 2 +- contracts/ownership/Claimable.sol | 4 ++-- contracts/ownership/Contactable.sol | 2 +- contracts/ownership/DelayedClaimable.sol | 4 ++-- contracts/ownership/Ownable.sol | 2 +- contracts/payment/PullPayment.sol | 2 +- contracts/token/BasicToken.sol | 4 ++-- contracts/token/ERC20.sol | 6 +++--- contracts/token/ERC20Basic.sol | 4 ++-- contracts/token/LimitedTransferToken.sol | 6 +++--- contracts/token/MintableToken.sol | 4 ++-- contracts/token/PausableToken.sol | 4 ++-- contracts/token/StandardToken.sol | 6 +++--- contracts/token/TokenTimelock.sol | 10 +++++----- contracts/token/VestedToken.sol | 10 +++++----- 24 files changed, 52 insertions(+), 52 deletions(-) diff --git a/contracts/Bounty.sol b/contracts/Bounty.sol index 7648d729f..367e130f0 100644 --- a/contracts/Bounty.sol +++ b/contracts/Bounty.sol @@ -27,7 +27,7 @@ contract Bounty is PullPayment, Destructible { * msg.sender as a researcher * @return A target contract */ - function createTarget() returns(Target) { + function createTarget() public returns(Target) { Target target = Target(deployContract()); researchers[target] = msg.sender; TargetCreated(target); @@ -44,7 +44,7 @@ contract Bounty is PullPayment, Destructible { * @dev Sends the contract funds to the researcher that proved the contract is broken. * @param target contract */ - function claim(Target target) { + function claim(Target target) public { address researcher = researchers[target]; require(researcher != 0); // Check Target contract invariants @@ -68,5 +68,5 @@ contract Target { * In order to win the bounty, security researchers will try to cause this broken state. * @return True if all invariant values are correct, false otherwise. */ - function checkInvariant() returns(bool); + function checkInvariant() public returns(bool); } diff --git a/contracts/ECRecovery.sol b/contracts/ECRecovery.sol index 17b1b98f7..de32838a1 100644 --- a/contracts/ECRecovery.sol +++ b/contracts/ECRecovery.sol @@ -14,7 +14,7 @@ library ECRecovery { * @param hash bytes32 message, the hash is the signed message. What is recovered is the signer address. * @param sig bytes signature, the signature is generated using web3.eth.sign() */ - function recover(bytes32 hash, bytes sig) constant returns (address) { + function recover(bytes32 hash, bytes sig) public constant returns (address) { bytes32 r; bytes32 s; uint8 v; diff --git a/contracts/crowdsale/Crowdsale.sol b/contracts/crowdsale/Crowdsale.sol index 986397b2e..32eb1b4dd 100644 --- a/contracts/crowdsale/Crowdsale.sol +++ b/contracts/crowdsale/Crowdsale.sol @@ -66,7 +66,7 @@ contract Crowdsale { } // low level token purchase function - function buyTokens(address beneficiary) payable { + function buyTokens(address beneficiary) public payable { require(beneficiary != 0x0); require(validPurchase()); diff --git a/contracts/crowdsale/FinalizableCrowdsale.sol b/contracts/crowdsale/FinalizableCrowdsale.sol index 0bae44b47..f07d3a96a 100644 --- a/contracts/crowdsale/FinalizableCrowdsale.sol +++ b/contracts/crowdsale/FinalizableCrowdsale.sol @@ -20,7 +20,7 @@ contract FinalizableCrowdsale is Crowdsale, Ownable { * @dev Must be called after crowdsale ends, to do some extra finalization * work. Calls the contract's finalization function. */ - function finalize() onlyOwner { + function finalize() onlyOwner public { require(!isFinalized); require(hasEnded()); diff --git a/contracts/crowdsale/RefundVault.sol b/contracts/crowdsale/RefundVault.sol index cc92ff9f9..ea74269de 100644 --- a/contracts/crowdsale/RefundVault.sol +++ b/contracts/crowdsale/RefundVault.sol @@ -28,25 +28,25 @@ contract RefundVault is Ownable { state = State.Active; } - function deposit(address investor) onlyOwner payable { + function deposit(address investor) onlyOwner public payable { require(state == State.Active); deposited[investor] = deposited[investor].add(msg.value); } - function close() onlyOwner { + function close() onlyOwner public { require(state == State.Active); state = State.Closed; Closed(); wallet.transfer(this.balance); } - function enableRefunds() onlyOwner { + function enableRefunds() onlyOwner public { require(state == State.Active); state = State.Refunding; RefundsEnabled(); } - function refund(address investor) { + function refund(address investor) public { require(state == State.Refunding); uint256 depositedValue = deposited[investor]; deposited[investor] = 0; diff --git a/contracts/crowdsale/RefundableCrowdsale.sol b/contracts/crowdsale/RefundableCrowdsale.sol index f5b44cda4..f04f643eb 100644 --- a/contracts/crowdsale/RefundableCrowdsale.sol +++ b/contracts/crowdsale/RefundableCrowdsale.sol @@ -35,7 +35,7 @@ contract RefundableCrowdsale is FinalizableCrowdsale { } // if crowdsale is unsuccessful, investors can claim refunds here - function claimRefund() { + function claimRefund() public { require(isFinalized); require(!goalReached()); diff --git a/contracts/lifecycle/Destructible.sol b/contracts/lifecycle/Destructible.sol index d0cd9d9a2..9c24474b7 100644 --- a/contracts/lifecycle/Destructible.sol +++ b/contracts/lifecycle/Destructible.sol @@ -15,11 +15,11 @@ contract Destructible is Ownable { /** * @dev Transfers the current balance to the owner and terminates the contract. */ - function destroy() onlyOwner { + function destroy() onlyOwner public { selfdestruct(owner); } - function destroyAndSend(address _recipient) onlyOwner { + function destroyAndSend(address _recipient) onlyOwner public { selfdestruct(_recipient); } } diff --git a/contracts/lifecycle/Migrations.sol b/contracts/lifecycle/Migrations.sol index d5b053087..f389cca99 100644 --- a/contracts/lifecycle/Migrations.sol +++ b/contracts/lifecycle/Migrations.sol @@ -10,11 +10,11 @@ import '../ownership/Ownable.sol'; contract Migrations is Ownable { uint256 public lastCompletedMigration; - function setCompleted(uint256 completed) onlyOwner { + function setCompleted(uint256 completed) onlyOwner public { lastCompletedMigration = completed; } - function upgrade(address newAddress) onlyOwner { + function upgrade(address newAddress) onlyOwner public { Migrations upgraded = Migrations(newAddress); upgraded.setCompleted(lastCompletedMigration); } diff --git a/contracts/lifecycle/Pausable.sol b/contracts/lifecycle/Pausable.sol index ca5f435d6..9c3cc307b 100644 --- a/contracts/lifecycle/Pausable.sol +++ b/contracts/lifecycle/Pausable.sol @@ -34,7 +34,7 @@ contract Pausable is Ownable { /** * @dev called by the owner to pause, triggers stopped state */ - function pause() onlyOwner whenNotPaused { + function pause() onlyOwner whenNotPaused public { paused = true; Pause(); } @@ -42,7 +42,7 @@ contract Pausable is Ownable { /** * @dev called by the owner to unpause, returns to normal state */ - function unpause() onlyOwner whenPaused { + function unpause() onlyOwner whenPaused public { paused = false; Unpause(); } diff --git a/contracts/lifecycle/TokenDestructible.sol b/contracts/lifecycle/TokenDestructible.sol index a6e028c10..e29d69b63 100644 --- a/contracts/lifecycle/TokenDestructible.sol +++ b/contracts/lifecycle/TokenDestructible.sol @@ -21,7 +21,7 @@ contract TokenDestructible is Ownable { * @notice The called token contracts could try to re-enter this contract. Only supply token contracts you trust. */ - function destroy(address[] tokens) onlyOwner { + function destroy(address[] tokens) onlyOwner public { // Transfer tokens to owner for(uint256 i = 0; i < tokens.length; i++) { diff --git a/contracts/ownership/Claimable.sol b/contracts/ownership/Claimable.sol index 4f6ea1a86..321b9aa68 100644 --- a/contracts/ownership/Claimable.sol +++ b/contracts/ownership/Claimable.sol @@ -24,14 +24,14 @@ contract Claimable is Ownable { * @dev Allows the current owner to set the pendingOwner address. * @param newOwner The address to transfer ownership to. */ - function transferOwnership(address newOwner) onlyOwner { + function transferOwnership(address newOwner) onlyOwner public { pendingOwner = newOwner; } /** * @dev Allows the pendingOwner address to finalize the transfer. */ - function claimOwnership() onlyPendingOwner { + function claimOwnership() onlyPendingOwner public { OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; pendingOwner = 0x0; diff --git a/contracts/ownership/Contactable.sol b/contracts/ownership/Contactable.sol index 16b14c1ef..ed0c50dcd 100644 --- a/contracts/ownership/Contactable.sol +++ b/contracts/ownership/Contactable.sol @@ -15,7 +15,7 @@ contract Contactable is Ownable{ * @dev Allows the owner to set a string with their contact information. * @param info The contact information to attach to the contract. */ - function setContactInformation(string info) onlyOwner{ + function setContactInformation(string info) onlyOwner public { contactInformation = info; } } diff --git a/contracts/ownership/DelayedClaimable.sol b/contracts/ownership/DelayedClaimable.sol index b3ef96dbf..329cd5252 100644 --- a/contracts/ownership/DelayedClaimable.sol +++ b/contracts/ownership/DelayedClaimable.sol @@ -20,7 +20,7 @@ contract DelayedClaimable is Claimable { * @param _start The earliest time ownership can be claimed. * @param _end The latest time ownership can be claimed. */ - function setLimits(uint256 _start, uint256 _end) onlyOwner { + function setLimits(uint256 _start, uint256 _end) onlyOwner public { require(_start <= _end); end = _end; start = _start; @@ -31,7 +31,7 @@ contract DelayedClaimable is Claimable { * @dev Allows the pendingOwner address to finalize the transfer, as long as it is called within * the specified start and end time. */ - function claimOwnership() onlyPendingOwner { + function claimOwnership() onlyPendingOwner public { require((block.number <= end) && (block.number >= start)); OwnershipTransferred(owner, pendingOwner); owner = pendingOwner; diff --git a/contracts/ownership/Ownable.sol b/contracts/ownership/Ownable.sol index 1871efe22..307ecee46 100644 --- a/contracts/ownership/Ownable.sol +++ b/contracts/ownership/Ownable.sol @@ -35,7 +35,7 @@ contract Ownable { * @dev Allows the current owner to transfer control of the contract to a newOwner. * @param newOwner The address to transfer ownership to. */ - function transferOwnership(address newOwner) onlyOwner { + function transferOwnership(address newOwner) onlyOwner public { require(newOwner != address(0)); OwnershipTransferred(owner, newOwner); owner = newOwner; diff --git a/contracts/payment/PullPayment.sol b/contracts/payment/PullPayment.sol index d85f0a576..4a0924fa7 100644 --- a/contracts/payment/PullPayment.sol +++ b/contracts/payment/PullPayment.sol @@ -28,7 +28,7 @@ contract PullPayment { /** * @dev withdraw accumulated balance, called by payee. */ - function withdrawPayments() { + function withdrawPayments() public { address payee = msg.sender; uint256 payment = payments[payee]; diff --git a/contracts/token/BasicToken.sol b/contracts/token/BasicToken.sol index d452c70e6..7df250013 100644 --- a/contracts/token/BasicToken.sol +++ b/contracts/token/BasicToken.sol @@ -19,7 +19,7 @@ contract BasicToken is ERC20Basic { * @param _to The address to transfer to. * @param _value The amount to be transferred. */ - function transfer(address _to, uint256 _value) returns (bool) { + function transfer(address _to, uint256 _value) public returns (bool) { require(_to != address(0)); // SafeMath.sub will throw if there is not enough balance. @@ -34,7 +34,7 @@ contract BasicToken is ERC20Basic { * @param _owner The address to query the the balance of. * @return An uint256 representing the amount owned by the passed address. */ - function balanceOf(address _owner) constant returns (uint256 balance) { + function balanceOf(address _owner) public constant returns (uint256 balance) { return balances[_owner]; } diff --git a/contracts/token/ERC20.sol b/contracts/token/ERC20.sol index 9516ba82d..ca36d737b 100644 --- a/contracts/token/ERC20.sol +++ b/contracts/token/ERC20.sol @@ -9,8 +9,8 @@ import './ERC20Basic.sol'; * @dev see https://github.com/ethereum/EIPs/issues/20 */ contract ERC20 is ERC20Basic { - function allowance(address owner, address spender) constant returns (uint256); - function transferFrom(address from, address to, uint256 value) returns (bool); - function approve(address spender, uint256 value) returns (bool); + function allowance(address owner, address spender) public constant returns (uint256); + function transferFrom(address from, address to, uint256 value) public returns (bool); + function approve(address spender, uint256 value) public returns (bool); event Approval(address indexed owner, address indexed spender, uint256 value); } diff --git a/contracts/token/ERC20Basic.sol b/contracts/token/ERC20Basic.sol index 07ab02f0b..76e0704ba 100644 --- a/contracts/token/ERC20Basic.sol +++ b/contracts/token/ERC20Basic.sol @@ -8,7 +8,7 @@ pragma solidity ^0.4.11; */ contract ERC20Basic { uint256 public totalSupply; - function balanceOf(address who) constant returns (uint256); - function transfer(address to, uint256 value) returns (bool); + function balanceOf(address who) public constant returns (uint256); + function transfer(address to, uint256 value) public returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); } diff --git a/contracts/token/LimitedTransferToken.sol b/contracts/token/LimitedTransferToken.sol index c08976b80..50e3f1661 100644 --- a/contracts/token/LimitedTransferToken.sol +++ b/contracts/token/LimitedTransferToken.sol @@ -32,7 +32,7 @@ contract LimitedTransferToken is ERC20 { * @param _to The address that will recieve the tokens. * @param _value The amount of tokens to be transferred. */ - function transfer(address _to, uint256 _value) canTransfer(msg.sender, _value) returns (bool) { + function transfer(address _to, uint256 _value) canTransfer(msg.sender, _value) public returns (bool) { return super.transfer(_to, _value); } @@ -42,7 +42,7 @@ contract LimitedTransferToken is ERC20 { * @param _to The address that will recieve the tokens. * @param _value The amount of tokens to be transferred. */ - function transferFrom(address _from, address _to, uint256 _value) canTransfer(_from, _value) returns (bool) { + function transferFrom(address _from, address _to, uint256 _value) canTransfer(_from, _value) public returns (bool) { return super.transferFrom(_from, _to, _value); } @@ -51,7 +51,7 @@ contract LimitedTransferToken is ERC20 { * @dev Overwriting transferableTokens(address holder, uint64 time) is the way to provide the * specific logic for limiting token transferability for a holder over time. */ - function transferableTokens(address holder, uint64 time) constant public returns (uint256) { + function transferableTokens(address holder, uint64 time) public constant returns (uint256) { return balanceOf(holder); } } diff --git a/contracts/token/MintableToken.sol b/contracts/token/MintableToken.sol index 697551d3d..234def478 100644 --- a/contracts/token/MintableToken.sol +++ b/contracts/token/MintableToken.sol @@ -31,7 +31,7 @@ contract MintableToken is StandardToken, Ownable { * @param _amount The amount of tokens to mint. * @return A boolean that indicates if the operation was successful. */ - function mint(address _to, uint256 _amount) onlyOwner canMint returns (bool) { + function mint(address _to, uint256 _amount) onlyOwner canMint public returns (bool) { totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); Mint(_to, _amount); @@ -43,7 +43,7 @@ contract MintableToken is StandardToken, Ownable { * @dev Function to stop minting new tokens. * @return True if the operation was successful. */ - function finishMinting() onlyOwner returns (bool) { + function finishMinting() onlyOwner public returns (bool) { mintingFinished = true; MintFinished(); return true; diff --git a/contracts/token/PausableToken.sol b/contracts/token/PausableToken.sol index 32a4afbf0..bf52e6b9e 100644 --- a/contracts/token/PausableToken.sol +++ b/contracts/token/PausableToken.sol @@ -11,11 +11,11 @@ import '../lifecycle/Pausable.sol'; contract PausableToken is StandardToken, Pausable { - function transfer(address _to, uint256 _value) whenNotPaused returns (bool) { + function transfer(address _to, uint256 _value) whenNotPaused public returns (bool) { return super.transfer(_to, _value); } - function transferFrom(address _from, address _to, uint256 _value) whenNotPaused returns (bool) { + function transferFrom(address _from, address _to, uint256 _value) whenNotPaused public returns (bool) { return super.transferFrom(_from, _to, _value); } } diff --git a/contracts/token/StandardToken.sol b/contracts/token/StandardToken.sol index 9ed357890..6f4537d4e 100644 --- a/contracts/token/StandardToken.sol +++ b/contracts/token/StandardToken.sol @@ -23,7 +23,7 @@ contract StandardToken is ERC20, BasicToken { * @param _to address The address which you want to transfer to * @param _value uint256 the amount of tokens to be transferred */ - function transferFrom(address _from, address _to, uint256 _value) returns (bool) { + function transferFrom(address _from, address _to, uint256 _value) public returns (bool) { require(_to != address(0)); var _allowance = allowed[_from][msg.sender]; @@ -43,7 +43,7 @@ contract StandardToken is ERC20, BasicToken { * @param _spender The address which will spend the funds. * @param _value The amount of tokens to be spent. */ - function approve(address _spender, uint256 _value) returns (bool) { + function approve(address _spender, uint256 _value) public returns (bool) { // To change the approve amount you first have to reduce the addresses` // allowance to zero by calling `approve(_spender, 0)` if it is not @@ -62,7 +62,7 @@ contract StandardToken is ERC20, BasicToken { * @param _spender address The address which will spend the funds. * @return A uint256 specifying the amount of tokens still available for the spender. */ - function allowance(address _owner, address _spender) constant returns (uint256 remaining) { + function allowance(address _owner, address _spender) public constant returns (uint256 remaining) { return allowed[_owner][_spender]; } diff --git a/contracts/token/TokenTimelock.sol b/contracts/token/TokenTimelock.sol index 86dc3b260..1618e3fe7 100644 --- a/contracts/token/TokenTimelock.sol +++ b/contracts/token/TokenTimelock.sol @@ -13,13 +13,13 @@ contract TokenTimelock { using SafeERC20 for ERC20Basic; // ERC20 basic token contract being held - ERC20Basic token; + ERC20Basic public token; // beneficiary of tokens after they are released - address beneficiary; + address public beneficiary; // timestamp when token release is enabled - uint64 releaseTime; + uint64 public releaseTime; function TokenTimelock(ERC20Basic _token, address _beneficiary, uint64 _releaseTime) { require(_releaseTime > now); @@ -32,7 +32,7 @@ contract TokenTimelock { * @notice Transfers tokens held by timelock to beneficiary. * Deprecated: please use TokenTimelock#release instead. */ - function claim() { + function claim() public { require(msg.sender == beneficiary); release(); } @@ -40,7 +40,7 @@ contract TokenTimelock { /** * @notice Transfers tokens held by timelock to beneficiary. */ - function release() { + function release() public { require(now >= releaseTime); uint256 amount = token.balanceOf(this); diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index be50de75a..f0f99a23b 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -99,7 +99,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @param time uint64 The specific time. * @return An uint256 representing a holder's total amount of transferable tokens. */ - function transferableTokens(address holder, uint64 time) constant public returns (uint256) { + function transferableTokens(address holder, uint64 time) public constant returns (uint256) { uint256 grantIndex = tokenGrantsCount(holder); if (grantIndex == 0) return super.transferableTokens(holder, time); // shortcut for holder without grants @@ -123,7 +123,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @param _holder The holder of the grants. * @return A uint256 representing the total amount of grants. */ - function tokenGrantsCount(address _holder) constant returns (uint256 index) { + function tokenGrantsCount(address _holder) public constant returns (uint256 index) { return grants[_holder].length; } @@ -156,7 +156,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { uint256 time, uint256 start, uint256 cliff, - uint256 vesting) constant returns (uint256) + uint256 vesting) public constant returns (uint256) { // Shortcuts for before cliff and after vesting cases. if (time < cliff) return 0; @@ -185,7 +185,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @return Returns all the values that represent a TokenGrant(address, value, start, cliff, * revokability, burnsOnRevoke, and vesting) plus the vested value at the current time. */ - function tokenGrant(address _holder, uint256 _grantId) constant returns (address granter, uint256 value, uint256 vested, uint64 start, uint64 cliff, uint64 vesting, bool revokable, bool burnsOnRevoke) { + function tokenGrant(address _holder, uint256 _grantId) public constant returns (address granter, uint256 value, uint256 vested, uint64 start, uint64 cliff, uint64 vesting, bool revokable, bool burnsOnRevoke) { TokenGrant storage grant = grants[_holder][_grantId]; granter = grant.granter; @@ -231,7 +231,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @param holder address The address of the holder * @return An uint256 representing the date of the last transferable tokens. */ - function lastTokenIsTransferableDate(address holder) constant public returns (uint64 date) { + function lastTokenIsTransferableDate(address holder) public constant returns (uint64 date) { date = uint64(now); uint256 grantIndex = grants[holder].length; for (uint256 i = 0; i < grantIndex; i++) { From b069827bad5869ad9914772b45d5b405160079ae Mon Sep 17 00:00:00 2001 From: sot528 Date: Tue, 19 Sep 2017 01:57:50 +0900 Subject: [PATCH 160/160] fix typo. --- contracts/Bounty.sol | 2 +- contracts/DayLimit.sol | 2 +- contracts/crowdsale/CappedCrowdsale.sol | 2 +- contracts/crowdsale/FinalizableCrowdsale.sol | 4 ++-- contracts/examples/SimpleToken.sol | 2 +- contracts/ownership/CanReclaimToken.sol | 2 +- contracts/token/LimitedTransferToken.sol | 4 ++-- contracts/token/VestedToken.sol | 6 +++--- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/contracts/Bounty.sol b/contracts/Bounty.sol index 367e130f0..1d00ca917 100644 --- a/contracts/Bounty.sol +++ b/contracts/Bounty.sol @@ -16,7 +16,7 @@ contract Bounty is PullPayment, Destructible { event TargetCreated(address createdAddress); /** - * @dev Fallback function allowing the contract to recieve funds, if they haven't already been claimed. + * @dev Fallback function allowing the contract to receive funds, if they haven't already been claimed. */ function() payable { require(!claimed); diff --git a/contracts/DayLimit.sol b/contracts/DayLimit.sol index bbadcaabd..6efe8b661 100644 --- a/contracts/DayLimit.sol +++ b/contracts/DayLimit.sol @@ -38,7 +38,7 @@ contract DayLimit { /** * @dev Checks to see if there is enough resource to spend today. If true, the resource may be expended. * @param _value uint256 representing the amount of resource to spend. - * @return A boolean that is True if the resource was spended and false otherwise. + * @return A boolean that is True if the resource was spent and false otherwise. */ function underLimit(uint256 _value) internal returns (bool) { // reset the spend limit if we're on a different day to last time. diff --git a/contracts/crowdsale/CappedCrowdsale.sol b/contracts/crowdsale/CappedCrowdsale.sol index f4f864e93..a9c54ac90 100644 --- a/contracts/crowdsale/CappedCrowdsale.sol +++ b/contracts/crowdsale/CappedCrowdsale.sol @@ -5,7 +5,7 @@ import './Crowdsale.sol'; /** * @title CappedCrowdsale - * @dev Extension of Crowsdale with a max amount of funds raised + * @dev Extension of Crowdsale with a max amount of funds raised */ contract CappedCrowdsale is Crowdsale { using SafeMath for uint256; diff --git a/contracts/crowdsale/FinalizableCrowdsale.sol b/contracts/crowdsale/FinalizableCrowdsale.sol index f07d3a96a..49a291c4b 100644 --- a/contracts/crowdsale/FinalizableCrowdsale.sol +++ b/contracts/crowdsale/FinalizableCrowdsale.sol @@ -6,7 +6,7 @@ import './Crowdsale.sol'; /** * @title FinalizableCrowdsale - * @dev Extension of Crowsdale where an owner can do extra work + * @dev Extension of Crowdsale where an owner can do extra work * after finishing. */ contract FinalizableCrowdsale is Crowdsale, Ownable { @@ -31,7 +31,7 @@ contract FinalizableCrowdsale is Crowdsale, Ownable { } /** - * @dev Can be overriden to add finalization logic. The overriding function + * @dev Can be overridden to add finalization logic. The overriding function * should call super.finalization() to ensure the chain of finalization is * executed entirely. */ diff --git a/contracts/examples/SimpleToken.sol b/contracts/examples/SimpleToken.sol index 0e24d4ace..f0ad644db 100644 --- a/contracts/examples/SimpleToken.sol +++ b/contracts/examples/SimpleToken.sol @@ -19,7 +19,7 @@ contract SimpleToken is StandardToken { uint256 public constant INITIAL_SUPPLY = 10000 * (10 ** uint256(decimals)); /** - * @dev Contructor that gives msg.sender all of existing tokens. + * @dev Constructor that gives msg.sender all of existing tokens. */ function SimpleToken() { totalSupply = INITIAL_SUPPLY; diff --git a/contracts/ownership/CanReclaimToken.sol b/contracts/ownership/CanReclaimToken.sol index 2d03fab30..d26212df9 100644 --- a/contracts/ownership/CanReclaimToken.sol +++ b/contracts/ownership/CanReclaimToken.sol @@ -7,7 +7,7 @@ import "../token/SafeERC20.sol"; /** * @title Contracts that should be able to recover tokens * @author SylTi - * @dev This allow a contract to recover any ERC20 token received in a contract by transfering the balance to the contract owner. + * @dev This allow a contract to recover any ERC20 token received in a contract by transferring the balance to the contract owner. * This will prevent any accidental loss of tokens. */ contract CanReclaimToken is Ownable { diff --git a/contracts/token/LimitedTransferToken.sol b/contracts/token/LimitedTransferToken.sol index 50e3f1661..408e0797d 100644 --- a/contracts/token/LimitedTransferToken.sol +++ b/contracts/token/LimitedTransferToken.sol @@ -29,7 +29,7 @@ contract LimitedTransferToken is ERC20 { /** * @dev Checks modifier and allows transfer if tokens are not locked. - * @param _to The address that will recieve the tokens. + * @param _to The address that will receive the tokens. * @param _value The amount of tokens to be transferred. */ function transfer(address _to, uint256 _value) canTransfer(msg.sender, _value) public returns (bool) { @@ -39,7 +39,7 @@ contract LimitedTransferToken is ERC20 { /** * @dev Checks modifier and allows transfer if tokens are not locked. * @param _from The address that will send the tokens. - * @param _to The address that will recieve the tokens. + * @param _to The address that will receive the tokens. * @param _value The amount of tokens to be transferred. */ function transferFrom(address _from, address _to, uint256 _value) canTransfer(_from, _value) public returns (bool) { diff --git a/contracts/token/VestedToken.sol b/contracts/token/VestedToken.sol index f0f99a23b..8b9dd94bc 100644 --- a/contracts/token/VestedToken.sol +++ b/contracts/token/VestedToken.sol @@ -179,7 +179,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { } /** - * @dev Get all information about a specifc grant. + * @dev Get all information about a specific grant. * @param _holder The address which will have its tokens revoked. * @param _grantId The id of the token grant. * @return Returns all the values that represent a TokenGrant(address, value, start, cliff, @@ -219,7 +219,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { * @dev Calculate the amount of non vested tokens at a specific time. * @param grant TokenGrant The grant to be checked. * @param time uint64 The time to be checked - * @return An uint256 representing the amount of non vested tokens of a specifc grant on the + * @return An uint256 representing the amount of non vested tokens of a specific grant on the * passed time frame. */ function nonVestedTokens(TokenGrant grant, uint64 time) private constant returns (uint256) { @@ -227,7 +227,7 @@ contract VestedToken is StandardToken, LimitedTransferToken { } /** - * @dev Calculate the date when the holder can trasfer all its tokens + * @dev Calculate the date when the holder can transfer all its tokens * @param holder address The address of the holder * @return An uint256 representing the date of the last transferable tokens. */