예제 #1
0
    def __init__(self):

        
        import dogecoinrpc
        import praw
        from messages_module import Messages_module 
        self.d = dogecoinrpc.connect_to_local()
        self.r = praw.Reddit(user_agent="doge_multisig v0.3 by /u/Doomhammer458")
        self.m = Messages_module()
예제 #2
0
def send_from_unspent(to_address,amount,fee=0):
    import dogecoinrpc
    doge = dogecoinrpc.connect_to_local()
    for x in doge.listunspent():
        if float(x.amount) > float(amount)+fee :
            unspent = x
            break
    in_list = [{"txid":unspent.txid,"vout":unspent.vout}]
    out_dict= {to_address: float(amount)-fee,\
    "DLTyy9SFcsZZ5HEciKp7vU96EiyXe9UvAP":float(unspent.amount)-float(amount)-fee}
    raw = doge.createrawtransaction(in_list,out_dict)
    sign = doge.signrawtransaction(raw)
    tx_id = doge.sendrawtransaction(sign["hex"])
    return tx_id
예제 #3
0
def redeem_funds(multi_address,to_address):
    import requests
    from multisigtables import multisig
    import sqlalchemy as sql

    from sqlalchemy.orm import sessionmaker
    
    import dogecoinrpc
    doge = dogecoinrpc.connect_to_local()
    engine = sql.create_engine("sqlite:///multisig.db")
    Session = sessionmaker(bind=engine)
    session = Session()
    instance= session.query(multisig).\
    filter(multisig.multiaddress == multi_address).first()
  
    url = "https://dogechain.info/api/v1/unspent/"+multi_address
    
    resp = requests.get(url).json()
    unspent = resp["unspent_outputs"]

    
    value = 0.0
    
    in_list=[]
    
    in_list=[]
    prev=[]
    
    
    for i in range(len(unspent)):
        tx_id = unspent[i]["tx_hash"]
        txn = unspent[i]["tx_output_n"]
        value += float(unspent[i]["value"])*10**-8
        decodetx = doge.getrawtransaction(tx_id,True).vout
        scriptpubkey = decodetx[txn]["scriptPubKey"]["hex"]
        in_list.append({"txid":tx_id,"vout":txn})
    
        prev.append({'txid': tx_id,'vout': txn,
        "scriptPubKey": scriptpubkey, 'redeemScript': instance.redeemscript})
        
        
    out_dict = {to_address:value-1}
    raw = doge.createrawtransaction(in_list,out_dict)
    
    sign1 = doge.signrawtransaction(raw,prev,[instance.privkey1,instance.privkey2])
    
    tx = doge.sendrawtransaction(sign1["hex"])
    return tx
예제 #4
0
def generate_mutltisig_address():
    from multisigtables import multisig
    import sqlalchemy as sql
    

    from sqlalchemy.orm import sessionmaker
    
    import dogecoinrpc
    doge = dogecoinrpc.connect_to_local()
    engine = sql.create_engine("sqlite:///multisig.db")
    
    
    Session = sessionmaker(bind=engine)
    session = Session()
    db_add = multisig()
    
    
    aone = doge.getnewaddress()
    db_add.address1=aone
    atwo = doge.getnewaddress()
    db_add.address2=atwo
    athree = doge.getnewaddress()
    db_add.address3=aone
    
    
    
    pone = doge.dumpprivkey(aone)
    db_add.privkey1 = pone
    ptwo = doge.dumpprivkey(atwo)
    db_add.privkey2 = ptwo
    pthree =doge.dumpprivkey(athree)
    db_add.privkey3 = pthree
    
    multi = [aone,atwo,athree] 
    
    multiadd = doge.createmultisig(2,multi)
    
    db_add.redeemscript=multiadd["redeemScript"]
    db_add.multiaddress=multiadd["address"]
    session.add(db_add)
    session.commit()
    session.close()
    
    return multiadd
예제 #5
0
	def __init__(s, address=None):
		s.conn = dogecoinrpc.connect_to_local()
		s.destination = address
예제 #6
0
def daemon():
	return dogecoinrpc.connect_to_local()
예제 #7
0
from socket import error
from httplib import HTTPException

import dogecoinrpc

from dinosaurs.exceptions import NoCoinServerError

connection = dogecoinrpc.connect_to_local()


def requires_connection(func):
    def wraps(*args, **kwargs):
        try:
            return func(*args, **kwargs)
        except (HTTPException, error):
            raise NoCoinServerError()
    return wraps


def get_cost():
    return 1


@requires_connection
def generate_address():
    return connection.getnewaddress()


@requires_connection
def check_balance(addr):
    return float(connection.getbalance(addr))
예제 #8
0
args = parser.parse_args()

if __name__ == "__main__":

    if args.config:
        from dogecoinrpc.config import read_config_file
        cfg = read_config_file(args.config)
    else:
        from dogecoinrpc.config import read_default_config
        cfg = read_default_config(None)
    port = int(cfg.get('rpcport', '22555'))
    rpcuser = cfg.get('rpcuser', '')

    connections = []
    if not args.nolocal:
        local_conn = dogecoinrpc.connect_to_local(
        )  # will use read_default_config
        connections.append(local_conn)
    if not args.noremote:
        remote_conn = dogecoinrpc.connect_to_remote(
            user=rpcuser,
            password=cfg['rpcpassword'],
            host='localhost',
            port=port,
            use_https=False)
        connections.append(remote_conn)

    for conn in connections:
        assert (conn.getinfo().testnet)  # don't test on prodnet

        assert (type(conn.getblockcount()) is int)
        assert (type(conn.getconnectioncount()) is int)
예제 #9
0
 def connectToDogecoinWallet(self):
     self.logger.info('connecting to the local dogecoin wallet')
     conn = dogecoinrpc.connect_to_local()
     return conn
예제 #10
0
 def __init__(s, address=None):
     s.conn = dogecoinrpc.connect_to_local()
     s.destination = address
예제 #11
0
args = parser.parse_args()

if __name__ == "__main__":

    if args.config:
        from dogecoinrpc.config import read_config_file
        cfg = read_config_file(args.config)
    else:
        from dogecoinrpc.config import read_default_config
        cfg = read_default_config(None)
    port = int(cfg.get('rpcport', '22555'))
    rpcuser = cfg.get('rpcuser', '')

    connections = []
    if not args.nolocal:
        local_conn = dogecoinrpc.connect_to_local()  # will use read_default_config
        connections.append(local_conn)
    if not args.noremote:
        remote_conn = dogecoinrpc.connect_to_remote(
                user=rpcuser, password=cfg['rpcpassword'], host='localhost',
                port=port, use_https=False)
        connections.append(remote_conn)

    for conn in connections:
        assert(conn.getinfo().testnet) # don't test on prodnet

        assert(type(conn.getblockcount()) is int)
        assert(type(conn.getconnectioncount()) is int)
        assert(type(conn.getdifficulty()) is Decimal)
        assert(type(conn.getgenerate()) is bool)
        conn.setgenerate(True)
예제 #12
0
def daemon():
    return dogecoinrpc.connect_to_local()