def tx_notification():
    print("asdasndas,na")
    mycursor.execute(
        'SELECT address,type_id FROM sws_address WHERE tx_notification_preferred = "1"'
    )
    sws_addresses = mycursor.fetchall()
    print(sws_addresses)
    for addres in sws_addresses:
        address = addres[0]
        type_id = addres[1]

        if type_id == 1:
            symbol = 'ETH'
            currency = eth_notification(address, symbol, type_id)

        if type_id == 2:
            symbol = 'BTC'
            currency = btc_notification(address, symbol, type_id)
        '''
        if type_id == 75:
            symbol = 'XRP'
            currency = xrp_notification(address,symbol,type_id)
        

        if type_id == 12:
            symbol = 'BCH'
            currency = bch_notification(address,symbol,type_id)        
        

        if type_id == 53:
            symbol = 'LTC'
            currency = ltc_notification(address,symbol,type_id)        
    

        if type_id == 35:
            symbol = 'EOS'
            currency = eos_notification(address,symbol,type_id)        
        
        if type_id == 11:
            symbol = 'BNB'
            currency = bnb_notification(address,symbol,type_id)
        
        if type_id == 15:
            symbol = 'BSV'
            currency = bsv_notification(address,symbol,type_id)
        '''
        '''
def Top_user_percentage():
    print("runnnnnn")
    mycursor.execute('SELECT address,address_risk_score FROM sws_address')
    check = mycursor.fetchall()
    all_records_count = len(check)
    data = []
    for record in check:
        risk_score = record[1]
        data.append(risk_score)
    for score in check:
        r_address = score[0]
        r_score = score[1]
        count = 1
        for scr in data:
            if r_score < scr:
                count = count + 1
        calculating = all_records_count * count / all_records_count
        print(r_address)
        print(calculating)
        mycursor.execute('UPDATE sws_address SET address_top_rate ="' +
                         str(calculating) + '" WHERE address = "' +
                         str(r_address) + '"')
        mydb.commit()
        '''
def profile_risk_score():
    print("asdasndas,na")
    mycursor.execute('SELECT username FROM sws_user')
    sws_users = mycursor.fetchall()
    for user in sws_users:
        user_name=user[0]
        mycursor.execute('SELECT address_risk_score FROM sws_address WHERE cms_login_name="'+str(user_name)+'"')
        risk_scores = mycursor.fetchall()
        list_of_scores=[]
        for risk_score in risk_scores:
            score = risk_score[0]
            list_of_scores.append(score)
        if list_of_scores:
            avrage = np.mean(list_of_scores)
            mycursor.execute('SELECT profile_risk_score_by_kyc_options FROM sws_user WHERE username="******"')
            risk_scores = mycursor.fetchone()
            risk_score_kyc = risk_scores[0]
            final_profile_riskscore=risk_score_kyc+avrage
            mycursor.execute('UPDATE sws_user SET profile_risk_score="'+str(final_profile_riskscore)+'" WHERE username = "******"')
Esempio n. 4
0
def auto_fetch():
    print("runing")
    response_user_token = requests.get(url=ETH_SCAM_URL)
    mycursor.execute("""CREATE TABLE IF NOT EXISTS `sws_heist_address` ( id INT,coin varchar(100),tag_name varchar(100),status varchar(100),address varchar(100),source varchar(1000),subcategory varchar(100),description varchar(1500),also_known_as varchar(1000))""")
    response = response_user_token.json()
    result = response['result']
    if result:
        for record in result:
            if "addresses" in record:
                coin = record['coin']
                category = record['category']
                status =  record['status']
                url = record['url']
                if "subcategory" in record:         
                    subcate = record['subcategory']
                else:
                    subcate = ""
                subcategory = subcate
                if "description" in record:         
                    description = record['description']
                else:
                    description = ""
                addr = record['addresses']
                for add in addr:
                    addresses = add
                    mycursor.execute('SELECT * FROM sws_heist_address WHERE address="'+str(addresses)+'"')
                    check = mycursor.fetchall()
                    if not check:
                        print("added")
                        mycursor.execute('''SELECT MAX(id) FROM sws_heist_address''')
                        maxid = mycursor.fetchone()
                        check=maxid[0]
                        if check is None:
                            ids = 1
                        else:
                            ids=(maxid[0]+1)
                        print(ids)
                        conversion =description.replace('"','')
                        mycursor.execute('INSERT INTO sws_heist_address (id,coin,tag_name,status,address,source,subcategory,description,also_known_as) VALUES ("'+str(ids)+'","'+str(coin)+'","'+str(category)+'","'+str(status)+'","'+str(addresses)+'","https://etherscamdb.info/api/scams","'+str(subcategory)+'","'+str(conversion)+'","'+str(url)+'")')
                        mydb.commit()
                    else:
                        print("already_exist")
