├── src ├── __init__.py ├── log │ └── .gitkeep ├── dhbfree.py ├── node │ ├── package.json │ ├── server.1.js │ └── server.js ├── dicewk.py ├── ram.py ├── betdicewk.py ├── hotdice.py ├── betsand.py ├── log.py ├── bingbet.py ├── shishicai.py ├── draw.py ├── eosget.py ├── newdex.py ├── farmeos.py ├── transferBalance.py ├── tgt.py ├── kuai3.py ├── seven.py ├── findexmev.py ├── dafuwo.py ├── getbalance.py ├── praaaaa.py ├── airdrop.py ├── createAccount.py ├── transactions.py ├── getdata.py ├── ut.py └── betdice.py ├── requirements.txt ├── Pipfile ├── README.md ├── .gitignore └── Pipfile.lock /src/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /src/log/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | requests >=2.20.0 2 | arrow -------------------------------------------------------------------------------- /src/dhbfree.py: -------------------------------------------------------------------------------- 1 | from ut import getAccounts, pushaction, runPool 2 | 3 | 4 | def run(account): 5 | print(pushaction("dhboneplay11", "getfree", [account], account)) 6 | 7 | 8 | if __name__ == "__main__": 9 | accounts = getAccounts() 10 | runPool(run, accounts) 11 | -------------------------------------------------------------------------------- /src/node/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "node", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "server.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1", 8 | "start": "node server.js" 9 | }, 10 | "author": "", 11 | "license": "ISC" 12 | } 13 | -------------------------------------------------------------------------------- /Pipfile: -------------------------------------------------------------------------------- 1 | [[source]] 2 | url = "https://mirrors.aliyun.com/pypi/simple/" 3 | verify_ssl = true 4 | name = "pypi" 5 | 6 | [packages] 7 | requests = "*" 8 | arrow = "*" 9 | pyeos = {git = "https://github.com/eosnewyork/eospy"} 10 | redis = "*" 11 | 12 | [dev-packages] 13 | ipython = "*" 14 | 15 | [requires] 16 | python_version = "3.6" 17 | -------------------------------------------------------------------------------- /src/dicewk.py: -------------------------------------------------------------------------------- 1 | from ut import runPool, genrateRandomN 2 | from transferBalance import transferEos 3 | 4 | 5 | def run(a): 6 | print( 7 | transferEos( 8 | "gy2dgmztgqge", 9 | "richrich2222", 10 | 2.5, 11 | f"playdice|{genrateRandomN()}-1-96-gaojin.game", 12 | ) 13 | ) 14 | 15 | 16 | if __name__ == "__main__": 17 | while True: 18 | run(1) 19 | # runPool(run, range(8 * 1000)) 20 | -------------------------------------------------------------------------------- /src/ram.py: -------------------------------------------------------------------------------- 1 | from ut import gettable 2 | import time 3 | 4 | 5 | def getram(): 6 | x = gettable("eosio", "eosio", "rammarket") 7 | data = x["rows"][0] 8 | quote = float(data["quote"]["balance"].split(" ")[0]) 9 | base = float(data["base"]["balance"].split(" ")[0]) 10 | return calram(quote, base) 11 | 12 | 13 | def calram(quote, base): 14 | return (quote) / (1 + base / 1024) 15 | 16 | 17 | if __name__ == "__main__": 18 | while True: 19 | time.sleep(2) 20 | print(getram()) 21 | -------------------------------------------------------------------------------- /src/betdicewk.py: -------------------------------------------------------------------------------- 1 | from ut import runPool 2 | from transferBalance import transferEos, tranferKar, tranferEUSD 3 | import random 4 | import string 5 | 6 | 7 | def genrateRandomName(): 8 | return "".join(random.choices(string.ascii_lowercase, k=12)) 9 | 10 | 11 | def run(a): 12 | memo = f"action:bet,seed:{genrateRandomName()},rollUnder:96,ref:bbheasxtlatd" 13 | f = "gy2dgmztgqge" 14 | t = "betdiceadmin" 15 | print(tranferEUSD(f, t, 10, memo)) 16 | 17 | 18 | if __name__ == "__main__": 19 | x = range(10000) 20 | runPool(run, x) 21 | -------------------------------------------------------------------------------- /src/hotdice.py: -------------------------------------------------------------------------------- 1 | from ut import runPool 2 | from transferBalance import transferEos 3 | import string, random 4 | 5 | 6 | def genrateRandomName(): 7 | return "".join(random.choices(string.ascii_lowercase, k=10)) 8 | 9 | 10 | def run(a): 11 | print( 12 | transferEos( 13 | "gy2dgmztgqge", 14 | "hotbetsadmin", 15 | 0.2, 16 | f"hotdice|gaojin.game|96|{genrateRandomName()}|", 17 | ) 18 | ) 19 | 20 | 21 | if __name__ == "__main__": 22 | while True: 23 | runPool(run, range(1000 * 8)) 24 | -------------------------------------------------------------------------------- /src/betsand.py: -------------------------------------------------------------------------------- 1 | from ut import runPool 2 | 3 | from transferBalance import transferEos 4 | import random 5 | import string 6 | import time 7 | 8 | 9 | def run(): 10 | f = "gaojin.game" 11 | t = "betsandrou11" 12 | 13 | memo = "jB5|jA5,cd4c87e232a7ae0b0aa9697b13efb021c6ba9020,167a81a76e1,gy2dgmztgqge" 14 | print(transferEos(f, t, 1, memo)) 15 | 16 | 17 | def genrateRandomName(): 18 | return "".join(random.choices(string.ascii_lowercase, k=12)) 19 | 20 | 21 | if __name__ == "__main__": 22 | while True: 23 | time.sleep(0.511) 24 | run() 25 | -------------------------------------------------------------------------------- /src/log.py: -------------------------------------------------------------------------------- 1 | import logging 2 | 3 | 4 | def loggingSetting(name): 5 | logger = logging.getLogger(name) 6 | logger.setLevel(logging.DEBUG) 7 | fh = logging.FileHandler("log/{}.log".format(name)) 8 | fh.setLevel(logging.DEBUG) 9 | 10 | ch = logging.StreamHandler() 11 | ch.setLevel(logging.INFO) 12 | formatter = logging.Formatter( 13 | "%(asctime)s - %(filename)s - %(levelname)s - %(message)s" 14 | ) 15 | fh.setFormatter(formatter) 16 | ch.setFormatter(formatter) 17 | # add the handlers to the logger 18 | logger.addHandler(fh) 19 | logger.addHandler(ch) 20 | return logger 21 | -------------------------------------------------------------------------------- /src/bingbet.py: -------------------------------------------------------------------------------- 1 | from ut import getAccounts, runPool 2 | 3 | from transactions import push_transaction 4 | 5 | 6 | def run(account): 7 | actions = [ 8 | [ 9 | "eosio.token", 10 | "transfer", 11 | { 12 | "from": account, 13 | "to": "bingobetgame", 14 | "quantity": "0.1000 EOS", 15 | "memo": "", 16 | }, 17 | account, 18 | ], 19 | [ 20 | "bingobetgame", 21 | "playdice", 22 | {"player": account, "player_salt": "6328764201341931", "roll_under": 96}, 23 | account, 24 | ], 25 | ] 26 | print(push_transaction(actions)) 27 | 28 | 29 | if __name__ == "__main__": 30 | accounts = getAccounts() 31 | runPool(run, accounts) 32 | -------------------------------------------------------------------------------- /src/shishicai.py: -------------------------------------------------------------------------------- 1 | from ut import pushaction 2 | from ut import getAccounts 3 | from log import loggingSetting 4 | 5 | logger = loggingSetting("shishicai") 6 | 7 | 8 | def run(ref, accounts): 9 | """https://lottery.eosplay.co/link""" 10 | for i in range(0, len(accounts)): 11 | account = accounts[i] 12 | if i % 2 == 0: # lottery:o,lottery:e 一个是猜单,一个是猜双,这段代码的目的是 55开,这样可以保证2次肯定有一次赢. 13 | memo = "lottery:o@{}".format(ref) 14 | else: 15 | memo = "lottery:e@{}".format(ref) 16 | t = pushaction( 17 | "eosio.token", 18 | "transfer", 19 | [account, "eosplaybrand", "0.1000 EOS", memo], 20 | account, 21 | ) 22 | if b"transaction" not in t: 23 | logger.info("转账失败:{}".format(account)) 24 | logger.info("原因为:{}".format(t)) 25 | else: 26 | print("{} 操作成".format(account)) 27 | 28 | 29 | if __name__ == "__main__": 30 | run("gy2dgmztgqge", accounts=getAccounts()) 31 | -------------------------------------------------------------------------------- /src/draw.py: -------------------------------------------------------------------------------- 1 | import json 2 | import os 3 | import pickle 4 | from time import sleep 5 | 6 | import requests 7 | 8 | from ut import getAccounts, pushaction, unlock 9 | from multiprocessing import Pool 10 | 11 | s = requests.Session() 12 | 13 | 14 | def getdraw(account): 15 | b, c = randomN(account) 16 | print(pushaction("betdicelucky", "draw", [account, b, c], account)) 17 | 18 | 19 | def randomN(account): 20 | blocknum = getinfo() 21 | data = {"name": account, "blocknum": blocknum} 22 | z = requests.get("http://localhost:5000/betdice", params=data) 23 | d = z.json() 24 | b, c = d["b"], d["c"] 25 | return b, c 26 | 27 | 28 | def getinfo(): 29 | url = "https://api.eosbeijing.one/v1/{}" 30 | z1 = s.post(url.format("chain/get_info")) 31 | return z1.json()["last_irreversible_block_num"] 32 | 33 | 34 | if __name__ == "__main__": 35 | password = "1" 36 | unlock(password) 37 | accounts = getAccounts() 38 | 39 | with Pool() as pool: 40 | pool.map(getdraw, accounts) 41 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 如何运行 2 | 3 | `pip install pipenv` 4 | 5 | 使用 `pipenv install`来安装虚拟环境 6 | 7 | `pipenv shell` 进入虚拟环境 8 | 9 | ## 依赖 10 | 11 | ### python 12 | 13 | python的话在 [conda](https://conda.io/miniconda.html)下载你需要的版本 14 | 15 | ### cleos 16 | cleos 的话,如果是mac ,ubuntu 用户则可以按照[官网教程](https://developers.eos.io/eosio-nodeos/docs/getting-the-code)来安装好 17 | 18 | 如果其他系统的用户,则可以使用docker [eosio-docker](https://developers.eos.io/eosio-nodeos/docs/docker-quickstart) 19 | 20 | 21 | ## 代码 22 | 23 | ### draw.py 24 | 25 | 这个是用来领每小时一次的0.0005EOS的 26 | 27 | 需要把其中获取 eos账号的文件换成你自己的 28 | 29 | ### betdice.py 30 | 31 | 这个是按照某种策略自动来玩dice的 32 | 33 | ### createAccount.py 34 | 35 | 自动创建账号 36 | 37 | ### getdata.py 38 | 39 | 获取某个合约的所有数据 40 | 41 | ### getbalance.py 42 | 43 | 批量获取账号的余额 44 | 45 | ### shishicai.py 46 | 47 | 时时彩羊毛(邀请送0.2 EOS) 48 | 49 | ### transferBalance.py 50 | 51 | 批量转账... 52 | 53 | ### airdrop.py 54 | 55 | 领糖果... 56 | 57 | 1. DICE 58 | 2. SEVEN **需要自己出内存** 59 | 3. CHIPS 60 | 61 | ## 欢迎贡献 62 | 63 | - 提供羊毛信息 64 | - 帮忙完善代码 65 | 66 | ## buy me a coffee 67 | 68 | 如果你觉得这个项目还不错,对你有一些帮助,可以请我喝杯咖啡,想必也是非常愉悦的事情。 😄 69 | 70 | [buy me a coffee](https://jin10086.github.io/buy-me-a-coffee/) -------------------------------------------------------------------------------- /src/eosget.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from ut import getAccounts, runPool, pushaction 3 | import re 4 | 5 | s = requests.Session() 6 | s.headers = { 7 | "origin": "https://dice.eosget.io", 8 | "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36", 9 | } 10 | 11 | 12 | def getinfo(): 13 | url = "https://api.eosbeijing.one/v1/{}" 14 | z1 = s.post(url.format("chain/get_info")) 15 | return z1.json()["last_irreversible_block_num"] 16 | 17 | 18 | def getrandom(account): 19 | z = s.get(f"https://dice.eosget.io/user/random?account={account}") 20 | return z.json()["data"] 21 | 22 | 23 | def run(account): 24 | memo = f"luckdraw|{getrandom(account)}" 25 | x = pushaction("eosgetadmin1", "luckdraw", [account, memo], account) 26 | print(x) 27 | if not b"eosio_assert_message" in x: 28 | tx = re.findall(b"executed transaction: (.*?) ", x)[0] 29 | tx = str(tx, encoding="utf8") 30 | block_num = getinfo() 31 | data = {"transaction_id": tx, "block_num": block_num} 32 | z1 = s.post("https://dice.eosget.io/eos/luckdrawReport", data=data) 33 | print(z1.text) 34 | 35 | 36 | if __name__ == "__main__": 37 | accounts = getAccounts() 38 | runPool(run, accounts) 39 | -------------------------------------------------------------------------------- /src/newdex.py: -------------------------------------------------------------------------------- 1 | from ut import pushaction 2 | from transferBalance import tranferBase 3 | 4 | to = "newdexpocket" 5 | 6 | 7 | def run(count, price, account): 8 | amount = count * price 9 | memo = { 10 | "type": "sell-limit", 11 | "symbol": "fishjoytoken-fish-eos", 12 | "price": f"{price}", 13 | "count": f"{count}", 14 | "amount": f"{amount}", 15 | "channel": "web", 16 | "ref": "Scatter", 17 | } 18 | data = { 19 | "from": account, 20 | "to": to, 21 | "quantity": "%.4f FISH" % count, 22 | "memo": f"{memo}", 23 | } 24 | print(data) 25 | print(pushaction("fishjoytoken", "transfer", data, account)) 26 | 27 | 28 | def shijia(count, account): 29 | memo = { 30 | "type": "sell-market", 31 | "symbol": "eosroyaleroy-roy-eos", 32 | "price": "0.0000000", 33 | "count": count, 34 | "amount": 0, 35 | "channel": "web", 36 | "ref": "Scatter", 37 | } 38 | data = { 39 | "from": account, 40 | "to": to, 41 | "quantity": "%.4f ROY" % count, 42 | "memo": f"{memo}", 43 | } 44 | print(pushaction("eosroyaleroy", "transfer", data, account)) 45 | 46 | 47 | if __name__ == "__main__": 48 | account = "rrjsgwridops" 49 | shijia(10000, account) 50 | -------------------------------------------------------------------------------- /src/farmeos.py: -------------------------------------------------------------------------------- 1 | from transferBalance import transferEos 2 | import requests 3 | import time 4 | from log import loggingSetting 5 | 6 | logger = loggingSetting("farmeos") 7 | s = requests.Session() 8 | 9 | 10 | def getblance(account): 11 | url = "http://api.eosbeijing.one/v1/{}" 12 | z1 = s.post( 13 | url.format("chain/get_currency_balance"), 14 | json={"code": "eosio.token", "account": account, "symbol": "EOS"}, 15 | ) 16 | balance = float(z1.json()[0].split()[0]) 17 | return balance 18 | 19 | 20 | def run(account, balance): 21 | print(transferEos(account, "farmeosbank1", balance, "bbheasxtlatd 2 4")) 22 | 23 | 24 | if __name__ == "__main__": 25 | account = "gy2dgmztgqge" 26 | logger.info("开始搬砖...") 27 | count = 0 28 | # run(account, 10) 29 | # # 代币:44928.0962 30 | while True: 31 | try: 32 | # balance = getblance(account) 33 | # if balance < 0: 34 | # break 35 | count += 1 36 | # logger.info("balance === {}".format(balance)) 37 | # logger.info("本次投注 === {}".format(balance / 100)) 38 | logger.info("count === {}".format(count)) 39 | run(account, 1) 40 | time.sleep(1) 41 | except: 42 | logger.exception("程序bug,正在重试") 43 | time.sleep(2) 44 | -------------------------------------------------------------------------------- /src/transferBalance.py: -------------------------------------------------------------------------------- 1 | import pickle 2 | 3 | from log import loggingSetting 4 | from ut import pushaction 5 | 6 | logger = loggingSetting("transferBalance") 7 | 8 | 9 | def transferEos(f, to, n, m=""): 10 | return tranferBase("eosio.token", "EOS", f, to, n, m) 11 | 12 | 13 | def transferBos(f, to, n, m=""): 14 | return tranferBase("eosio.token", "BOS", f, to, n, m, node="bos") 15 | 16 | 17 | def tranferDice(f, to, n, m=""): 18 | return tranferBase("betdicetoken", "DICE", f, to, n, m) 19 | 20 | 21 | def tranferRich(f, to, n, m=""): 22 | return tranferBase("richrich1111", "RICH", f, to, n, m) 23 | 24 | 25 | def tranferEUSD(f, to, n, m=""): 26 | return tranferBase("bitpietokens", "EUSD", f, to, n, m, 8) 27 | 28 | 29 | def tranferEETH(f, to, n, m=""): 30 | return tranferBase("bitpietokens", "EETH", f, to, n, m, 8) 31 | 32 | 33 | def tranferEBTC(f, to, n, m=""): 34 | return tranferBase("bitpietokens", "EBTC", f, to, n, m, 8) 35 | 36 | 37 | def tranferJKS(f, to, n, m=""): 38 | return tranferBase("eosbocai1111", "JACKS", f, to, n, m) 39 | 40 | 41 | def tranferZks(f, to, n, m=""): 42 | return tranferBase("zkstokensr4u", "ZKS", f, to, n, m) 43 | 44 | 45 | def tranferRoy(f, to, n, m=""): 46 | return tranferBase("eosroyaleroy", "ROY", f, to, n, m) 47 | 48 | 49 | def tranferBase(contract, symbol, f, to, n, m="", decimal=4, node="eos"): 50 | return pushaction( 51 | contract, "transfer", [f, to, f"%.{decimal}f {symbol}" % n, m], f, node=node 52 | ) 53 | 54 | 55 | if __name__ == "__main__": 56 | accounts = getAccounts() 57 | -------------------------------------------------------------------------------- /src/tgt.py: -------------------------------------------------------------------------------- 1 | import time 2 | import json 3 | from websocket import create_connection 4 | from ut import getAccounts 5 | import requests 6 | 7 | s = requests.Session() 8 | 9 | 10 | def checkBalance(accounts, contract, symbol): 11 | url = "https://proxy.eosnode.tools/v1/{}" 12 | x = {} 13 | for account in accounts: 14 | z1 = s.post( 15 | url.format("chain/get_currency_balance"), 16 | json={"code": contract, "account": account, "symbol": symbol}, 17 | ) 18 | if z1.json(): 19 | balance = float(z1.json()[0].split()[0]) 20 | x[account] = balance 21 | else: 22 | x[account] = 0 23 | return x 24 | 25 | 26 | def run(account): 27 | ws = create_connection("wss://eostiger.io/") 28 | print(account) 29 | ws.send( 30 | json.dumps( 31 | {"cmd": "sync.heartbeat", "para": {"want": {"sync.award_history": 1}}} 32 | ) 33 | ) 34 | ws.send( 35 | json.dumps( 36 | { 37 | "cmd": "sync.get_register_bonus", 38 | "chk": int(time.time()) * 1000000, 39 | "para": {"uid": account, "ref": "gy2dgmztgqge"}, 40 | } 41 | ) 42 | ) 43 | ws.send( 44 | json.dumps( 45 | { 46 | "cmd": "sync.get_recommend_bonus", 47 | "chk": int(time.time()) * 1000000, 48 | "para": {"uid": account}, 49 | } 50 | ) 51 | ) 52 | ws.close() 53 | 54 | 55 | if __name__ == "__main__": 56 | accounts = getAccounts() 57 | for account in accounts: 58 | if not checkBalance(account, "eostgctoken1", "TGC"): 59 | run(account) 60 | -------------------------------------------------------------------------------- /src/kuai3.py: -------------------------------------------------------------------------------- 1 | import requests 2 | import time 3 | 4 | url = "https://wj.qq.com/sur/collect_answer" 5 | 6 | 7 | def step1(): 8 | s = requests.Session() 9 | 10 | 11 | def run(account): 12 | data = { 13 | "survey_id": "2866323", 14 | "answer_survey": { 15 | "id": "2866323", 16 | "survey_type": 0, 17 | "jsonLoadTime": 41, 18 | "ldw": "CD60C279-456B-48A2-AF3A-BDBBB9C24890", 19 | "time": int(time.time()), 20 | "ua": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36", 21 | "openid": "", 22 | "pages": [ 23 | { 24 | "id": "1", 25 | "questions": [ 26 | { 27 | "id": "q-1-1DMP", 28 | "type": "text", 29 | "text": account, 30 | "options": [], 31 | "blanks": [], 32 | } 33 | ], 34 | } 35 | ], 36 | "referrer": "", 37 | }, 38 | } 39 | z = requests.post( 40 | "https://wj.qq.com/sur/collect_answer", 41 | json=data, 42 | headers={ 43 | "referer": "https://wj.qq.com/s/2866323/16df/?from=groupmessage&isappinstalled=0", 44 | "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.77 Safari/537.36", 45 | }, 46 | ) 47 | print(z.json()) 48 | 49 | 50 | if __name__ == "__main__": 51 | from ut import getAccounts, runPool 52 | 53 | accounts = getAccounts() 54 | runPool(run, accounts) 55 | -------------------------------------------------------------------------------- /src/seven.py: -------------------------------------------------------------------------------- 1 | import time 2 | import json 3 | from websocket import create_connection 4 | from ut import getAccounts 5 | import requests 6 | 7 | s = requests.Session() 8 | 9 | 10 | def checkBalance(accounts, contract, symbol): 11 | url = "https://proxy.eosnode.tools/v1/{}" 12 | x = {} 13 | for account in accounts: 14 | z1 = s.post( 15 | url.format("chain/get_currency_balance"), 16 | json={"code": contract, "account": account, "symbol": symbol}, 17 | ) 18 | if z1.json(): 19 | balance = float(z1.json()[0].split()[0]) 20 | x[account] = balance 21 | else: 22 | x[account] = 0 23 | return x 24 | 25 | 26 | def run(account): 27 | ws = create_connection( 28 | "wss://socket.eoseven.com/socket.io/?EIO=3&transport=websocket" 29 | ) 30 | print(account) 31 | ws.send("40/dice,") 32 | ws.send("42/dice," + json.dumps(["HistoryRouter", {"action": "history"}])) 33 | ws.send( 34 | "42/dice," 35 | + json.dumps( 36 | ["HistoryRouter", {"action": "hugeWin", "payload": {"symbol": "EOS"}}] 37 | ) 38 | ) 39 | ws.send( 40 | "42/dice," 41 | + json.dumps( 42 | [ 43 | "AirgrabRouter", 44 | { 45 | "router": "AirgrabRouter", 46 | "action": "airgrab", 47 | "payload": {"account": account}, 48 | }, 49 | ] 50 | ) 51 | ) 52 | ws.close() 53 | 54 | 55 | if __name__ == "__main__": 56 | accounts = getAccounts() 57 | # x = checkBalance(accounts, "eoseventoken", "SVN") 58 | for account in accounts: 59 | # if not checkBalance(account, "eoseventoken", "SVN"): 60 | run(account) 61 | -------------------------------------------------------------------------------- /src/findexmev.py: -------------------------------------------------------------------------------- 1 | from transactions import push_transaction 2 | 3 | from ut import runPool 4 | 5 | 6 | def sell(q): 7 | qq = "%.4f MEV" % q 8 | actions = [ 9 | [ 10 | "eosvegascoin", 11 | "transfer", 12 | ["gy2dgmztgqge", "findexfindex", qq, ""], 13 | "gy2dgmztgqge", 14 | ], 15 | [ 16 | "findexfindex", 17 | "sellorder", 18 | { 19 | "r_sell_order": { 20 | "seller": "gy2dgmztgqge", 21 | "pair_id": "89", 22 | "quote_quantity": qq, 23 | "minimum_price": "1000000", 24 | "remark": "bitpie4users", 25 | } 26 | }, 27 | "gy2dgmztgqge", 28 | ], 29 | ] 30 | print(push_transaction(actions)) 31 | 32 | 33 | def buy(q, q1): 34 | qq = "%.8f EUSD" % q 35 | qq1 = "%.4f MEV" % q1 36 | actions = [ 37 | [ 38 | "bitpietokens", 39 | "transfer", 40 | ["gy2dgmztgqge", "findexfindex", qq, ""], 41 | "gy2dgmztgqge", 42 | ], 43 | [ 44 | "findexfindex", 45 | "buyorder", 46 | { 47 | "r_buy_order": { 48 | "buyer": "gy2dgmztgqge", 49 | "pair_id": "89", 50 | "quote_quantity": qq1, 51 | "maximum_price": "1000000", 52 | "remark": "bitpie4users", 53 | } 54 | }, 55 | "gy2dgmztgqge", 56 | ], 57 | ] 58 | print(push_transaction(actions)) 59 | 60 | 61 | def run(a): 62 | sell(101) 63 | buy(1.01, 101) 64 | 65 | 66 | if __name__ == "__main__": 67 | while True: 68 | runPool(run, [0 for i in range(1000)]) 69 | # while True: 70 | # sell(101) 71 | # buy(1.01, 101) 72 | -------------------------------------------------------------------------------- /src/dafuwo.py: -------------------------------------------------------------------------------- 1 | from ut import pushaction, runcleos 2 | from transferBalance import transferEos, tranferRich 3 | import json 4 | import time 5 | 6 | RICHCONTRACT = "richrich2222" 7 | 8 | 9 | def auction(account, q): # 拍卖 10 | return transferRICH(account, RICHCONTRACT, q, m="auction") 11 | 12 | 13 | def playdice(account): # 投掷骰子 14 | return pushaction(RICHCONTRACT, "playdice", [account, "2010"], account) 15 | 16 | 17 | def buyland(account): # 买地 18 | return transferEos(account, RICHCONTRACT, 10, m="buyland2010") 19 | 20 | 21 | def buytoken(account, q): # 购买token 22 | return transferEos(account, RICHCONTRACT, q, m="buytoken") 23 | 24 | 25 | def buyhostel(account, count): # 建旅馆 26 | return transferEos(account, RICHCONTRACT, 2 * count, m=f"buyhostel2010|{count}") 27 | 28 | 29 | def gettable(code, scope, table): 30 | cmd = [ 31 | "cleos", 32 | "-u", 33 | "https://api.eosbeijing.one:443", 34 | "get", 35 | "table", 36 | "-l", 37 | "200", 38 | code, 39 | scope, 40 | table, 41 | ] 42 | x = runcleos(cmd) 43 | return json.loads(x) 44 | 45 | 46 | def getusers(account): # 查询用户的位置,用户的押金,当前位置,以及能干嘛. 47 | a = gettable(RICHCONTRACT, account, "users") 48 | return a 49 | 50 | 51 | def payrent(account): # 支付押金 52 | return pushaction(RICHCONTRACT, "payrent", [account], account) 53 | 54 | 55 | def run(): 56 | print(playdice("gy2dgmztgqge")) 57 | # print(buyland("gaojin.game")) 58 | 59 | 60 | if __name__ == "__main__": 61 | 62 | # tranferRich("gy2dgmztgqge", "richrich2222", 2100, "save") 63 | # print(payrent("gaojin.game")) 64 | a = getusers("gy2dgmztgqge") 65 | print(a) 66 | while True: 67 | run() 68 | a = getusers("gy2dgmztgqge") 69 | print(a) 70 | 71 | if a["rows"][0]["location"] == "16": 72 | break 73 | time.sleep(1) 74 | -------------------------------------------------------------------------------- /src/getbalance.py: -------------------------------------------------------------------------------- 1 | import json 2 | import requests 3 | from ut import getAccounts 4 | 5 | s = requests.Session() 6 | 7 | 8 | def gettoken(): 9 | url = "https://auth.dfuse.io/v1/auth/issue" 10 | z1 = s.post(url, json={"api_key": "server_3c08733bd4d686d127060ffa3c371d4d"}) 11 | return z1.json()["token"] 12 | 13 | 14 | token = gettoken() 15 | s.headers = {"Authorization": f"Bearer {token}"} 16 | url = "https://mainnet.eos.dfuse.io/" 17 | 18 | 19 | def getbalanceBase(account, accounts): 20 | 21 | x = {} 22 | for i in range(0, len(accounts), 100): 23 | data = { 24 | "account": account, 25 | "scopes": "|".join(accounts[i : i + 100]), 26 | "table": "accounts", 27 | "json": "true", 28 | } 29 | z = s.get(url + "v0/state/tables/scopes", params=data, verify=False).json() 30 | if "tables" in z: 31 | data = z["tables"] 32 | for i in data: 33 | if i["rows"]: 34 | x[i["scope"]] = float(i["rows"][0]["json"]["balance"].split(" ")[0]) 35 | else: 36 | print(z) 37 | break 38 | return x 39 | 40 | 41 | def getRamPrice(): 42 | data = {"account": "eosio", "scopes": "eosio", "table": "rammarket", "json": "true"} 43 | z = s.get(url + "v0/state/tables/scopes", params=data, verify=False).json()[ 44 | "tables" 45 | ][0]["rows"][0]["json"] 46 | cBalance = z["quote"]["balance"].split(" ")[0] 47 | sBalance = z["base"]["balance"].split(" ")[0] 48 | price = float(cBalance) / float(sBalance) 49 | return price * 1024 50 | 51 | 52 | def getEOSbalance(accounts): 53 | return getbalanceBase("eosio.token", accounts) 54 | 55 | 56 | if __name__ == "__main__": 57 | accounts = getAccounts() 58 | x = getEOSbalance(accounts) 59 | 60 | print(sorted(x.items(), key=lambda k: k[1])) 61 | print("余额一共为:{}".format(sum([v for k, v in x.items()]))) 62 | print("一共{}个账号".format(len(x.keys()))) 63 | -------------------------------------------------------------------------------- /src/praaaaa.py: -------------------------------------------------------------------------------- 1 | import requests 2 | from transferBalance import transferPraEos, transferEos 3 | from ut import pushaction 4 | import time 5 | 6 | s = requests.Session() 7 | 8 | blacklist = ["gy2dgmztgqge", "hazdgnryhage"] 9 | 10 | 11 | def gettable(): 12 | url = "https://proxy.eosnode.tools/v1/{}" 13 | 14 | jsdata = { 15 | "scope": "bid.game", 16 | "code": "bid.game", 17 | "table": "tname", 18 | "json": True, 19 | "lower_bound": "", 20 | "upper_bound": "", 21 | "limit": 1000, 22 | } 23 | 24 | z = s.post(url.format("chain/get_table_rows"), json=jsdata) 25 | t = int(time.time()) 26 | return filter( 27 | lambda k: k["bidder"] not in blacklist 28 | and float(k["current_price"].split(" ")[0]) < 5 29 | and k["length"] <= 5, 30 | # and k["status"] not in [3, 5], 31 | z.json()["rows"], 32 | ) 33 | 34 | 35 | def withdraw(): 36 | print(pushaction("bid.game", "withdraw", ["gy2dgmztgqge"], "gy2dgmztgqge")) 37 | 38 | 39 | if __name__ == "__main__": 40 | 41 | while True: 42 | withdraw() 43 | for i in gettable(): 44 | bidname, bid_count, current_price = ( 45 | i["bidname"], 46 | i["bid_count"], 47 | i["current_price"], 48 | ) 49 | current_price = float(current_price.split(" ")[0]) 50 | if i["length"] == 5: 51 | if current_price < 0.5: 52 | memo = f"bid,{bidname},{bid_count},bbheasxtlatd" 53 | print(transferEos("gy2dgmztgqge", "bid.game", current_price, memo)) 54 | elif i["length"] == 4: 55 | if current_price < 2: 56 | memo = f"bid,{bidname},{bid_count},bbheasxtlatd" 57 | print(transferEos("gy2dgmztgqge", "bid.game", current_price, memo)) 58 | else: 59 | if current_price < 5: 60 | memo = f"bid,{bidname},{bid_count},bbheasxtlatd" 61 | print(transferEos("gy2dgmztgqge", "bid.game", current_price, memo)) 62 | 63 | # time.sleep(2) 64 | -------------------------------------------------------------------------------- /src/airdrop.py: -------------------------------------------------------------------------------- 1 | import os 2 | import json 3 | from log import loggingSetting 4 | from ut import pushaction, unlock, getAccounts, runPool, buyram 5 | 6 | logger = loggingSetting("airdrop") 7 | 8 | 9 | def main(password): 10 | pass 11 | 12 | # for i in x[1:]: 13 | # print(pushaction("betdicetoken", "signup", [i, "1000.0000 DICE"], i)) # 1000dice 14 | # print( 15 | # pushaction("xxxsevensxxx", "signup", [i, "10000.0000 SEVEN"], i) # 10000 SEVEN 16 | # ) 17 | # print(pushaction("efinitysicbo", "claim", [i], i)) # 100 CHIPS 18 | # print(pushaction("roulettespin", "login", [i, "gy2dgmztgqge"], i)) 19 | # print(pushaction("efinitychips", "claim", [i, "gy2dgmztgqge"], i)) 20 | # print(pushaction("grandpacoins", "mine", [i, "4,BTC", "gy2dgmztgqge"], i)) 21 | # print(pushaction("grandpacoins", "mine", [i, "4,ETH", "gy2dgmztgqge"], i)) 22 | # print(pushaction("grandpacoins", "mine", [i, "4,DOGE", "gy2dgmztgqge"], i)) 23 | # print(pushaction("poormantoken", "signup", [i, "0.0000 POOR"], i)) 24 | # print(pushaction("trybenetwork", "claim", [i], i)) 25 | # print(pushaction("wizznetwork1", "signup", [i, "0.0000 WIZZ"], i)) 26 | 27 | 28 | if __name__ == "__main__": 29 | password = "1" 30 | unlock(password) 31 | accounts = getAccounts() 32 | 33 | def run(i): 34 | print(pushaction("grandpacoins", "mine", [i, "4,BTC", "gy2dgmztgqge"], i)) 35 | print(pushaction("grandpacoins", "mine", [i, "4,ETH", "gy2dgmztgqge"], i)) 36 | print(pushaction("grandpacoins", "mine", [i, "4,DOGE", "gy2dgmztgqge"], i)) 37 | # print(pushaction("eosenbpocket", "signup", [i, "1000.0001 ENB", i], i)) 38 | # t = pushaction("eoscubetoken", "signup", [i, "0.0000 CUBE"], i) 39 | # print(t) 40 | 41 | # t = pushaction("eosindiegame", "claim", [i, "100.0000 IGC"], i) 42 | # if b"you have already signed up" not in t: 43 | # print(t) 44 | # if b"has insufficient ram" in t: 45 | # buyram("gy2dgmztgqge", i, 2) 46 | # print(pushaction("eosindiegame", "claim", ["100.0000 IGC", i], i)) 47 | 48 | runPool(run, accounts) 49 | # run("gy2dgmztgqge") 50 | -------------------------------------------------------------------------------- /src/createAccount.py: -------------------------------------------------------------------------------- 1 | from ut import pushaction, runcleos, delegatebw 2 | from log import loggingSetting 3 | import random 4 | import string 5 | 6 | logger = loggingSetting("createAccount") 7 | 8 | 9 | def genrateRandomName(): 10 | return "".join(random.choices(string.ascii_lowercase, k=12)) 11 | 12 | 13 | def createKey(): 14 | pass 15 | 16 | 17 | def checkName(name): 18 | cmd = "cleos -u http://api.eosbeijing.one get account {}".format(name) 19 | a = runcleos(cmd.split(" ")) 20 | if b"created" not in a: 21 | return True 22 | else: 23 | logger.info("该用户名:{},已经被注册".format(name)) 24 | return False 25 | 26 | 27 | def createUser(f, publicKey, name=None, cpu=0.1, net=0.1, ram=3): 28 | if not name: 29 | name = genrateRandomName() 30 | # 直到随机到一个没有注册的用户名. 31 | while True: 32 | if checkName(name): 33 | break 34 | name = genrateRandomName() 35 | 36 | cmd = [ 37 | "cleos", 38 | "-u", 39 | "http://api.eosbeijing.one", 40 | "system", 41 | "newaccount", 42 | f, 43 | name, 44 | publicKey, 45 | publicKey, 46 | "--stake-net", 47 | "{} EOS".format(net), 48 | "--stake-cpu", 49 | "{} EOS".format(cpu), 50 | "--buy-ram-kbytes", 51 | "{}".format(ram), 52 | ] 53 | t = runcleos(cmd) 54 | logger.info(name) 55 | logger.info(t) 56 | 57 | 58 | def createUser1(publicKey, f, _amount=0.64, name=None): 59 | "使用 signupeoseos 来注册匿名账号,http://signupeoseos.com/#/" 60 | if not name: 61 | name = genrateRandomName() 62 | # 直到随机到一个没有注册的用户名. 63 | amount = "%.4f EOS" % _amount 64 | while True: 65 | if checkName(name): 66 | break 67 | name = genrateRandomName() 68 | memo = "{}-{}".format(name, publicKey) 69 | t = pushaction("eosio.token", "transfer", [f, "signupeoseos", amount, memo], f) 70 | 71 | logger.info("account:{}".format(name)) 72 | logger.info(t) 73 | 74 | 75 | if __name__ == "__main__": 76 | logger.info("开始注册账号...") 77 | publicKey = "" 78 | f = "" 79 | for i in range(100): 80 | createUser1(publicKey, f) 81 | -------------------------------------------------------------------------------- /src/transactions.py: -------------------------------------------------------------------------------- 1 | from ut import runcleos 2 | import json 3 | 4 | 5 | def _push_transaction(d): 6 | cmd = [ 7 | "cleos", 8 | "-u", 9 | "https://api.eosbeijing.one", 10 | "push", 11 | "transaction", 12 | json.dumps(d), 13 | ] 14 | return runcleos(cmd) 15 | 16 | 17 | def getaction(contract, action, data, f, p=False): 18 | """ 19 | contract :要玩的合约地址 20 | action: 玩的方法 21 | data : 详细信息 22 | f :账号 23 | """ 24 | cmd = [ 25 | "cleos", 26 | "-u", 27 | "https://api.eosbeijing.one", 28 | "push", 29 | "action", 30 | contract, 31 | action, 32 | json.dumps(data), 33 | "-d", 34 | "-s", 35 | "-p", 36 | f, 37 | ] 38 | return json.loads(runcleos(cmd)) 39 | 40 | 41 | def push_transaction(actions): 42 | """ 43 | actions是 由多个action组成 44 | 每个action由 [合约账号,调用方法,调用参数,签名者] 组成 45 | """ 46 | # actions = [ 47 | # ["eosio.token","transfer",["eosbocaira12", "redredredred", "1.0000 EOS", "save"],"eosbocaira12"], 48 | # ["eosio.token","transfer",["eosbocaira12", "redredredred", "1.0000 EOS", "save"],"eosbocaira12"], 49 | # ["eosio.token","transfer",["eosbocaira12", "redredredred", "1.0000 EOS", "save"],"eosbocaira12"], 50 | # ] 51 | for i in range(len(actions)): 52 | action = getaction(*actions[i]) 53 | if i == 0: 54 | ret = action 55 | else: 56 | ret["actions"].extend(action["actions"]) 57 | return _push_transaction(ret) 58 | 59 | 60 | if __name__ == "__main__": 61 | actions = [ 62 | [ 63 | "eosio.token", 64 | "transfer", 65 | ["eosbocaira12", "redredredred", "1.0000 EOS", "save"], 66 | "eosbocaira12", 67 | ], 68 | [ 69 | "eosio.token", 70 | "transfer", 71 | ["eosbocaira12", "redredredred", "1.0000 EOS", "save"], 72 | "eosbocaira12", 73 | ], 74 | [ 75 | "eosio.token", 76 | "transfer", 77 | ["eosbocaira12", "redredredred", "1.0000 EOS", "save"], 78 | "eosbocaira12", 79 | ], 80 | ] 81 | print(push_transaction(actions)) 82 | -------------------------------------------------------------------------------- /src/getdata.py: -------------------------------------------------------------------------------- 1 | import json 2 | 3 | import redis 4 | import requests 5 | from pymongo import MongoClient 6 | import pymongo 7 | 8 | 9 | class Data: 10 | 11 | def __init__(self, account_name): 12 | self.url = "https://proxy.eosnode.tools/v1/{}" 13 | # self.url = "https://api-kylin.eosasia.one/v1/{}" 14 | self.s = requests.Session() 15 | self.s.headers = { 16 | "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/69.0.3497.100 Safari/537.36" 17 | } 18 | self.account_name = account_name 19 | self.m = db = MongoClient()["jacks"] 20 | 21 | def getAction(self, pos=0, offset=500): 22 | print("get ", pos) 23 | data = self.postData( 24 | self.url.format("history/get_actions"), 25 | data={"pos": pos, "offset": offset, "account_name": self.account_name}, 26 | ) 27 | if data.get("actions"): 28 | return data 29 | return {"actions": []} 30 | 31 | def getdata(self, lastPos=0, offset=100): 32 | while True: 33 | _data = self.getAction(pos=lastPos, offset=offset)["actions"] 34 | if not _data: 35 | return 36 | _lastPos = _data[-1]["account_action_seq"] + 1 37 | if _lastPos < lastPos + offset: # lastPos是上一次的,_lastPos是拿到数据最后的一条 38 | self.mongoclient.insert_many(_data) 39 | return 40 | else: 41 | self.mongoclient.insert_many(_data) 42 | lastPos = _lastPos 43 | 44 | def postData(self, url, data): 45 | return self.s.post(url, json=data).json() 46 | 47 | def pickleData(self, kname, data): 48 | self.r.set(kname, json.dumps(data)) 49 | 50 | def run(self, dbclean=False, offset=100, lastpos=0): 51 | kname = "{}_alldata".format(self.account_name) 52 | d = self.m[kname] 53 | self.mongoclient = d 54 | a = ( 55 | self.mongoclient.find({}, {"account_action_seq": 1}) 56 | .sort("account_action_seq", pymongo.DESCENDING) 57 | .limit(1) 58 | ) 59 | if a.count(): 60 | lastpos = a[0]["account_action_seq"] 61 | else: 62 | lastpos = 0 63 | 64 | self.getdata(offset=offset, lastPos=lastpos) 65 | 66 | 67 | import os, sys, time 68 | 69 | 70 | def main(): 71 | print("AutoRes is starting") 72 | c = Data("gaojin.game") 73 | c.run(offset=500) 74 | 75 | executable = sys.executable 76 | args = sys.argv[:] 77 | print(args) 78 | args.insert(0, sys.executable) 79 | 80 | time.sleep(1) 81 | print("Respawning") 82 | os.execvp(executable, args) 83 | 84 | 85 | if __name__ == "__main__": 86 | # 87 | main() 88 | -------------------------------------------------------------------------------- /src/node/server.1.js: -------------------------------------------------------------------------------- 1 | var express = require('express') 2 | // var BigInt = require("big-integer"); 3 | 4 | 5 | M = ["VsO/SgvCoVXDiw==", "wr/DlcOgS8OtYg==", "SA1Yw4XDnw==", "R3LDmMOFJgg3", "HyFzA8KcOQ5rAsOsaHfDhMKEw6NAXH1xwq/DoMKIwoksJMOMw6g=", "w68bw4rCv8Kawq7CiMKkXjY=", "VBUT"]; 6 | ! function (t, e) { 7 | ! function (e) { 8 | for (; --e;) t.push(t.shift()) 9 | }(++e) 10 | }(M, 278); 11 | var z = function t(e, n) { 12 | var o = M[e -= 0]; 13 | if (void 0 === t.nULQIX) { 14 | ! function () { 15 | var t = function () { 16 | var t; 17 | try { 18 | t = Function('return (function() {}.constructor("return this")( ));')() 19 | } catch (e) { 20 | t = window 21 | } 22 | return t 23 | }(); 24 | t.atob || (t.atob = function (t) { 25 | for (var e, n, o = String(t).replace(/=+$/, ""), a = 0, i = 0, r = ""; n = o.charAt(i++); ~n && (e = a % 4 ? 64 * e + n : n, a++ % 4) ? r += String.fromCharCode(255 & e >> (-2 * a & 6)) : 0) n = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(n); 26 | return r 27 | }) 28 | }(); 29 | t.UVcWxp = function (t, e) { 30 | for (var n, o = [], a = 0, i = "", r = "", s = 0, c = (t = atob(t)).length; s < c; s++) r += "%" + ("00" + t.charCodeAt(s).toString(16)).slice(-2); 31 | t = decodeURIComponent(r); 32 | for (var l = 0; l < 256; l++) o[l] = l; 33 | for (l = 0; l < 256; l++) a = (a + o[l] + e.charCodeAt(l % e.length)) % 256, n = o[l], o[l] = o[a], o[a] = n; 34 | l = 0, a = 0; 35 | for (var d = 0; d < t.length; d++) a = (a + o[l = (l + 1) % 256]) % 256, n = o[l], o[l] = o[a], o[a] = n, i += String.fromCharCode(t.charCodeAt(d) ^ o[(o[l] + o[a]) % 256]); 36 | return i 37 | }, t.jEjHbw = {}, t.nULQIX = !0 38 | } 39 | var a = t.jEjHbw[e]; 40 | return void 0 === a ? (void 0 === t.ReuwHb && (t.ReuwHb = !0), o = t.UVcWxp(o, n), t.jEjHbw[e] = o) : o = a, o 41 | }; 42 | 43 | function D(t) { 44 | return t[z("0x0", "0e8D")](0) 45 | } 46 | 47 | function I(t) { 48 | for (var e = 0, n = 0; n < t.length; n++) e += D(t[n]); 49 | return e 50 | } 51 | 52 | function run(name, blocknum) { 53 | for ( 54 | o = I(name), 55 | a = blocknum, 56 | i = BigInt(o) + BigInt(a), 57 | console.log(o), 58 | r = BigInt(1), 59 | s = BigInt(0); s < BigInt(7069); s++) { 60 | r *= i, r %= BigInt(7387) 61 | } 62 | return parseInt(r); 63 | 64 | } 65 | var app = express() 66 | 67 | app.set('port', (process.env.PORT || 5000)) 68 | 69 | app.get('/betdice', function (req, res) { 70 | let name = req.query.name; 71 | let blocknum = req.query.blocknum; 72 | let r = run(name, parseInt(blocknum)) 73 | res.send({ 74 | "b": blocknum, 75 | "c": r 76 | }) 77 | }) 78 | 79 | app.listen(app.get('port'), function () { 80 | console.log("Node app is running at localhost:" + app.get('port')) 81 | }) -------------------------------------------------------------------------------- /src/ut.py: -------------------------------------------------------------------------------- 1 | import subprocess 2 | import json 3 | import os 4 | from multiprocessing import Pool 5 | import string 6 | import random 7 | 8 | 9 | def getAccounts(node="eos"): 10 | "获取所有的账号" 11 | current_dir = os.path.dirname(os.path.abspath(__file__)) 12 | if node == "eos": 13 | accountFile = os.path.join(current_dir, "eosaccount.json") 14 | elif node == "bos": 15 | accountFile = os.path.join(current_dir, "bosaccount.json") 16 | with open(accountFile) as f: 17 | account_names = json.loads(f.read())["account_names"] 18 | return account_names 19 | 20 | 21 | def unlock(password): 22 | cmd = [ 23 | # "docker", 24 | # "exec", 25 | # "hungry_cori", 26 | "cleos", 27 | "wallet", 28 | "unlock", 29 | "--password", 30 | password, 31 | ] 32 | print(" ".join(cmd)) 33 | a = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 34 | 35 | 36 | def runcleos(cmd): 37 | a = subprocess.run(cmd, stdout=subprocess.PIPE, stderr=subprocess.STDOUT) 38 | return a.stdout 39 | 40 | 41 | def buyram(f, t, ram): 42 | cmd = [ 43 | # "docker", 44 | # "exec", 45 | # "hungry_cori", 46 | "cleos", 47 | "-u", 48 | "http://api.eosbeijing.one", 49 | "system", 50 | "buyram", 51 | f, 52 | t, 53 | f"{ram}", 54 | "--kbytes", 55 | "-p", 56 | f, 57 | ] 58 | return runcleos(cmd) 59 | 60 | 61 | def delegatebw(f, t, net, cpu): 62 | """ 63 | 抵押 cpu ,内存 64 | f>t,谁抵押给谁,如果是抵押给自己的话,则, f,t都是自己 65 | """ 66 | 67 | cmd = [ 68 | # "docker", 69 | # "exec", 70 | # "hungry_cori", 71 | "cleos", 72 | "-u", 73 | "http://api.eosbeijing.one", 74 | "system", 75 | "delegatebw", 76 | f, 77 | t, 78 | "%.4f EOS" % net, 79 | "%.4f EOS" % cpu, 80 | "-p", 81 | f, 82 | ] 83 | return runcleos(cmd) 84 | 85 | 86 | def pushaction(contract, action, data, f, node="eos"): 87 | """ 88 | contract :要玩的合约地址 89 | action: 玩的方法 90 | data : 详细信息 91 | f :账号 92 | """ 93 | if node == "eos": 94 | apiurl = "http://api.eosbeijing.one" 95 | elif node == "bos": 96 | apiurl = "http://bospush.mytokenpocket.vip" 97 | cmd = [ 98 | "cleos", 99 | "-u", 100 | apiurl, 101 | "push", 102 | "action", 103 | contract, 104 | action, 105 | json.dumps(data), 106 | "-p", 107 | f, 108 | ] 109 | return runcleos(cmd) 110 | 111 | 112 | def runPool(f, accounts): 113 | with Pool() as pool: 114 | pool.map(f, accounts) 115 | 116 | 117 | def gettable(code, scope, table, node="eos"): 118 | if node == "eos": 119 | apiurl = "http://api.eosbeijing.one" 120 | elif node == "bos": 121 | apiurl = "https://api.boscore.io" 122 | return json.loads( 123 | runcleos(["cleos", "-u", apiurl, "get", "table", code, scope, table]) 124 | ) 125 | 126 | 127 | def genrateRandomN(k=12): 128 | return "".join(random.choices(string.ascii_lowercase, k=k)) 129 | -------------------------------------------------------------------------------- /src/betdice.py: -------------------------------------------------------------------------------- 1 | import json 2 | from time import sleep 3 | 4 | import requests 5 | 6 | import arrow 7 | from log import loggingSetting 8 | from ut import pushaction, unlock 9 | 10 | s = requests.Session() 11 | 12 | rules = [10000, 10000, 30000, 90000, 270000] 13 | 14 | logger = loggingSetting("betdice") 15 | 16 | 17 | def play(myaccount, password): 18 | logger.info("#" * 60) 19 | logger.info("开始玩...") 20 | account = "betdicetoken" 21 | action = "transfer" 22 | count = 0 23 | while True: 24 | while True: 25 | for _amount in rules: 26 | if count > 6: 27 | logger.info("连续输了6吧了...等待60s再继续...") 28 | sleep(60) 29 | amout = "%.4f DICE" % _amount 30 | memo = ( 31 | "action:bet,seed:p9PlfQYTo0p1B3O1wO,rollUnder:50,ref:bbheasxtlatd" 32 | ) 33 | logger.info("投入的金额为:{}".format(_amount)) 34 | data = [myaccount, "betdiceadmin", amout, memo] 35 | 36 | t = pushaction(account, action, data, myaccount) 37 | send_t = arrow.utcnow() 38 | sleep(1) 39 | if b"Locked" in t: 40 | logger.info("cleos 没有解锁,正在解锁") 41 | unlock(password) 42 | break # 重头循环开始玩. 43 | elif b"transaction:" in t: 44 | logger.info("请求发送成功,正在获取游戏结果.") 45 | isWin = getData(myaccount, "betdiceadmin", send_t) 46 | if isWin: # 我赢了 47 | logger.info("赢了.") 48 | count = 0 49 | break # 重头循环开始玩. 50 | else: 51 | logger.info("输了.") 52 | 53 | elif b"has one game not yet" in t: 54 | logger.info("玩的太快了,上一次玩的还没有出结果") 55 | sleep(10) 56 | break 57 | else: 58 | logger.info("发送请求失败,报错为:{}".format(t)) 59 | sleep(10) 60 | break 61 | # 每次玩等待2s 62 | count += 1 63 | sleep(2) 64 | 65 | 66 | def getData(account, contractAccount, t): 67 | url = "https://proxy.eosnode.tools/v1/{}" 68 | 69 | data = {"pos": -1, "account_name": account, "json": True} 70 | z = s.post(url.format("history/get_actions"), json=data) 71 | if not z.json().get("actions"): 72 | sleep(2) 73 | return getData(account, contractAccount, t) 74 | _data = list(filter(lambda k: arrow.get(k["block_time"]) > t, z.json()["actions"])) 75 | if _data: 76 | for i in reversed(_data): 77 | if i["action_trace"]["act"]["account"] == contractAccount: 78 | gamedata = i["action_trace"]["act"]["data"] 79 | rollUnder = gamedata["rollUnder"] 80 | diceNumber = gamedata["diceNumber"] 81 | logger.info("投注数字为{}, dice为{}".format(rollUnder, diceNumber)) 82 | if rollUnder > diceNumber: 83 | return True 84 | else: 85 | return False 86 | sleep(2) 87 | return getData(account, contractAccount, t) 88 | 89 | 90 | if __name__ == "__main__": 91 | myaccount = "gy2dgmztgqge" 92 | password = "" 93 | play(myaccount, password) 94 | -------------------------------------------------------------------------------- /src/node/server.js: -------------------------------------------------------------------------------- 1 | var express = require('express') 2 | // var BigInt = require("big-integer"); 3 | 4 | 5 | q = ["eGxxbG8=", "Y2hOSGQ=", "YU5Tam0=", "bG9n", "d2Fybg==", "ZGVidWc=", "aW5mbw==", "ZXJyb3I=", "dHJhY2U=", "WnpFTG4=", "YXBwbHk=", "bWRqb1c=", "cmV0dXJuIChmdW5jdGlvbigpIA==", "ZnVuY3Rpb24gKlwoICpcKQ==", "aW5pdA==", "Y2hhaW4=", "aW5wdXQ=", "VWJQeW8=", "dVVrT3Q=", "VnRaWmY=", "ZnRTalk=", "d2hpbGUgKHRydWUpIHt9", "SU5wT1o=", "WXBCTmw=", "dlZXeEc=", "cHZUY20=", "Y29uc29sZQ==", "R1h1S3Q=", "eEtoVHU=", "Y29uc3RydWN0b3I=", "Z2dlcg==", "Y2FsbA==", "YWN0aW9u", "eG5JcnY=", "ZXhjZXB0aW9u", "Y2hhckNvZGVBdA==", "elBmVHA=", "bGVuZ3Ro", "dHdvRmk=", "ZW9z", "Z2V0SW5mbw==", "JHN0b3Jl", "c3RhdGU=", "YWNjb3VudA==", "bmFtZQ==", "bGFzdF9pcnJldmVyc2libGVfYmxvY2tfbnVt", "ZmNvd0Y=", "c3RyaW5n", "Y291bnRlcg==", "WExMcGM=", "Q2tSQlQ=", "XCtcKyAqKD86XzB4KD86W2EtZjAtOV0pezQsNn18KD86XGJ8XGQpW2EtejAtOV17MSw0fSg/OlxifFxkKSk=", "dGVzdA==", "RW9vSXM=", "ZGVidQ==", "c3RhdGVPYmplY3Q="] 6 | R = function t(n, e) { 7 | var o = q[n -= 0]; 8 | void 0 === t.Tdpdag && (! function () { 9 | var t = function () { 10 | var t; 11 | try { 12 | t = Function('return (function() {}.constructor("return this")( ));')() 13 | } catch (n) { 14 | t = window 15 | } 16 | return t 17 | }(); 18 | t.atob || (t.atob = function (t) { 19 | for (var n, e, o = String(t).replace(/=+$/, ""), a = 0, i = 0, r = ""; e = o.charAt(i++); ~e && (n = a % 4 ? 64 * n + e : e, a++ % 4) ? r += String.fromCharCode(255 & n >> (-2 * a & 6)) : 0) e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=".indexOf(e); 20 | return r 21 | }) 22 | }(), t.bTcjyj = function (t) { 23 | for (var n = atob(t), e = [], o = 0, a = n.length; o < a; o++) e += "%" + ("00" + n.charCodeAt(o).toString(16)).slice(-2); 24 | return decodeURIComponent(e) 25 | }, t.idAmgH = {}, t.Tdpdag = !0); 26 | var a = t.idAmgH[n]; 27 | return void 0 === a ? (o = t.bTcjyj(o), t.idAmgH[n] = o) : o = a, o 28 | } 29 | 30 | function O(t) { 31 | return t[R("0x23")](0) >= "a" [R("0x23")](0) && t[R("0x23")](0) <= "z".charCodeAt(0) ? t.charCodeAt(0) - "a" [R("0x23")](0) + 6 : t[R("0x23")](0) >= "1" [R("0x23")](0) && t[R("0x23")](0) <= "5" [R("0x23")](0) ? t[R("0x23")](0) - "1" [R("0x23")](0) + 1 : 0 32 | } 33 | 34 | function H(t) { 35 | for (var n = t.length, e = BigInt(0), o = 0; o <= 12; ++o) { 36 | var a = BigInt(0); 37 | if (o < n && o <= 12 && (a = BigInt(O(t[o]))), o < 12) { 38 | if ("GqDPD" === R("0x24")) { 39 | for (var i = t[R("0x25")], r = BigInt(0), s = 0; s <= 12; ++s) { 40 | var c = BigInt(0); 41 | s < i && s <= 12 && (c = BigInt(O(t[s]))), s < 12 ? (c &= BigInt(31), c <<= BigInt(64 - 5 * (s + 1))) : c &= BigInt(15), r |= c 42 | } 43 | return r 44 | } 45 | a &= BigInt(31), a <<= BigInt(64 - 5 * (o + 1)) 46 | } else { 47 | if ("twoFi" !== R("0x26")) { 48 | var l = fn.apply(context, arguments); 49 | return fn = null, l 50 | } 51 | a &= BigInt(15) 52 | } 53 | e |= a 54 | } 55 | return e 56 | } 57 | 58 | function run(name, blocknum) { 59 | for ( 60 | o = H(name), 61 | a = blocknum, 62 | i = BigInt(o) + BigInt(a), 63 | console.log(o), 64 | i &= BigInt(4294967295), 65 | r = BigInt(1), 66 | s = BigInt(0); s < BigInt(7069); s++) { 67 | r *= i, r %= BigInt(7387) 68 | } 69 | return parseInt(r); 70 | 71 | } 72 | var app = express() 73 | 74 | app.set('port', (process.env.PORT || 5000)) 75 | 76 | app.get('/betdice', function (req, res) { 77 | let name = req.query.name; 78 | let blocknum = req.query.blocknum; 79 | let r = run(name, parseInt(blocknum)) 80 | res.send({ 81 | "b": blocknum, 82 | "c": r 83 | }) 84 | }) 85 | 86 | app.listen(app.get('port'), function () { 87 | console.log("Node app is running at localhost:" + app.get('port')) 88 | }) -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | 2 | # Created by https://www.gitignore.io/api/python 3 | 4 | # log 5 | *.log 6 | 7 | ## account 8 | eosaccount.json 9 | 10 | # vscode 11 | .vscode 12 | 13 | ### Python ### 14 | # Byte-compiled / optimized / DLL files 15 | __pycache__/ 16 | *.py[cod] 17 | *$py.class 18 | 19 | # C extensions 20 | *.so 21 | 22 | # Distribution / packaging 23 | .Python 24 | build/ 25 | develop-eggs/ 26 | dist/ 27 | downloads/ 28 | eggs/ 29 | .eggs/ 30 | lib/ 31 | lib64/ 32 | parts/ 33 | sdist/ 34 | var/ 35 | wheels/ 36 | *.egg-info/ 37 | .installed.cfg 38 | *.egg 39 | MANIFEST 40 | 41 | # PyInstaller 42 | # Usually these files are written by a python script from a template 43 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 44 | *.manifest 45 | *.spec 46 | 47 | # Installer logs 48 | pip-log.txt 49 | pip-delete-this-directory.txt 50 | 51 | # Unit test / coverage reports 52 | htmlcov/ 53 | .tox/ 54 | .nox/ 55 | .coverage 56 | .coverage.* 57 | .cache 58 | nosetests.xml 59 | coverage.xml 60 | *.cover 61 | .hypothesis/ 62 | .pytest_cache/ 63 | 64 | # Translations 65 | *.mo 66 | *.pot 67 | 68 | # Django stuff: 69 | *.log 70 | local_settings.py 71 | db.sqlite3 72 | 73 | # Flask stuff: 74 | instance/ 75 | .webassets-cache 76 | 77 | # Scrapy stuff: 78 | .scrapy 79 | 80 | # Sphinx documentation 81 | docs/_build/ 82 | 83 | # PyBuilder 84 | target/ 85 | 86 | # Jupyter Notebook 87 | .ipynb_checkpoints 88 | 89 | # IPython 90 | profile_default/ 91 | ipython_config.py 92 | 93 | # pyenv 94 | .python-version 95 | 96 | # celery beat schedule file 97 | celerybeat-schedule 98 | 99 | # SageMath parsed files 100 | *.sage.py 101 | 102 | # Environments 103 | .env 104 | .venv 105 | env/ 106 | venv/ 107 | ENV/ 108 | env.bak/ 109 | venv.bak/ 110 | 111 | # Spyder project settings 112 | .spyderproject 113 | .spyproject 114 | 115 | # Rope project settings 116 | .ropeproject 117 | 118 | # mkdocs documentation 119 | /site 120 | 121 | # mypy 122 | .mypy_cache/ 123 | .dmypy.json 124 | dmypy.json 125 | 126 | ### Python Patch ### 127 | .venv/ 128 | 129 | ### Python.VirtualEnv Stack ### 130 | # Virtualenv 131 | # http://iamzed.com/2009/05/07/a-primer-on-virtualenv/ 132 | [Bb]in 133 | [Ii]nclude 134 | [Ll]ib 135 | [Ll]ib64 136 | [Ll]ocal 137 | [Ss]cripts 138 | pyvenv.cfg 139 | pip-selfcheck.json 140 | 141 | 142 | # End of https://www.gitignore.io/api/python 143 | src/config.py 144 | src/int_run.py 145 | src/tmp.pkl 146 | 147 | # Created by https://www.gitignore.io/api/node 148 | 149 | ### Node ### 150 | # Logs 151 | logs 152 | *.log 153 | npm-debug.log* 154 | yarn-debug.log* 155 | yarn-error.log* 156 | 157 | # Runtime data 158 | pids 159 | *.pid 160 | *.seed 161 | *.pid.lock 162 | 163 | # Directory for instrumented libs generated by jscoverage/JSCover 164 | lib-cov 165 | 166 | # Coverage directory used by tools like istanbul 167 | coverage 168 | 169 | # nyc test coverage 170 | .nyc_output 171 | 172 | # Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files) 173 | .grunt 174 | 175 | # Bower dependency directory (https://bower.io/) 176 | bower_components 177 | 178 | # node-waf configuration 179 | .lock-wscript 180 | 181 | # Compiled binary addons (https://nodejs.org/api/addons.html) 182 | build/Release 183 | 184 | # Dependency directories 185 | node_modules/ 186 | jspm_packages/ 187 | 188 | # TypeScript v1 declaration files 189 | typings/ 190 | 191 | # Optional npm cache directory 192 | .npm 193 | 194 | # Optional eslint cache 195 | .eslintcache 196 | 197 | # Optional REPL history 198 | .node_repl_history 199 | 200 | # Output of 'npm pack' 201 | *.tgz 202 | 203 | # Yarn Integrity file 204 | .yarn-integrity 205 | 206 | # dotenv environment variables file 207 | .env 208 | 209 | # parcel-bundler cache (https://parceljs.org/) 210 | .cache 211 | 212 | # next.js build output 213 | .next 214 | 215 | # nuxt.js build output 216 | .nuxt 217 | 218 | # vuepress build output 219 | .vuepress/dist 220 | 221 | # Serverless directories 222 | .serverless 223 | 224 | 225 | # End of https://www.gitignore.io/api/node 226 | src/int_run.1.py 227 | src/node/package-lock.json 228 | src/node/package.json 229 | src/bosaccount.json 230 | ws.py 231 | -------------------------------------------------------------------------------- /Pipfile.lock: -------------------------------------------------------------------------------- 1 | { 2 | "_meta": { 3 | "hash": { 4 | "sha256": "d4a20d601ed6f8ac217eddd04a990550a9510e5a5f9e0099cfba9c177b9d1d74" 5 | }, 6 | "pipfile-spec": 6, 7 | "requires": { 8 | "python_version": "3.6" 9 | }, 10 | "sources": [ 11 | { 12 | "name": "pypi", 13 | "url": "https://mirrors.aliyun.com/pypi/simple/", 14 | "verify_ssl": true 15 | } 16 | ] 17 | }, 18 | "default": { 19 | "arrow": { 20 | "hashes": [ 21 | "sha256:a558d3b7b6ce7ffc74206a86c147052de23d3d4ef0e17c210dd478c53575c4cd" 22 | ], 23 | "index": "pypi", 24 | "version": "==0.12.1" 25 | }, 26 | "certifi": { 27 | "hashes": [ 28 | "sha256:376690d6f16d32f9d1fe8932551d80b23e9d393a8578c5633a2ed39a64861638", 29 | "sha256:456048c7e371c089d0a77a5212fb37a2c2dce1e24146e3b7e0261736aaeaa22a" 30 | ], 31 | "version": "==2018.8.24" 32 | }, 33 | "chardet": { 34 | "hashes": [ 35 | "sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae", 36 | "sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691" 37 | ], 38 | "version": "==3.0.4" 39 | }, 40 | "idna": { 41 | "hashes": [ 42 | "sha256:156a6814fb5ac1fc6850fb002e0852d56c0c8d2531923a51032d1b70760e186e", 43 | "sha256:684a38a6f903c1d71d6d5fac066b58d7768af4de2b832e426ec79c30daa94a16" 44 | ], 45 | "version": "==2.7" 46 | }, 47 | "pyeos": { 48 | "git": "https://github.com/eosnewyork/eospy", 49 | "ref": "5dd286021e5d68b5fd13c5c3234fdd6fe406775b" 50 | }, 51 | "python-dateutil": { 52 | "hashes": [ 53 | "sha256:1adb80e7a782c12e52ef9a8182bebeb73f1d7e24e374397af06fb4956c8dc5c0", 54 | "sha256:e27001de32f627c22380a688bcc43ce83504a7bc5da472209b4c70f02829f0b8" 55 | ], 56 | "version": "==2.7.3" 57 | }, 58 | "redis": { 59 | "hashes": [ 60 | "sha256:8a1900a9f2a0a44ecf6e8b5eb3e967a9909dfed219ad66df094f27f7d6f330fb", 61 | "sha256:a22ca993cea2962dbb588f9f30d0015ac4afcc45bee27d3978c0dbe9e97c6c0f" 62 | ], 63 | "index": "pypi", 64 | "version": "==2.10.6" 65 | }, 66 | "requests": { 67 | "hashes": [ 68 | "sha256:63b52e3c866428a224f97cab011de738c36aec0185aa91cfacd418b5d58911d1", 69 | "sha256:ec22d826a36ed72a7358ff3fe56cbd4ba69dd7a6718ffd450ff0e9df7a47ce6a" 70 | ], 71 | "index": "pypi", 72 | "version": "==2.19.1" 73 | }, 74 | "six": { 75 | "hashes": [ 76 | "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", 77 | "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb" 78 | ], 79 | "version": "==1.11.0" 80 | }, 81 | "urllib3": { 82 | "hashes": [ 83 | "sha256:a68ac5e15e76e7e5dd2b8f94007233e01effe3e50e8daddf69acfd81cb686baf", 84 | "sha256:b5725a0bd4ba422ab0e66e89e030c806576753ea3ee08554382c14e685d117b5" 85 | ], 86 | "version": "==1.23" 87 | } 88 | }, 89 | "develop": { 90 | "appnope": { 91 | "hashes": [ 92 | "sha256:5b26757dc6f79a3b7dc9fab95359328d5747fcb2409d331ea66d0272b90ab2a0", 93 | "sha256:8b995ffe925347a2138d7ac0fe77155e4311a0ea6d6da4f5128fe4b3cbe5ed71" 94 | ], 95 | "markers": "sys_platform == 'darwin'", 96 | "version": "==0.1.0" 97 | }, 98 | "backcall": { 99 | "hashes": [ 100 | "sha256:38ecd85be2c1e78f77fd91700c76e14667dc21e2713b63876c0eb901196e01e4", 101 | "sha256:bbbf4b1e5cd2bdb08f915895b51081c041bac22394fdfcfdfbe9f14b77c08bf2" 102 | ], 103 | "version": "==0.1.0" 104 | }, 105 | "decorator": { 106 | "hashes": [ 107 | "sha256:2c51dff8ef3c447388fe5e4453d24a2bf128d3a4c32af3fabef1f01c6851ab82", 108 | "sha256:c39efa13fbdeb4506c476c9b3babf6a718da943dab7811c206005a4a956c080c" 109 | ], 110 | "version": "==4.3.0" 111 | }, 112 | "ipython": { 113 | "hashes": [ 114 | "sha256:47b17ea874454a5c2eacc2732b04a750d260b01ba479323155ac8a39031f5535", 115 | "sha256:9fed506c3772c875a3048bc134a25e6f5e997b1569b2636f6a5d891f34cbfd46" 116 | ], 117 | "index": "pypi", 118 | "version": "==7.0.1" 119 | }, 120 | "ipython-genutils": { 121 | "hashes": [ 122 | "sha256:72dd37233799e619666c9f639a9da83c34013a73e8bbc79a7a6348d93c61fab8", 123 | "sha256:eb2e116e75ecef9d4d228fdc66af54269afa26ab4463042e33785b887c628ba8" 124 | ], 125 | "version": "==0.2.0" 126 | }, 127 | "jedi": { 128 | "hashes": [ 129 | "sha256:0191c447165f798e6a730285f2eee783fff81b0d3df261945ecb80983b5c3ca7", 130 | "sha256:b7493f73a2febe0dc33d51c99b474547f7f6c0b2c8fb2b21f453eef204c12148" 131 | ], 132 | "version": "==0.13.1" 133 | }, 134 | "parso": { 135 | "hashes": [ 136 | "sha256:35704a43a3c113cce4de228ddb39aab374b8004f4f2407d070b6a2ca784ce8a2", 137 | "sha256:895c63e93b94ac1e1690f5fdd40b65f07c8171e3e53cbd7793b5b96c0e0a7f24" 138 | ], 139 | "version": "==0.3.1" 140 | }, 141 | "pexpect": { 142 | "hashes": [ 143 | "sha256:2a8e88259839571d1251d278476f3eec5db26deb73a70be5ed5dc5435e418aba", 144 | "sha256:3fbd41d4caf27fa4a377bfd16fef87271099463e6fa73e92a52f92dfee5d425b" 145 | ], 146 | "markers": "sys_platform != 'win32'", 147 | "version": "==4.6.0" 148 | }, 149 | "pickleshare": { 150 | "hashes": [ 151 | "sha256:87683d47965c1da65cdacaf31c8441d12b8044cdec9aca500cd78fc2c683afca", 152 | "sha256:9649af414d74d4df115d5d718f82acb59c9d418196b7b4290ed47a12ce62df56" 153 | ], 154 | "version": "==0.7.5" 155 | }, 156 | "prompt-toolkit": { 157 | "hashes": [ 158 | "sha256:5eff0c9fd652384ecfe730bbcdf3658868725c6928fbf608d9338834d7a974b6", 159 | "sha256:81da9ecf6ca6806a549697529af8ec3ac5b739c13ac14607218e650db1b53131", 160 | "sha256:c67c1c264d8a0d9e1070e9272bacee00f76c81daab7bc4bf09ff991bd1e224a7" 161 | ], 162 | "version": "==2.0.5" 163 | }, 164 | "ptyprocess": { 165 | "hashes": [ 166 | "sha256:923f299cc5ad920c68f2bc0bc98b75b9f838b93b599941a6b63ddbc2476394c0", 167 | "sha256:d7cc528d76e76342423ca640335bd3633420dc1366f258cb31d05e865ef5ca1f" 168 | ], 169 | "version": "==0.6.0" 170 | }, 171 | "pygments": { 172 | "hashes": [ 173 | "sha256:78f3f434bcc5d6ee09020f92ba487f95ba50f1e3ef83ae96b9d5ffa1bab25c5d", 174 | "sha256:dbae1046def0efb574852fab9e90209b23f556367b5a320c0bcb871c77c3e8cc" 175 | ], 176 | "version": "==2.2.0" 177 | }, 178 | "simplegeneric": { 179 | "hashes": [ 180 | "sha256:dc972e06094b9af5b855b3df4a646395e43d1c9d0d39ed345b7393560d0b9173" 181 | ], 182 | "version": "==0.8.1" 183 | }, 184 | "six": { 185 | "hashes": [ 186 | "sha256:70e8a77beed4562e7f14fe23a786b54f6296e34344c23bc42f07b15018ff98e9", 187 | "sha256:832dc0e10feb1aa2c68dcc57dbb658f1c7e65b9b61af69048abc87a2db00a0eb" 188 | ], 189 | "version": "==1.11.0" 190 | }, 191 | "traitlets": { 192 | "hashes": [ 193 | "sha256:9c4bd2d267b7153df9152698efb1050a5d84982d3384a37b2c1f7723ba3e7835", 194 | "sha256:c6cb5e6f57c5a9bdaa40fa71ce7b4af30298fbab9ece9815b5d995ab6217c7d9" 195 | ], 196 | "version": "==4.3.2" 197 | }, 198 | "wcwidth": { 199 | "hashes": [ 200 | "sha256:3df37372226d6e63e1b1e1eda15c594bca98a22d33a23832a90998faa96bc65e", 201 | "sha256:f4ebe71925af7b40a864553f761ed559b43544f8f71746c2d756c7fe788ade7c" 202 | ], 203 | "version": "==0.1.7" 204 | } 205 | } 206 | } 207 | --------------------------------------------------------------------------------