gittoken-analytics
Version:
Analytics Processor for GitToken Events
71 lines (37 loc) • 67.1 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _bluebird = require('bluebird');
var _bluebird2 = _interopRequireDefault(_bluebird);
var _web = require('web3');
var _web2 = _interopRequireDefault(_web);
var _mysql = require('mysql');
var _mysql2 = _interopRequireDefault(_mysql);
var _updateTokenInflationRate = require('./updateTokenInflationRate');
var _updateTokenInflationRate2 = _interopRequireDefault(_updateTokenInflationRate);
var _updateInflationRateAverage = require('./updateInflationRateAverage');
var _updateInflationRateAverage2 = _interopRequireDefault(_updateInflationRateAverage);
var _updateLeaderboard = require('./updateLeaderboard');
var _updateLeaderboard2 = _interopRequireDefault(_updateLeaderboard);
var _updateTotalSupply = require('./updateTotalSupply');
var _updateTotalSupply2 = _interopRequireDefault(_updateTotalSupply);
var _updateContributionFrequency = require('./updateContributionFrequency');
var _updateContributionFrequency2 = _interopRequireDefault(_updateContributionFrequency);
var _updateSummaryStatistics = require('./updateSummaryStatistics');
var _updateSummaryStatistics2 = _interopRequireDefault(_updateSummaryStatistics);
var _saveContributionEvent = require('./saveContributionEvent');
var _saveContributionEvent2 = _interopRequireDefault(_saveContributionEvent);
var _updateRewardTypeStats = require('./updateRewardTypeStats');
var _updateRewardTypeStats2 = _interopRequireDefault(_updateRewardTypeStats);
var _updateUserTokenCreation = require('./updateUserTokenCreation');
var _updateUserTokenCreation2 = _interopRequireDefault(_updateUserTokenCreation);
var _milestoneCreated = require('./milestoneCreated');
var _milestoneCreated2 = _interopRequireDefault(_milestoneCreated);
var _milestoneCompleted = require('./milestoneCompleted');
var _milestoneCompleted2 = _interopRequireDefault(_milestoneCompleted);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
/* babel-plugin-inline-import 'gittoken-contracts/build/contracts/GitToken.json' */var GitTokenContract = '{\n "contract_name": "GitToken",\n "abi": [\n {\n "constant": false,\n "inputs": [\n {\n "name": "_initialPrice",\n "type": "uint256"\n },\n {\n "name": "_delay",\n "type": "uint256"\n },\n {\n "name": "_tokenLimitFactor",\n "type": "uint256"\n },\n {\n "name": "_lockTokens",\n "type": "bool"\n }\n ],\n "name": "initializeAuction",\n "outputs": [\n {\n "name": "",\n "type": "bool"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [],\n "name": "name",\n "outputs": [\n {\n "name": "_name",\n "type": "string"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": false,\n "inputs": [\n {\n "name": "_spender",\n "type": "address"\n },\n {\n "name": "_value",\n "type": "uint256"\n }\n ],\n "name": "approve",\n "outputs": [\n {\n "name": "",\n "type": "bool"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [],\n "name": "totalSupply",\n "outputs": [\n {\n "name": "_supply",\n "type": "uint256"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [\n {\n "name": "_username",\n "type": "string"\n }\n ],\n "name": "getContributorAddress",\n "outputs": [\n {\n "name": "_contributorAddress",\n "type": "address"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": false,\n "inputs": [\n {\n "name": "_from",\n "type": "address"\n },\n {\n "name": "_to",\n "type": "address"\n },\n {\n "name": "_value",\n "type": "uint256"\n }\n ],\n "name": "transferFrom",\n "outputs": [\n {\n "name": "",\n "type": "bool"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [],\n "name": "organization",\n "outputs": [\n {\n "name": "_organization",\n "type": "string"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [],\n "name": "decimals",\n "outputs": [\n {\n "name": "_decimals",\n "type": "uint256"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [],\n "name": "getTokenLockUntilDate",\n "outputs": [\n {\n "name": "_lockedUntil",\n "type": "uint256"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [\n {\n "name": "_contributorAddress",\n "type": "address"\n }\n ],\n "name": "getContributorUsername",\n "outputs": [\n {\n "name": "_username",\n "type": "string"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": false,\n "inputs": [\n {\n "name": "_rewardValue",\n "type": "uint256"\n },\n {\n "name": "_rewardType",\n "type": "string"\n }\n ],\n "name": "setRewardValue",\n "outputs": [\n {\n "name": "",\n "type": "bool"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [\n {\n "name": "",\n "type": "address"\n }\n ],\n "name": "owner",\n "outputs": [\n {\n "name": "",\n "type": "bool"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [\n {\n "name": "_holder",\n "type": "address"\n }\n ],\n "name": "balanceOf",\n "outputs": [\n {\n "name": "_balance",\n "type": "uint256"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [\n {\n "name": "_username",\n "type": "string"\n }\n ],\n "name": "getUnclaimedRewards",\n "outputs": [\n {\n "name": "_value",\n "type": "uint256"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [\n {\n "name": "_rewardType",\n "type": "string"\n },\n {\n "name": "_reservedType",\n "type": "string"\n }\n ],\n "name": "getRewardDetails",\n "outputs": [\n {\n "name": "_rewardValue",\n "type": "uint256"\n },\n {\n "name": "_reservedValue",\n "type": "uint256"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [],\n "name": "symbol",\n "outputs": [\n {\n "name": "_symbol",\n "type": "string"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": false,\n "inputs": [\n {\n "name": "_to",\n "type": "address"\n },\n {\n "name": "_value",\n "type": "uint256"\n }\n ],\n "name": "transfer",\n "outputs": [\n {\n "name": "",\n "type": "bool"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": false,\n "inputs": [\n {\n "name": "_auctionRound",\n "type": "uint256"\n },\n {\n "name": "_exchangeRate",\n "type": "uint256"\n }\n ],\n "name": "executeBid",\n "outputs": [\n {\n "name": "",\n "type": "bool"\n }\n ],\n "payable": true,\n "type": "function"\n },\n {\n "constant": false,\n "inputs": [\n {\n "name": "_reservedValue",\n "type": "uint256"\n },\n {\n "name": "_rewardType",\n "type": "string"\n },\n {\n "name": "_reservedType",\n "type": "string"\n }\n ],\n "name": "setReservedValue",\n "outputs": [\n {\n "name": "",\n "type": "bool"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": false,\n "inputs": [\n {\n "name": "_contributor",\n "type": "address"\n },\n {\n "name": "_username",\n "type": "string"\n }\n ],\n "name": "verifyContributor",\n "outputs": [\n {\n "name": "",\n "type": "bool"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [\n {\n "name": "_owner",\n "type": "address"\n },\n {\n "name": "_spender",\n "type": "address"\n }\n ],\n "name": "allowance",\n "outputs": [\n {\n "name": "_allowance",\n "type": "uint256"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": false,\n "inputs": [\n {\n "name": "_username",\n "type": "string"\n },\n {\n "name": "_rewardType",\n "type": "string"\n },\n {\n "name": "_reservedType",\n "type": "string"\n },\n {\n "name": "_rewardBonus",\n "type": "uint256"\n },\n {\n "name": "_deliveryID",\n "type": "string"\n }\n ],\n "name": "rewardContributor",\n "outputs": [\n {\n "name": "",\n "type": "bool"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": true,\n "inputs": [\n {\n "name": "auctionRound",\n "type": "uint256"\n }\n ],\n "name": "getAuctionDetails",\n "outputs": [\n {\n "name": "",\n "type": "uint256[11]"\n },\n {\n "name": "",\n "type": "uint256[]"\n },\n {\n "name": "",\n "type": "uint256[]"\n }\n ],\n "payable": false,\n "type": "function"\n },\n {\n "constant": false,\n "inputs": [\n {\n "name": "newOwner",\n "type": "address"\n }\n ],\n "name": "transferOwnership",\n "outputs": [],\n "payable": false,\n "type": "function"\n },\n {\n "inputs": [\n {\n "name": "_contributor",\n "type": "address"\n },\n {\n "name": "_name",\n "type": "string"\n },\n {\n "name": "_username",\n "type": "string"\n },\n {\n "name": "_organization",\n "type": "string"\n },\n {\n "name": "_symbol",\n "type": "string"\n },\n {\n "name": "_decimals",\n "type": "uint256"\n }\n ],\n "payable": false,\n "type": "constructor"\n },\n {\n "payable": false,\n "type": "fallback"\n },\n {\n "anonymous": false,\n "inputs": [\n {\n "indexed": true,\n "name": "owner",\n "type": "address"\n },\n {\n "indexed": true,\n "name": "spender",\n "type": "address"\n },\n {\n "indexed": false,\n "name": "value",\n "type": "uint256"\n }\n ],\n "name": "Approval",\n "type": "event"\n },\n {\n "anonymous": false,\n "inputs": [\n {\n "indexed": true,\n "name": "from",\n "type": "address"\n },\n {\n "indexed": true,\n "name": "to",\n "type": "address"\n },\n {\n "indexed": false,\n "name": "value",\n "type": "uint256"\n }\n ],\n "name": "Transfer",\n "type": "event"\n },\n {\n "anonymous": false,\n "inputs": [\n {\n "indexed": true,\n "name": "contributor",\n "type": "address"\n },\n {\n "indexed": false,\n "name": "username",\n "type": "string"\n },\n {\n "indexed": false,\n "name": "value",\n "type": "uint256"\n },\n {\n "indexed": false,\n "name": "reservedValue",\n "type": "uint256"\n },\n {\n "indexed": false,\n "name": "date",\n "type": "uint256"\n },\n {\n "indexed": false,\n "name": "rewardType",\n "type": "string"\n }\n ],\n "name": "Contribution",\n "type": "event"\n },\n {\n "anonymous": false,\n "inputs": [\n {\n "indexed": true,\n "name": "contributor",\n "type": "address"\n },\n {\n "indexed": false,\n "name": "username",\n "type": "string"\n },\n {\n "indexed": false,\n "name": "date",\n "type": "uint256"\n }\n ],\n "name": "ContributorVerified",\n "type": "event"\n },\n {\n "anonymous": false,\n "inputs": [\n {\n "indexed": false,\n "name": "rewardType",\n "type": "string"\n },\n {\n "indexed": false,\n "name": "reservedType",\n "type": "string"\n },\n {\n "indexed": false,\n "name": "value",\n "type": "uint256"\n },\n {\n "indexed": false,\n "name": "date",\n "type": "uint256"\n }\n ],\n "name": "RewardValueSet",\n "type": "event"\n },\n {\n "anonymous": false,\n "inputs": [\n {\n "indexed": false,\n "name": "auctionDetails",\n "type": "uint256[8]"\n }\n ],\n "name": "Auction",\n "type": "event"\n },\n {\n "anonymous": false,\n "inputs": [\n {\n "indexed": false,\n "name": "bidDetails",\n "type": "uint256[9]"\n }\n ],\n "name": "AuctionBid",\n "type": "event"\n }\n ],\n "unlinked_binary": "0x606060405234156200001057600080fd5b60405162003fc938038062003fc983398101604052808051919060200180518201919060200180518201919060200180518201919060200180518201919060200180519150505b5b600160a060020a0333166000908152602081905260409020805460ff191660011790555b600160a060020a038616156200015457600160a060020a038616600090815260208181526040808320805460ff19166001179055600b9091529020848051620000ca92916020019062000c55565b5085600c856040518082805190602001908083835b602083106200010157805182525b601f199092019160209182019101620000df565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040519081900390208054600160a060020a031916600160a060020a03929092169190911790555b600060015560038580516200016e92916020019062000c55565b5060048380516200018492916020019062000c55565b5060058280516200019a92916020019062000c55565b5060028190556000600a6040517f6f7267616e697a6174696f6e00000000000000000000000000000000000000008152600c810191909152602c0160405180910390206040517f6d656d6265725f696e76697465640000000000000000000000000000000000008152600e810191909152602e0160405180910390208190555080600a0a613a980260016009016040517f6f7267616e697a6174696f6e00000000000000000000000000000000000000008152600c810191909152602c0160405180910390206040517f6d656d6265725f616464656400000000000000000000000000000000000000008152600c810191909152602c01604051908190039020556109c4600a82900a0260096040517f70696e6700000000000000000000000000000000000000000000000000000000815260048101919091526024016040519081900390205560fa600a82900a0260096040517f636f6d6d69745f636f6d6d656e740000000000000000000000000000000000008152600e810191909152602e01604051908190039020556109c4600a82900a0260096040517f63726561746500000000000000000000000000000000000000000000000000008152600681019190915260260160405190819003902055600060096040517f64656c65746500000000000000000000000000000000000000000000000000008152600681019190915260260160405190819003902055611388600a82900a0260096040517f6465706c6f796d656e74000000000000000000000000000000000000000000008152600a810191909152602a01604051908190039020556064600a82900a0260096040517f6465706c6f796d656e745f7374617475730000000000000000000000000000008152601181019190915260310160405190819003902055611388600a82900a0260096040517f666f726b0000000000000000000000000000000000000000000000000000000081526004810191909152602401604051908190039020556064600a82900a0260096040517f676f6c6c756d0000000000000000000000000000000000000000000000000000815260068101919091526026016040519081900390205560fa600a82900a0260096040517f696e7374616c6c6174696f6e00000000000000000000000000000000000000008152600c810191909152602c01604051908190039020556103e8600a82900a0260096040517f696e7374616c6c6174696f6e5f7265706f7369746f7269657300000000000000815260198101919091526039016040519081900390205560fa600a82900a0260096040517f69737375655f636f6d6d656e74000000000000000000000000000000000000008152600d810191909152602d01604051908190039020556101f4600a82900a0260096040517f697373756573000000000000000000000000000000000000000000000000000081526006810191909152602601604051908190039020556064600a82900a0260096040517f6c6162656c0000000000000000000000000000000000000000000000000000008152600581019190915260250160405190819003902055600060096040517f6d61726b6574706c6163655f707572636861736573000000000000000000000081526015810191909152603501604051908190039020556103e8600a82900a0260096040517f6d656d626572000000000000000000000000000000000000000000000000000081526006810191909152602601604051908190039020556103e8600a82900a0260096040517f6d656d62657273686970000000000000000000000000000000000000000000008152600a810191909152602a016040519081900390205560fa600a82900a0260096040517f6d696c6573746f6e65000000000000000000000000000000000000000000000081526009810191909152602901604051908190039020556103e8600a82900a0260096040517f6f7267616e697a6174696f6e00000000000000000000000000000000000000008152600c810191909152602c0160405190819003902055600060096040517f6f72675f626c6f636b000000000000000000000000000000000000000000000081526009810191909152602901604051908190039020556101f4600a82900a0260096040517f706167655f6275696c64000000000000000000000000000000000000000000008152600a810191909152602a016040519081900390205560fa600a82900a0260096040517f70726f6a6563745f6361726400000000000000000000000000000000000000008152600c810191909152602c01604051908190039020556032600a82900a0260096040517f70726f6a6563745f636f6c756d6e0000000000000000000000000000000000008152600e810191909152602e01604051908190039020556103e8600a82900a0260096040517f70726f6a656374000000000000000000000000000000000000000000000000008152600781019190915260270160405190819003902055612710600a82900a0260096040517f7075626c69630000000000000000000000000000000000000000000000000000815260068101919091526026016040519081900390205560fa600a82900a0260096040517f70756c6c5f726571756573745f7265766965775f636f6d6d656e7400000000008152601b810191909152603b016040519081900390205560fa600a82900a0260096040517f70756c6c5f726571756573745f7265766965770000000000000000000000000081526013810191909152603301604051908190039020556109c4600a82900a0260096040517f70756c6c5f7265717565737400000000000000000000000000000000000000008152600c810191909152602c01604051908190039020556103e8600a82900a0260096040517f707573680000000000000000000000000000000000000000000000000000000081526004810191909152602401604051908190039020556109c4600a82900a0260096040517f7265706f7369746f7279000000000000000000000000000000000000000000008152600a810191909152602a0160405190819003902055611388600a82900a0260096040517f72656c6561736500000000000000000000000000000000000000000000000000815260078101919091526027016040519081900390205560c8600a82900a0260096040517f737461747573000000000000000000000000000000000000000000000000000081526006810191909152602601604051908190039020556107d0600a82900a0260096040517f7465616d0000000000000000000000000000000000000000000000000000000081526004810191909152602401604051908190039020556107d0600a82900a0260096040517f7465616d5f61646400000000000000000000000000000000000000000000000081526008810191909152602801604051908190039020556064600a82900a0260096040517f77617463680000000000000000000000000000000000000000000000000000008152600581019190915260250160405180910390208190555080600a0a619c400260016009016040517f6d696c6573746f6e6500000000000000000000000000000000000000000000008152600981019190915260290160405180910390206040517f636c6f736564000000000000000000000000000000000000000000000000000081526006810191909152602601604051908190039020555b50505050505062000cff565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1062000c9857805160ff191683800117855562000cc8565b8280016001018555821562000cc8579182015b8281111562000cc857825182559160200191906001019062000cab565b5b5062000cd792915062000cdb565b5090565b62000cfc91905b8082111562000cd7576000815560010162000ce2565b5090565b90565b6132ba8062000d0f6000396000f3006060604052361561013b5763ffffffff7c010000000000000000000000000000000000000000000000000000000060003504166302439dde811461015357806306fdde0314610188578063095ea7b31461021357806318160ddd146102495780631e923ded1461026e57806323b872dd146102db57806323bd4d7a14610317578063313ce567146103a257806355d67427146103c757806355ded44d146103ec57806366253c4414610483578063666e1b39146104ed57806370a082311461052057806376500a7e1461055157806392956c1e146105b457806395d89b411461065f578063a9059cbb146106ea578063a9c7c53614610720578063cdf25db314610742578063d85600ca146107ee578063dd62ed3e14610861578063e9dc1a9514610898578063f20e5e35146109cc578063f2fde38b14610aa8575b341561014657600080fd5b6101515b600080fd5b565b005b341561015e57600080fd5b6101746004356024356044356064351515610ac9565b604051901515815260200160405180910390f35b341561019357600080fd5b61019b610b6b565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101d85780820151818401525b6020016101bf565b50505050905090810190601f1680156102055780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561021e57600080fd5b610174600160a060020a0360043516602435610c15565b604051901515815260200160405180910390f35b341561025457600080fd5b61025c610ccb565b60405190815260200160405180910390f35b341561027957600080fd5b6102bf60046024813581810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610cd295505050505050565b604051600160a060020a03909116815260200160405180910390f35b34156102e657600080fd5b610174600160a060020a0360043581169060243516604435610d4d565b604051901515815260200160405180910390f35b341561032257600080fd5b61019b610de1565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101d85780820151818401525b6020016101bf565b50505050905090810190601f1680156102055780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156103ad57600080fd5b61025c610e8b565b60405190815260200160405180910390f35b34156103d257600080fd5b61025c610e92565b60405190815260200160405180910390f35b34156103f757600080fd5b61019b600160a060020a0360043516610e99565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101d85780820151818401525b6020016101bf565b50505050905090810190601f1680156102055780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b341561048e57600080fd5b610174600480359060446024803590810190830135806020601f82018190048102016040519081016040528181529291906020840183838082843750949650610f6a95505050505050565b604051901515815260200160405180910390f35b34156104f857600080fd5b610174600160a060020a03600435166110bf565b604051901515815260200160405180910390f35b341561052b57600080fd5b61025c600160a060020a03600435166110d4565b60405190815260200160405180910390f35b341561055c57600080fd5b61025c60046024813581810190830135806020601f820181900481020160405190810160405281815292919060208401838380828437509496506110f395505050505050565b60405190815260200160405180910390f35b34156105bf57600080fd5b61064760046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061116495505050505050565b60405191825260208201526040908101905180910390f35b341561066a57600080fd5b61019b6112a6565b60405160208082528190810183818151815260200191508051906020019080838360005b838110156101d85780820151818401525b6020016101bf565b50505050905090810190601f1680156102055780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34156106f557600080fd5b610174600160a060020a0360043516602435611350565b604051901515815260200160405180910390f35b6101746004356024356113d0565b604051901515815260200160405180910390f35b341561074d57600080fd5b610174600480359060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061144895505050505050565b604051901515815260200160405180910390f35b34156107f957600080fd5b61017460048035600160a060020a03169060446024803590810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284375094965061165d95505050505050565b604051901515815260200160405180910390f35b341561086c57600080fd5b61025c600160a060020a0360043581169060243516611758565b60405190815260200160405180910390f35b34156108a357600080fd5b61017460046024813581810190830135806020601f8201819004810201604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284378201915050505050509190803590602001909190803590602001908201803590602001908080601f01602080910402602001604051908101604052818152929190602084018383808284375094965061178595505050505050565b604051901515815260200160405180910390f35b34156109d757600080fd5b6109e2600435611aa9565b604051808461016080838360005b83811015610a095780820151818401525b6020016109f0565b505050509050018060200180602001838103835285818151815260200191508051906020019060200280838360005b83811015610a515780820151818401525b602001610a38565b50505050905001838103825284818151815260200191508051906020019060200280838360005b83811015610a915780820151818401525b602001610a78565b505050509050019550505050505060405180910390f35b3415610ab357600080fd5b610151600160a060020a0360043516611c08565b005b600160a060020a03331660009081526020819052604081205460ff161515610af057600080fd5b7ff2c93682ed3c2de57c1a5b8d87987bc473b3c43950036e9b69234c19b24473ea610b2560018787878763ffffffff611c8e16565b604051808261010080838360005b83811015610b4c5780820151818401525b602001610b33565b5050505090500191505060405180910390a15060015b5b949350505050565b610b73613128565b60038054600260001961010060018416150201909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b820191906000526020600020905b815481529060010190602001808311610bed57829003601f168201915b505050505090505b90565b6000600236604414610c2657600080fd5b82158015610c575750600160a060020a033381166000908152600d6020908152604080832093881683529290522054155b1515610c6257600080fd5b600160a060020a033381166000818152600d6020908152604080832094891680845294909152908190208690557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9259086905190815260200160405180910390a35b5b5092915050565b6001545b90565b6000600c826040518082805190602001908083835b60208310610d0757805182525b601f199092019160209182019101610ce7565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a031690505b919050565b6007546000904211610d5e57600080fd5b600336606414610d6d57600080fd5b610d80600186868663ffffffff611f1c16565b1515610d8b57600080fd5b83600160a060020a031685600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405190815260200160405180910390a3600191505b5b505b9392505050565b610de9613128565b60048054600260001961010060018416150201909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b820191906000526020600020905b815481529060010190602001808311610bed57829003601f168201915b505050505090505b90565b6002545b90565b6007545b90565b610ea1613128565b6001600a01600083600160a060020a0316600160a060020a031681526020019081526020016000208054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015610f5d5780601f10610f3257610100808354040283529160200191610f5d565b820191906000526020600020905b815481529060010190602001808311610f4057829003601f168201915b505050505090505b919050565b600160a060020a03331660009081526020819052604081205460ff161515610f9157600080fd5b826009836040518082805190602001908083835b60208310610fc557805182525b601f199092019160209182019101610fa5565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020557fbab878453bea46cf2222f6dd20b3fa8d80dc6ca2b5d4f854173f07227a21e1a6828442604051808060200180602001858152602001848152602001838103835286818151815260200191508051906020019080838360005b8381101561106c5780820151818401525b602001611053565b50505050905090810190601f1680156110995780820380516001836020036101000a031916815260200191505b5092830390525060008152604090810193509150505180910390a15060015b5b92915050565b60006020819052908152604090205460ff1681565b600160a060020a0381166000908152600e60205260409020545b919050565b6000600f826040518082805190602001908083835b6020831061112857805182525b601f199092019160209182019101611108565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405180910390205490505b919050565b6000806009846040518082805190602001908083835b6020831061119a57805182525b601f19909201916020918201910161117a565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600a856040518082805190602001908083835b6020831061120257805182525b601f1990920191602091820191016111e2565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020846040518082805190602001908083835b6020831061126657805182525b601f199092019160209182019101611246565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054915091505b9250929050565b6112ae613128565b60058054600260001961010060018416150201909116046020601f82018190048102016040519081016040528092919081815260200182805460018160011615610100020316600290048015610c0a5780601f10610bdf57610100808354040283529160200191610c0a565b820191906000526020600020905b815481529060010190602001808311610bed57829003601f168201915b505050505090505b90565b600754600090421161136157600080fd5b6113736001848463ffffffff61200116565b151561137e57600080fd5b82600160a060020a031633600160a060020a03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405190815260200160405180910390a35060015b5b92915050565b60007f71e9115058326fa6f488debb25321c912f2e9df24f42a99f4a976822672ffee46114056001858563ffffffff61208916565b604051808261012080838360005b8381101561142c5780820151818401525b602001611413565b5050505090500191505060405180910390a15060015b92915050565b600160a060020a03331660009081526020819052604081205460ff16151561146f57600080fd5b83600a846040518082805190602001908083835b602083106114a357805182525b601f199092019160209182019101611483565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020836040518082805190602001908083835b6020831061150757805182525b601f1990920191602091820191016114e7565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020557fbab878453bea46cf2222f6dd20b3fa8d80dc6ca2b5d4f854173f07227a21e1a683838642604051808060200180602001858152602001848152602001838103835287818151815260200191508051906020019080838360005b838110156115af5780820151818401525b602001611596565b50505050905090810190601f1680156115dc5780820380516001836020036101000a031916815260200191505b50838103825286818151815260200191508051906020019080838360005b838110156116135780820151818401525b6020016115fa565b50505050905090810190601f1680156116405780820380516001836020036101000a031916815260200191505b50965050505050505060405180910390a15060015b5b9392505050565b600160a060020a03331660009081526020819052604081205460ff16151561168457600080fd5b6116966001848463ffffffff61257016565b15156116a157600080fd5b82600160a060020a03167fce96c271d8db9db4a90e538f30d7ec5a63f116893c4636688d9ce1502b5cc93683426040518080602001838152602001828103825284818151815260200191508051906020019080838360005b838110156117125780820151818401525b6020016116f9565b50505050905090810190601f16801561173f5780820380516001836020036101000a031916815260200191505b50935050505060405180910390a25060015b5b92915050565b600160a060020a038083166000908152600d60209081526040808320938516835292905220545b92915050565b600160a060020a03331660009081526020819052604081205460ff1615156117ac57600080fd5b6117c16001878787878763ffffffff612af516565b15156117cc57600080fd5b600c866040518082805190602001908083835b602083106117ff57805182525b601f1990920191602091820191016117df565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03167f270e8b0620bd7a85855d0ae9401e7fa30ea6319fbf06c05f38cad80875f1cc01876118d78660098a6040518082805190602001908083835b6020831061189657805182525b601f199092019160209182019101611876565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020549063ffffffff612f8016565b600a896040518082805190602001908083835b6020831061190a57805182525b601f1990920191602091820191016118ea565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020886040518082805190602001908083835b6020831061196e57805182525b601f19909201916020918201910161194e565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054428a604051808060200186815260200185815260200184815260200180602001838103835288818151815260200191508051906020019080838360005b838110156119f85780820151818401525b6020016119df565b50505050905090810190601f168015611a255780820380516001836020036101000a031916815260200191505b50838103825284818151815260200191508051906020019080838360005b83811015611a5c5780820151818401525b602001611a43565b50505050905090810190601f168015611a895780820380516001836020036101000a031916815260200191505b5097505050505050505060405180910390a25060015b5b95945050505050565b611ab161313a565b611ab9613128565b611ac1613128565b6101606040519081016040908152600086815260086020818152838320805486526001810154828701526002810154858701526003810154606087015260048101546080870152600581015460a0870152600681015460c0870152600781015460e0870152808301546101008701526009810154610120870152600a81015461014087015292899052908152600b820180549093600c909301928492828102019051908101604052809291908181526020018280548015611ba157602002820191906000526020600020905b815481526020019060010190808311611b8d575b5050505050915080805480602002602001604051908101604052809291908181526020018280548015611bf357602002820191906000526020600020905b815481526020019060010190808311611bdf575b505050505090509250925092505b9193909250565b600160a060020a03331660009081526020819052604090205460ff161515611c2f57600080fd5b600160a060020a03811660009081526020819052604090205460ff161515611c8957600160a060020a03808216600090815260208190526040808220805460ff199081166001179091553390931682529020805490911690555b5b5b50565b611c96613174565b600160a060020a0330166000908152600d87016020526040812054819011611cbd57600080fd5b60008611611cca57600080fd5b600160a060020a0330166000908152600d88016020526040902054861115611cf157600080fd5b6005870154611d0790600163ffffffff612f8016565b600588015560008511611d1d576203f480611d1f565b845b6005880154600081815260078a0160205260409020559050611d47428263ffffffff612f8016565b600588018054600090815260078a01602052604080822060019081019490945591548152200154611d7e908263ffffffff612f8016565b6005808901805460009081526007808c016020818152604080852060020197909755600160a060020a0330168452600d8e018152868420548554855291905285832060040155825482528482209093018a90558154815283812060060181905590548152918220015585670de0b6b3a7640000811515611dfa57fe5b30600160a060020a03166000908152600d8a01602090815260408083205460058d018054855260078e019093528184209590940490930260089094019390935582548152818120600901819055915482529020600a01849055821515600114611e6b57600087600601819055611e9c565b60058701546000908152600788016020526040902060020154611e94908263ffffffff612f8016565b876006018190555b5061010060405190810160409081526005808a0154808452600081815260078c01602081815285832060018101548289015260028101549688019690965260068e01546060880152600486015460808801529385015460a0870152600885015460c08701529190529052600a015460e082015291505b5095945050505050565b600160a060020a038084166000908152600c86016020908152604080832033909416835292905290812054611f57818463ffffffff612f9c16565b600160a060020a038087166000908152600c89016020908152604080832033851684528252808320949094559187168152600d89019091522054611fa1908463ffffffff612f8016565b600160a060020a038086166000908152600d890160205260408082209390935590871681522054611fd8908463ffffffff612f9c16565b600160a060020a0386166000908152600d88016020526040902055600191505b50949350505050565b600160a060020a0333166000908152600d8401602052604081205461202c908363ffffffff612f9c16565b600160a060020a033381166000908152600d870160205260408082209390935590851681522054612063908363ffffffff612f8016565b600160a060020a0384166000908152600d860160205260409020555060015b9392505050565b61209161319c565b6000838152600785016020526040812060010154819081908190429011156120b857600080fd5b6000878152600789016020526040902060020154429010156120d957600080fd5b6000878152600789016020526040812060080154116120f757600080fd5b6000341161210457600080fd5b60008781526007890160205260409020600b0180546001810161212783826131c4565b916000526020600020900160005b503490555060008781526007890160205260409020600c0180546001810161215d83826131c4565b916000526020600020900160005b8890919091505550612252886007016000898152602001908152602001600020600c018054806020026020016040519081016040528092919081815260200182805480156121d857602002820191906000526020600020905b8154815260200190600101908083116121c4575b50505050508960070160008a8152602001908152602001600020600b0180548060200260200160405190810160405280929190818152602001828054801561223f57602002820191906000526020600020905b81548152602001906001019080831161222b575b5050505050612fb590919063ffffffff16565b600088815260078a016020526040902060060181905586111561227457600080fd5b60008781526007890160205260409020600a8101546006909101546305f5e10090910290879003106122a557600080fd5b60008781526007890160205260409020600a8101546004909101546122cf9163ffffffff61306a16565b600088815260078a016020526040902060060154909450670de0b6b3a76400008115156122f857fe5b048402925082341161230b57600061230f565b8234035b9150600082111561234b57600160a060020a03331682156108fc0283604051600060405180830381858888f19350505050151561234b57600080fd5b5b8115612358578261235a565b345b600088815260078a016020526040902060060154909150670de0b6b3a764000081151561238357fe5b048181151561238e57fe5b60058a015460009081526007808c016020526040909120015491900494506123bc908263ffffffff612f8016565b600589015460009081526007808b0160205260408083209091019290925588815220600801546123f2908263ffffffff612f9c16565b600088815260078a016020908152604080832060080193909355600160a060020a0330168252600d8b0190522054612430908563ffffffff612f9c16565b600160a060020a033081166000908152600d8b016020526040808220939093553390911681522054612468908563ffffffff612f8016565b600160a060020a0333166000908152600d8a01602090815260408083209390935560058b0154825260078b01905220600401546124ab908563ffffffff612f9c16565b6005890154600090815260078a0160205260408082206004019290925588815220600901546124e190600163ffffffff612f8016565b600088815260078a016020526040908190206009019190915561012090519081016040908152888252602080830189905260008a81526007808d01808452848320600681015495870195909552606086018a90526080860187905260a086018890529084015460c0860152908b905290526008015460e08201524261010082015294505b505050509392505050565b6000600160a060020a038316151561258757600080fd5b600084600e01836040518082805190602001908083835b602083106125be57805182525b601f19909201916020918201910161259e565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054111561271b5761268c84600e01836040518082805190602001908083835b6020831061263057805182525b601f199092019160209182019101612610565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a0385166000908152600d870160205260409020549063ffffffff612f8016565b600160a060020a0384166000908152600d860160205260408082209290925590600e8601908490518082805190602001908083835b602083106126e157805182525b601f1990920191602091820191016126c1565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902055612ae9565b82600160a060020a031684600b01836040518082805190602001908083835b6020831061275a57805182525b601f19909201916020918201910161273a565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03161480159061282f5750600084600d01600086600b01856040518082805190602001908083835b602083106127de57805182525b601f1990920191602091820191016127be565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03168152602081019190915260400160002054115b15612a2757600160a060020a0383166000908152600a85016020526040902082805161285f9291602001906131ee565b508284600b01836040518082805190602001908083835b6020831061289657805182525b601f199092019160209182019101612876565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a0392909216919091179055600d84016000600b8601846040518082805190602001908083835b6020831061293057805182525b601f199092019160209182019101612910565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03908116825260208083019390935260409182016000908120549187168152600d8801938490528281209190915591908290600b8801908690518082805190602001908083835b602083106129d357805182525b601f1990920191602091820191016129b3565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a03168152602081019190915260400160002055612ae9565b600160a060020a0383166000908152600a850160205260409020828051612a529291602001906131ee565b508284600b01836040518082805190602001908083835b60208310612a8957805182525b601f199092019160209182019101612a69565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805473ffffffffffffffffffffffffffffffffffffffff1916600160a060020a03929092169190911790555b5b5060015b9392505050565b600080600080612b75868b6008018a6040518082805190602001908083835b6020831061189657805182525b601f199092019160209182019101611876565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020549063ffffffff612f8016565b925089600901886040518082805190602001908083835b60208310612bac57805182525b601f199092019160209182019101612b8c565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040518091039020876040518082805190602001908083835b60208310612c1057805182525b601f199092019160209182019101612bf0565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051809103902054915089600b01896040518082805190602001908083835b60208310612c7b57805182525b601f199092019160209182019101612c5b565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902054600160a060020a031690506000831180612cca5750600082115b1515612cd557600080fd5b89600f01856040518082805190602001908083835b60208310612d0a57805182525b601f199092019160209182019101612cea565b6001836020036101000a0380198251168184511680821785525050505050509050019150509081526020016040519081900390205460ff1615612d4c57600080fd5b8954612d70908390612d64908663ffffffff612f8016565b9063ffffffff612f8016565b8a55600160a060020a0330166000908152600d8b016020526040902054612d9d908363ffffffff612f8016565b600160a060020a033081166000908152600d8d01602052604090209190915581161515612ead57612e3e838b600e018b6040518082805190602001908083835b6020831061189657805182525b601f199092019160209182019101611876565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020549063ffffffff612f8016565b8a600e018a6040518082805190602001908083835b60208310612e7357805182525b601f199092019160209182019101612e53565b6001836020036101000a03801982511681845116808217855250505050505090500191505090815260200160405190819003902055612ef4565b600160a060020a0381166000908152600d8b016020526040902054612ed8908463ffffffff612f8016565b600160a060020a0382166000908152600d8c0160205260409020555b60018a600f01866040518082805190602001908083835b60208310612f2b57805182525b601f199092019160209182019101612f0b565b6001836020036101000a038019825116818451168082178552505050505050905001915050908152602001604051908190039020805460ff1916911515919091179055600193505b5050509695505050505050565b6000828201612f9184821015613086565b8091505b5092915050565b6000612faa83831115613086565b508082035b92915050565b600080600080600080612fcb6000885111613086565b612fd86000895111613086565b612fe188613096565b945060009350600092505b865183101561304f5787838151811061300157fe5b90602001906020020151915086838151811061301957fe5b9060200190602002015190506130418461303c61303685856130f9565b8861306a565b612f80565b93505b600190920191612fec565b61305b60008511613086565b8395505b505050505092915050565b600080828481151561307857fe5b0490508091505b5092915050565b801515611c8957600080fd5b5b50565b60008060006130a86000855111613086565b5060009050805b83518110156130e2576130d7828583815181106130c857fe5b90602001906020020151612f80565b91505b6001016130af565b6130ee60008311613086565b8192505b5050919050565b6000828202612f91841580613118575083858381151561311557fe5b04145b613086565b8091505b5092915050565b60206040519081016040526000815290565b610160604051908101604052600b815b600081526020019060019003908161314a5790505090565b60206040519081016040526000815290565b6101006040519081016040526008815b600081526020019060019003908161314a5790505090565b6101206040519081016040526009815b600081526020019060019003908161314a5790505090565b8154818355818115116131e8576000838152602090206131e891810190830161326d565b5b505050565b828054600181600116156101000203166002900490600052602060002090601f016020900481019282601f1061322f57805160ff191683800117855561325c565b8280016001018555821561325c579182015b8281111561325c578251825591602001919060010190613241565b5b5061326992915061326d565b5090565b610c1291905b808211156132695760008155600101613273565b5090565b905600a165627a7a72305820b3f5ce9e1e91c54ddff3d8f3450cb6e07e64a7c750d2e1cb9886e9c682d55e540029",\n "networks": {\n "17": {\n "events": {\n "0x8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925": {\n "anonymous": false,\n "inputs": [\n {\n "indexed": true,\n "name": "owner",\n "type": "address"\n },\n {\n "indexed": true,\n "name": "spender",\n "type": "address"\n },\n {\n "indexed": false,\n "name": "value",\n "type": "uint256"\n }\n ],\n "name": "Approval",\n "type": "event"\n },\n "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef": {\n "anonymous": false,\n "inputs": [\n {\n "indexed": true,\n "name": "from",\n "type": "address"\n },\n