def btc_notification(address, symbol, type_id):
    print("ashgajhghgggggggggggggggggggggggggggggggggggggggggggggggggggggggg")
    ret = BTC_balance.replace("{{address}}", '' + address + '')
    ret1 = ret.replace("{{symbol}}", '' + symbol + '')
    print(ret1)
    response_user_token = requests.get(url=ret1)
    transaction = response_user_token.json()
    total_current_tx = transaction['transaction_count']
    print('25')
    mycursor.execute(
        'SELECT total_tx_calculated FROM sws_address WHERE address="' +
        str(address) + '"')
    current_tx = mycursor.fetchone()
    tx_count = current_tx[0]
    print('29')
    print("tx_count")
    print(tx_count)
    print("total_current_tx")
    print(total_current_tx)
    if tx_count is None or total_current_tx > tx_count:
        mycursor.execute('UPDATE sws_address SET total_tx_calculated ="' +
                         str(total_current_tx) + '"  WHERE address = "' +
                         str(address) + '"')
        mycursor.execute(
            'SELECT u.email FROM db_safename.sws_address as a left join db_safename.sws_user as u on a.cms_login_name = u.username where a.address="'
            + str(address) + '"')
        email = mycursor.fetchone()
        email_id = email[0]
        print('35')
        if email_id is not None:
            message = Mail(
                from_email=Sendgrid_default_mail,
                to_emails=email_id,
                subject=
                'SafeName - New Transaction Notification In Your Account',
                html_content=
                '<h3> You got a new transaction on your BTC address</h3>')
            sg = SendGridAPIClient(SendGridAPIClient_key)
            response = sg.send(message)
            print(response.status_code, response.body, response.headers)
        else:
            print("email is none")
    else:
        print("no new transaction")
    '''
    transactions = transaction['txs']
    
    array=[]
    total_current_tx=len(transactions)s
    '''
    '''
def risk_score():
    mycursor.execute('SELECT address FROM sws_risk_score')
    check = mycursor.fetchall()
    for addr in check:
        address=addr[0]
        mycursor.execute('SELECT risk_score_by_tx,riskscore_by_safename,riskscore_by_knownheist FROM sws_risk_score WHERE address="'+str(address)+'"')
        check = mycursor.fetchall()
        for record in check:
            print(record)
            score = 0
            for lst in record:
                if lst is not None:
                    score = lst+score
            risk_score = 50+score
            mycursor.execute('UPDATE sws_address SET address_risk_score="'+str(risk_score)+'" WHERE address = "'+str(address)+'"')
            print("updated")
            mydb.commit()
def block_winner():
    print("running block")
    recor = mongo.db.hashrate_calculation.remove()
    mycursor.execute('SELECT username FROM sws_user')
    check = mycursor.fetchall()
    count = 1
    for user in check:
        username = user[0]
        mycursor.execute(
            'SELECT address from sws_address WHERE cms_login_name="' +
            str(username) + '" ')
        chek = mycursor.fetchall()
        contracts = []
        for addr in chek:
            address = addr[0]
            print("addressssssssssssssssssssssssssss")
            print(address)
            heroes_records = mongo.db.participate_heroes.find_one(
                {"address": address})
            chain = heroes_records['chainbreakers']
            crypto = heroes_records['cryptoskulls']
            ethere = heroes_records['etheremon']
            mycrypto = heroes_records['mycryptoheroes']

            mycryptoheroes_records = mongo.db.mycryptoheroes.find(
                {"owner_addresses": address})
            mycryptoheroes_records = [
                serialize_doc(mycryptoheroes_record)
                for mycryptoheroes_record in mycryptoheroes_records
            ]
            mycryptoheroes_rec = mycryptoheroes_records[0:1]

            etheremon_records = mongo.db.etheremon.find(
                {"owner_addresses": address})
            etheremon_records = [
                serialize_doc(etheremon_record)
                for etheremon_record in etheremon_records
            ]
            etheremon_rec = etheremon_records[0:1]

            cryptoskulls_records = mongo.db.cryptoskulls.find(
                {"owner_addresses": address})
            cryptoskulls_records = [
                serialize_doc(cryptoskulls_record)
                for cryptoskulls_record in cryptoskulls_records
            ]
            cryptoskulls_rec = cryptoskulls_records[0:1]

            chainbreakers_records = mongo.db.chainbreakers.find(
                {"owner_addresses": address})
            chainbreakers_records = [
                serialize_doc(chainbreakers_record)
                for chainbreakers_record in chainbreakers_records
            ]
            chainbreakers_rec = chainbreakers_records[0:1]

            all_mons = mycryptoheroes_rec + etheremon_rec + cryptoskulls_rec + chainbreakers_rec  #+ cryptokitties_records

            for mons in all_mons:
                contracts.append(mons)
        print("4")
        user_hashrate_sum = []
        for all_contracts in contracts:
            if 'hashrate' in all_contracts:
                hashrate = all_contracts['hashrate']
                user_hashrate_sum.append(hashrate)
        print("4777777")
        sum_of_hashrate = sum(user_hashrate_sum)
        print(len(user_hashrate_sum))
        print("499999999")
        print(sum_of_hashrate)

        if count == 1:
            print("5111111111111111111111111")
            starting_number = 1
            ending_number = starting_number + sum_of_hashrate
        else:
            print("55555555555555555555555555555555")
            highest = mongo.db.hashrate_calculation.find_one(
                sort=[("ending_number", -1)])
            print("6000000000000000")
            print(highest)
            print("6222222222222222")
            if highest is not None:
                starting_number = highest['ending_number']
                ending_number = sum_of_hashrate + starting_number
                print(starting_number)
                print(ending_number)
            else:
                starting_number = None
                ending_number = None
        count = count + 1
        print("71111111111111")
        ret = mongo.db.hashrate_calculation.update({"username": username}, {
            "$set": {
                "username": username,
                "sum_of_hashrate": sum_of_hashrate,
                "starting_number": starting_number,
                "ending_number": ending_number
            }
        },
                                                   upsert=True)
        print("doneeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee")
def risk_score_by_safename():
    print("runnnnnn")
    mycursor.execute("""CREATE TABLE IF NOT EXISTS `sws_risk_score` ( id INT NOT NULL AUTO_INCREMENT,address varchar(100),risk_score_by_tx float(3) NULL,type_id int(3) NULL,riskscore_by_safename float(3) NULL,riskscore_by_knownheist float(3) NULL,PRIMARY KEY (id))""")
    mycursor.execute('SELECT address,type_id FROM sws_address')
    check = mycursor.fetchall()
    print("line 150")
    for a in check:
        address=a[0]
        type_id=a[1]
        print("line 153")
        mycursor.execute('SELECT * FROM sws_risk_score WHERE address="'+str(address)+'"')
        check = mycursor.fetchall()
        if not check:
            mycursor.execute('INSERT INTO `sws_risk_score`(address,type_id) VALUES ("'+str(address)+'","'+str(type_id)+'")')
            mydb.commit()
            print("line 155")    
    kyc_and_secure_addresses=[]
    mycursor.execute('SELECT u.address FROM db_safename.sws_user as a left join db_safename.sws_address as u on a.username = u.cms_login_name where (kyc_verified = 1 AND profile_status = "secure")') 
    che = mycursor.fetchall()
    for addr in che:
        cms_name=addr[0]
        kyc_and_secure_addresses.append(cms_name)
    print("300")
    print("308")
    secure_addresses=[]
    mycursor.execute('SELECT u.address FROM db_safename.sws_user as a left join db_safename.sws_address as u on a.username = u.cms_login_name where profile_status = "secure" AND (kyc_verified <> 1 OR kyc_verified is null )') 
    chek = mycursor.fetchall()
    for addr in chek:
        cms_name=addr[0]
        secure_addresses.append(cms_name)
    print("315")
    print("323")
    mycursor.execute('SELECT address FROM sws_risk_score')
    check = mycursor.fetchall()
    for addr in check:
        address=addr[0]
        print(address)
        records = mongo.db.sws_history.find_one({"address":address})
        if records is not None:
            print("488888888888888888888")
            transactions=records['transactions']
            if transactions:
                print("asdasdasdffdasfdasfdfa51")
                addresses=[]
                for transaction in transactions:
                    fro=transaction['from']
                    for fromm in fro:
                        fr = fromm['send_amount']
                        addresses.append(fr)
                for checkk in addresses:
                    print("asdasdadd59")
                    if checkk in kyc_and_secure_addresses:
                        print("adasda")
                        tx_safe_name_formula = (50*10)/100
                        mycursor.execute('UPDATE sws_risk_score SET riskscore_by_safename ="'+str(tx_safe_name_formula)+'" WHERE address = "'+str(address)+'"')
                        print(checkk)
                        print("updated_10%")
                        mydb.commit()
                    if checkk in secure_addresses:
                        tx_safe_name_formula = (50*5)/100
                        mycursor.execute('UPDATE sws_risk_score SET riskscore_by_safename ="'+str(tx_safe_name_formula)+'" WHERE address = "'+str(address)+'"')
                        print(checkk)
                        print("updated_5%")
                        mydb.commit()
                    else:
                        pass
Esempio n. 9
0
def risk_score_by_heist():
    print("runnnnnn")
    mycursor.execute("""CREATE TABLE IF NOT EXISTS `sws_risk_score` ( id INT NOT NULL AUTO_INCREMENT,address varchar(100),risk_score_by_tx float(3) NULL,type_id int(3) NULL,riskscore_by_safename float(3) NULL,riskscore_by_knownheist float(3) NULL,PRIMARY KEY (id))""")
    mycursor.execute('SELECT address,type_id FROM sws_address')
    check = mycursor.fetchall()
    print("line 150")
    for check in check:
        address=check[0]
        type_id=check[1]
        print("line 153")
        mycursor.execute('SELECT * FROM sws_risk_score WHERE address="'+str(address)+'"')
        check = mycursor.fetchall()
        if not check:
            mycursor.execute('INSERT INTO `sws_risk_score`(address,type_id) VALUES ("'+str(address)+'","'+str(type_id)+'")')
            mydb.commit()
            print("line 155")

    heist_addresses=[]
    mycursor.execute('SELECT address FROM sws_heist_address WHERE (tag_name <> "heist_associated")')
    ret = mycursor.fetchall()
    for addres in ret:
        address=addres[0]
        heist_addresses.append(address)        
    print(len(heist_addresses))

    print("170")
    heist_associated_addresses=[]
    mycursor.execute('SELECT address FROM sws_heist_address WHERE (tag_name = "heist_associated")')
    ret = mycursor.fetchall()
    for add in ret:
        addres=add[0]
        heist_associated_addresses.append(addres)
    print("177")
    mycursor.execute('SELECT address FROM sws_risk_score')
    check = mycursor.fetchall()
    for addr in check:
        address=addr[0]
        records = mongo.db.sws_history.find_one({"address":address})
        if records is not None:
            transactions=records['transactions']
            addresses=[]
            for transaction in transactions:
                fro =transaction['from']
                for frmm in fro:
                    fr = frmm['send_amount']
                    addresses.append(fr)
            for checkk in addresses:
                print("checkkkk")
                if checkk in heist_addresses:
                    tx_knownheist_formula =-((50*50)/100)
                    mycursor.execute('UPDATE sws_risk_score SET riskscore_by_knownheist ="'+str(tx_knownheist_formula)+'" WHERE address = "'+str(address)+'"')
                    print("updated_50%")
                    mydb.commit()
                if checkk in heist_associated_addresses:
                    tx_heistassosiated_formula = -((50*30)/100)
                    mycursor.execute('UPDATE sws_risk_score SET riskscore_by_knownheist ="'+str(tx_heistassosiated_formula)+'" WHERE address = "'+str(address)+'"')
                    print("updated_30%")
                    mydb.commit()
                else:
                    pass
Esempio n. 10
0
def eth_notification(address, symbol, type_id):
    doc = ETH_transactions.replace("{{address}}", '' + address + '')
    response_user = requests.get(url=doc)
    res = response_user.json()
    transactions = res['result']
    if transactions:
        total_current_tx = len(transactions)
        transaction = transactions[-1]
        timestamp = transaction['timeStamp']
        first_date = int(timestamp)
        dt_object = datetime.fromtimestamp(first_date)
        fro = transaction['from']
        too = transaction['to']
        send_amount = (int(transaction['value']) / 1000000000000000000)
        tx_id = transaction['hash']
        print("87")
        mycursor.execute(
            'SELECT total_tx_calculated FROM sws_address WHERE address="' +
            str(address) + '"')
        current_tx = mycursor.fetchall()
        transactions_count = current_tx[0]
        tx_count = transactions_count[0]
        print("tx_count")
        print(tx_count)
        print("total_current_tx")
        print(total_current_tx)
        print("send_amount")
        print(send_amount)
        if tx_count is None or total_current_tx > tx_count:
            print("93")
            if send_amount != 0:
                print("105")
                mycursor.execute(
                    'UPDATE sws_address SET total_tx_calculated ="' +
                    str(total_current_tx) + '"  WHERE address = "' +
                    str(address) + '"')
                print(address)
                mycursor.execute(
                    'SELECT u.email FROM db_safename.sws_address as a left join db_safename.sws_user as u on a.cms_login_name = u.username where a.address="'
                    + str(address) + '"')
                email = mycursor.fetchone()
                email_id = email[0]
                print(email_id)

                if email_id is not None:
                    '''
                    print("sendinnnnnngggggggg")
                    mycursor.execute('SELECT address_safename FROM sws_address WHERE address="'+str(fro)+'"')
                    from_safename_tx = mycursor.fetchall()
                    if from_safename_tx:
                        frm_safenames=from_safename_tx[0]
                        frm = frm_safenames[0]
                        frm_safename=fro+'(safename:'+frm+')'
                    else:
                        frm_safename=fro
                    mycursor.execute('SELECT address_safename FROM sws_address WHERE address="'+str(too)+'"')
                    too_safenames_tx = mycursor.fetchall()
                    if too_safenames_tx:
                        too_safenames=too_safenames_tx[0]
                        to = too_safenames[0]
                        to_safename=too+'(safename:'+to+')'
                    else:
                        to_safename=too
                    '''
                    frm_safename = fro
                    to_safename = too
                    message = Mail(
                        from_email=Sendgrid_default_mail,
                        to_emails=email_id,
                        subject=
                        'SafeName - New Transaction Notification In Your Account',
                        html_content=
                        '<h3> You got a new transaction </h3><strong>Date:</strong> '
                        + str(dt_object) + ' <div><strong>From:</strong> ' +
                        str(frm_safename) + ' </div><strong>To:</strong> ' +
                        str(to_safename) +
                        ' </div><div><strong>Amount:</strong> ' +
                        str(send_amount) +
                        ' </div><div><strong>Tx_id:</strong> ' + str(tx_id) +
                        ' </div><div><strong>Coin Type:</strong> '
                        'ETH'
                        '  </div>')
                    sg = SendGridAPIClient(SendGridAPIClient_key)
                    response = sg.send(message)
                    print(response.status_code, response.body,
                          response.headers)
                else:
                    print("email is not none")
            else:
                print("amount is 0")
        else:
            print("no new transaction")
    else:
        print("no transcations")
Esempio n. 11
0
def invoice_notification():
    print("asdasndas,na")
    dab = mongo.db.sws_pending_txs_from_app.find({"type": "invoice"})
    dab = [serialize_doc(doc) for doc in dab]
    for data in dab:
        frm = data['from']
        to = data['to']
        symbol = data['symbol']
        amount = data['amt']
        notes = data['from_notes']
        to_username = data['to_username']
        print("from")
        print(frm)
        print("to")
        print(to)
        print(amount)
        dabb = mongo.db.sws_history.find(
            {
                "transactions": {
                    '$elemMatch': {
                        "from": {
                            '$elemMatch': {
                                "from": to,
                                "send_amount": amount
                            }
                        },
                        "to": {
                            '$elemMatch': {
                                "to": frm
                            }
                        }
                    }
                }
            }, {"transactions.$": 1})
        dabb = [serialize_doc(doc) for doc in dabb]
        print(dabb)
        if dabb:
            for data in dabb:
                trans = data['transactions']
                for tx_id in trans:
                    transaction_id = tx_id['Tx_id']

            docs = mongo.db.sws_pending_txs_from_app.remove({
                "from": frm,
                "to": to,
                "amt": amount,
                "type": "invoice"
            })

            report = mongo.db.sws_notes.insert_one({
                "tx_id":
                transaction_id,
                "notes":
                notes,
                "from":
                frm,
                "to":
                to,
                "type":
                "invoice",
                "username":
                to_username,
                "update_at":
                datetime.datetime.now(),
                "created_at":
                datetime.datetime.now()
            }).inserted_id
        else:
            mycursor.execute(
                'SELECT u.email FROM db_safename.sws_address as a left join db_safename.sws_user as u on a.cms_login_name = u.username where a.address="'
                + str(to) + '"')
            email = mycursor.fetchone()
            print(email)
            if email is not None:
                email_id = email[0]
                print(email_id)
                message = Mail(
                    from_email=Sendgrid_default_mail,
                    to_emails='*****@*****.**',
                    subject='SafeName - Invoice Notification In Your Account',
                    html_content=
                    '<h3> Your invoice is not clear please accept the request</h3>'
                )
                sg = SendGridAPIClient(SendGridAPIClient_key)
                response = sg.send(message)
                print(response.status_code, response.body, response.headers)
Esempio n. 12
0
def unknown_riskscore():
    if not request.json:
        abort(500)
    address = request.json.get("address", None)
    symbol = request.json.get("symbol", None)
    type_id = request.json.get("type_id", "")

    if type_id == "2":
        currency = btc_data(address, symbol, type_id)

    if type_id == "1":
        currency = eth_data(address, symbol, type_id)

    if type_id == "27":
        currency = dash_data(address, symbol, type_id)

    if type_id == "98":
        currency = zcash_data(address, symbol, type_id)

    if type_id == "55":
        currency = mkr_data(address, symbol, type_id)

    if type_id == "21":
        currency = link_data(address, symbol, type_id)

#-------ERC20 coin-----------

    if type_id == "3":
        currency = zrx_data(address, symbol, type_id)

    if type_id == "5":
        currency = elf_data(address, symbol, type_id)

    if type_id == "8":
        currency = rep_data(address, symbol, type_id)

    if type_id == "9":
        currency = aoa_data(address, symbol, type_id)

    if type_id == "10":
        currency = bat_data(address, symbol, type_id)

    if type_id == "22":
        currency = cccx_data(address, symbol, type_id)

    if type_id == "24":
        currency = mco_data(address, symbol, type_id)

    if type_id == "25":
        currency = cro_data(address, symbol, type_id)

    if type_id == "26":
        currency = dai_data(address, symbol, type_id)

    if type_id == "31":
        currency = ekt_data(address, symbol, type_id)

    records = mongo.db.sws_history.find_one({"address": address})
    if records is not None:
        print("record is not none")
        transactions = records['transactions']
        if transactions:
            print("transactionnssss")
            count = 0
            for transaction in transactions:
                first_date = transaction['date']
                date_time = dateutil.parser.parse(str(first_date))
                month = date_time.strftime("%m/%d/%Y")
                two_year_back = datetime.datetime.today() + relativedelta(
                    months=-24)
                back = two_year_back.strftime("%m/%d/%Y")
                if month < back:
                    count = count + 1
                    if count >= 4:
                        print("count 4")
                        formula = (50 * 10) / 100
                    else:
                        formula = 0
                else:
                    pass
        else:
            formula = -((50 * 5) / 100)

    kyc_and_secure_addresses = []
    mycursor.execute(
        'SELECT u.address FROM db_safename.sws_user as a left join db_safename.sws_address as u on a.username = u.cms_login_name where (kyc_verified = 1 AND profile_status = "secure")'
    )
    che = mycursor.fetchall()
    for addr in che:
        cms_name = addr[0]
        kyc_and_secure_addresses.append(cms_name)
    secure_addresses = []
    mycursor.execute(
        'SELECT u.address FROM db_safename.sws_user as a left join db_safename.sws_address as u on a.username = u.cms_login_name where profile_status = "secure" AND (kyc_verified <> 1 OR kyc_verified is null )'
    )
    chek = mycursor.fetchall()
    for addr in chek:
        cms_name = addr[0]
        secure_addresses.append(cms_name)
    records = mongo.db.sws_history.find_one({"address": address})
    if records is not None:
        print("record is not none")
        transactions = records['transactions']
        if transactions:
            print("transactions is not none")
            addresses = []
            for transaction in transactions:
                fro = transaction['from']
                for fromm in fro:
                    fr = fromm['from']
                    addresses.append(fr)
            print(addresses)
            tx_safe_name_formula = 0
            for checkk in addresses:
                if checkk in kyc_and_secure_addresses:
                    print("addresss in kyc_and_secure_address")
                    tx_safe_name_formula = (50 * 10) / 100
                if checkk in secure_addresses:
                    print("addresss in secure_addresses")
                    tx_safe_name_formula = (50 * 5) / 100
        else:
            tx_safe_name_formula = 0
    heist_addresses = []
    mycursor.execute(
        'SELECT address FROM sws_heist_address WHERE (tag_name <> "heist_associated")'
    )
    ret = mycursor.fetchall()
    for addres in ret:
        address = addres[0]
        heist_addresses.append(address)
    heist_associated_addresses = []
    mycursor.execute(
        'SELECT address FROM sws_heist_address WHERE (tag_name = "heist_associated")'
    )
    ret = mycursor.fetchall()
    for add in ret:
        addres = add[0]
        heist_associated_addresses.append(addres)

    records = mongo.db.sws_history.find_one({"address": address})
    if records is not None:
        transactions = records['transactions']
        addresses = []
        for transaction in transactions:
            fro = transaction['from']
            for frmm in fro:
                fr = frmm['send_amount']
                addresses.append(fr)
        tx_knownheist_formula = 0
        for checkk in addresses:
            if checkk in heist_addresses:
                tx_knownheist_formula = -((50 * 50) / 100)
            if checkk in heist_associated_addresses:
                tx_knownheist_formula = -((50 * 30) / 100)
    else:
        tx_knownheist_formula = 0

    print("409")
    print("formula")
    print(formula)
    print("tx_safe_name_formula")
    print(tx_safe_name_formula)
    print("tx_knownheist_formula")
    print(tx_knownheist_formula)
    riskscore = 50 + formula + tx_safe_name_formula + tx_knownheist_formula
    return jsonify({"riskscore": riskscore})
Esempio n. 13
0
def tx_two_yearold():
    print("runnnnnn")
    mycursor.execute(
        """CREATE TABLE IF NOT EXISTS `sws_risk_score` ( id INT NOT NULL AUTO_INCREMENT,address varchar(100),risk_score_by_tx float(3) NULL,type_id int(3) NULL,riskscore_by_safename float(3) NULL,riskscore_by_knownheist float(3) NULL,PRIMARY KEY (id))"""
    )
    mycursor.execute('SELECT address,type_id FROM sws_address')
    check = mycursor.fetchall()
    print("line 150")
    for details in check:
        address = details[0]
        type_id = details[1]
        print("line 153")
        mycursor.execute('SELECT * FROM sws_risk_score WHERE address="' +
                         str(address) + '"')
        check = mycursor.fetchall()
        if not check:
            mycursor.execute(
                'INSERT INTO `sws_risk_score`(address,type_id) VALUES ("' +
                str(address) + '","' + str(type_id) + '")')
            mydb.commit()
            print("line 155")
    #mycursor.execute('SELECT address,type_id FROM sws_risk_score WHERE (tx_calculated <> 1 OR tx_calculated is null)')
    mycursor.execute('SELECT address FROM sws_risk_score')
    check = mycursor.fetchall()
    for addrr in check:
        address = addrr[0]
        records = mongo.db.sws_history.find_one({"address": address})
        if records is not None:
            transactions = records['transactions']
            if transactions:
                count = 0
                for transaction in transactions:
                    first_date = transaction['date']
                    date_time = dateutil.parser.parse(str(first_date))
                    month = date_time.strftime("%m/%d/%Y")
                    two_year_back = datetime.datetime.today() + relativedelta(
                        months=-24)
                    back = two_year_back.strftime("%m/%d/%Y")
                    if month < back:
                        count = count + 1
                        if count == 4:
                            formula = (50 * 10) / 100
                            #mycursor.execute('UPDATE sws_risk_score SET risk_score_by_tx ="'+str(formula)+'",tx_calculated =1 WHERE address = "'+str(address)+'"')
                            mycursor.execute(
                                'UPDATE sws_risk_score SET risk_score_by_tx ="'
                                + str(formula) + '" WHERE address = "' +
                                str(address) + '"')
                            print("updated_plus")
                            mydb.commit()
                        else:
                            pass
                    else:
                        pass
            else:
                tx_formula = ((50 * 5) / 100)
                mycursor.execute(
                    'UPDATE sws_risk_score SET risk_score_by_tx ="' +
                    str(tx_formula) + '" WHERE address = "' + str(address) +
                    '"')
                print("updated_minus")
                mydb.commit()
Esempio n. 14
0
def heist_associated_fetch():
    print("runningggggg")
    mycursor.execute('select coin, address from `sws_heist_address`')
    result = mycursor.fetchall()
    for res in result:
        coin = res[0]
        address= res[1]
        if coin == 'ETH':
            print("eth")
            url1=ETH_TRANSACTION_URL
            doc=url1.replace("{{address}}",''+address+'')
            response_user = requests.get(url=doc)
            res = response_user.json()       
            if 'status' in res:
                status_code = res['status']
            else:
                status_code = "1"
            if status_code != "0":
                transactions=res['result']
                frm=[]
                to=[]
                for transaction in transactions:
                    fro =transaction['from']
                    too=transaction['to']
                    to.append({"to":too})
                    frm.append({"from":fro})
                for fund_trans in frm:
                    address=fund_trans['from']
                    mycursor.execute('SELECT * FROM sws_heist_address WHERE address="'+str(address)+'"')
                    check = mycursor.fetchall()
                    if not check:
                        print("added")
                        mycursor.execute('''SELECT MAX(id) FROM sws_heist_address''')
                        maxid = mycursor.fetchone()
                        check=maxid[0]
                        if check is None:
                            ids = 1
                        else:
                            ids=(maxid[0]+1)
                        print(ids)
                        category = "heist_associated"
                        status = "Active"
                        url = ""
                        subcategory = ""
                        conversion = ""
                        mycursor.execute('INSERT INTO sws_heist_address (id,coin,tag_name,status,address,source,subcategory,description,also_known_as) VALUES ("'+str(ids)+'","'+str(coin)+'","'+str(category)+'","'+str(status)+'","'+str(address)+'","'+str(url)+'","'+str(subcategory)+'","'+str(conversion)+'","related to heist_address")')
                        mydb.commit()
                    else:
                        print("already_exist")
                for fund_reci in to:
                    address=fund_reci['to']
                    mycursor.execute('SELECT * FROM sws_heist_address WHERE address="'+str(address)+'"')
                    check = mycursor.fetchall()
                    if not check:
                        print("to_added")
                        mycursor.execute('''SELECT MAX(id) FROM sws_heist_address''')
                        maxid = mycursor.fetchone()
                        check=maxid[0]
                        if check is None:
                            ids = 1
                        else:
                            ids=(maxid[0]+1)
                        print(ids)
                        name = ""
                        category = "heist_associated"
                        status = "Active"
                        url = ""
                        subcategory = ""
                        conversion = ""
                        mycursor.execute('INSERT INTO sws_heist_address (id,coin,tag_name,status,address,source,subcategory,description,also_known_as) VALUES ("'+str(ids)+'","'+str(coin)+'","'+str(category)+'","'+str(status)+'","'+str(address)+'","'+str(url)+'","'+str(subcategory)+'","'+str(conversion)+'","related to heist_address")')
                        mydb.commit()
                    else:
                        print("already_exist")
        if coin == 'BTC':
            print("btc")
            url1=BTC_TRANSACTION
            doc=url1.replace("{{address}}",''+address+'')
            response_user = requests.get(url=doc)
            res = response_user.json()       
            transactions = res['txs']
            frm=[]
            for transaction in transactions:
                frmm=transaction['inputs']
                for trans in frmm:
                    fro=trans['address']
                    frm.append({"from":fro})
            for fund_trans in frm:
                address=fund_trans['from']
                mycursor.execute('SELECT * FROM sws_heist_address WHERE address="'+str(address)+'"')
                check = mycursor.fetchall()
                if not check:
                    print("added")
                    mycursor.execute('''SELECT MAX(id) FROM sws_heist_address''')
                    maxid = mycursor.fetchone()
                    check=maxid[0]
                    if check is None:
                        ids = 1
                    else:
                        ids=(maxid[0]+1)
                    print(ids)
                    category = "heist_associated"
                    status = "Active"
                    url = ""
                    subcategory = ""
                    conversion = ""
                    mycursor.execute('INSERT INTO sws_heist_address (id,coin,tag_name,status,address,source,subcategory,description,also_known_as) VALUES ("'+str(ids)+'","'+str(coin)+'","'+str(category)+'","'+str(status)+'","'+str(address)+'","'+str(url)+'","'+str(subcategory)+'","'+str(conversion)+'","related to heist_address")')
                    mydb.commit()
                else:
                    print("already_exist")
def pgp_verification():
    mycursor.execute('SELECT username FROM sws_user')
    usernames = mycursor.fetchall()
    for username in usernames:
        user = username[0]
        mycursor.execute(
            'SELECT public_profile_safename,keybase_string FROM sws_user where username='******'"' + str(user) + '"'
            '')
        check = mycursor.fetchall()
        details = check[0]
        public_safename = details[0]
        keybase = details[1]
        if not None in (public_safename, keybase):
            changes = template.replace('{{safename}}',
                                       '' + public_safename + '')
            keybase_changes = changes.replace('{{PGP_sign_key}}',
                                              '' + keybase + '')
            mycursor.execute(
                'SELECT address,type_id FROM sws_address where cms_login_name='
                '"' + str(user) + '"'
                '')
            check = mycursor.fetchall()
            no_of_addresses = len(check)
            print(no_of_addresses)
            template_array = []
            for addr in range(0, no_of_addresses):
                address_details = check[addr]
                addres = address_details[0]
                type_id = address_details[1]
                if type_id == 1:
                    typee = 'Ethereum'
                if type_id == 2:
                    typee = 'Bitcoin'
                if no_of_addresses != 1:
                    if addr == 0:
                        print("if")
                        change = keybase_changes.replace(
                            '{{cointype}}', '' + typee + '')
                        final_template = change.replace(
                            '{{addresses}}', '' + addres + '\n' +
                            '{{cointype}}' + '\n' + '{{addresses}}')
                        template_array.append(final_template)
                    elif addr == no_of_addresses - 1:
                        print("elif")
                        tempp = template_array[0]
                        del template_array[0]
                        chan = tempp.replace('{{cointype}}', '' + typee + '')
                        template_used = chan.replace('{{addresses}}',
                                                     '' + addres + '')
                        template_array.append(template_used)
                    else:
                        print("else")
                        temp = template_array[0]
                        del template_array[0]
                        changed = temp.replace('{{cointype}}', '' + typee + '')
                        final_template = changed.replace(
                            '{{addresses}}', '' + addres + '\n' +
                            '{{cointype}}' + '\n' + '{{addresses}}')
                        template_array.append(final_template)
                else:
                    change = keybase_changes.replace('{{cointype}}',
                                                     '' + typee + '')
                    final_template = change.replace('{{addresses}}',
                                                    '' + addres + '')
                    template_array.append(final_template)
            template_for_used = template_array[0]
            text = open(r'C:\Users\etech\Desktop\guru99.txt', 'r+')
            text.write(template_for_used)
            text.truncate()
            erification_cammand = os.system(
                r'''keybase pgp verify -i C:\Users\etech\Desktop\guru99.txt '''
            )
            print(erification_cammand)
            split_string = str(erification_cammand).split()
            checking_response = str(split_string)
            if "['0']" in checking_response:
                print("success")
            else:
                message = Mail(
                    from_email=Sendgrid_default_mail,
                    to_emails='*****@*****.**',
                    subject='SafeName - Invoice Notification In Your Account',
                    html_content=
                    '<h3> Your invoice is not clear please accept the request</h3>'
                )
                sg = SendGridAPIClient(SendGridAPIClient_key)
                response = sg.send(message)
                print(response.status_code, response.body, response.headers)