Ejemplo n.º 1
0
                for tx in sidechain.batch_([["getrawtransaction", txhash, 1]
                                            for txhash in block["tx"]]):
                    self.check_tx(tx)
                    if self.in_value > self.target_value:
                        break
            if self.in_value > self.target_value:
                break

        assert (self.in_value > self.target_value)


try:
    if args.command == "generate-one-of-one-multisig":
        if args.wallet == "sidechain-wallet":
            address = sidechain.getnewaddress()
            p2sh_res = sidechain.addmultisigaddress(1, [address])
        elif args.wallet == "mainchain-wallet":
            address = bitcoin.getnewaddress()
            p2sh_res = bitcoin.addmultisigaddress(1, [address])
        print("One-of-one address: %s" % address)
        print("P2SH address: %s" % p2sh_res)
    elif args.command == "send-to-sidechain":
        cht = os.popen("%s %s -g -r %s -d %s" %
                       (contracthashtool_path, testnet_arg, redeem_script,
                        args.p2shSideAddress))
        cht_read = cht.read()
        nonce = cht_read.split("\n")[0 + is_testnet][7:]
        full_contract = cht_read.split("\n")[1 + is_testnet][26:]
        send_address = cht_read.split("\n")[3 + is_testnet][40:]
        assert (cht.close() == None)
        if full_contract[0:8] != "50325348":
Ejemplo n.º 2
0
# Educational Purposes only
# Python 2.7.6 and relies on bitcoind & bitcoinrpc & wobine's github connection file
# We had to change the bitcoinrpc 'connection.py' file to add multisig support
# https://github.com/wobine/blackboard101/blob/master/wbn_multisigs_pt1_create-address.py
# Modify:
#      ask private key from user. so we could use the code in real situation

from bitcoinrpc.authproxy import AuthServiceProxy

bitcoin = AuthServiceProxy(
    "http://*****:*****@127.0.0.1:8332"
)  #creates an object called 'bitcoin' that allows for bitcoind calls

pubkey = dict()

print "Please input your pubKey, which is the oubput of command [validate address]"
pubkey[0] = str(raw_input("Please input the pubkey owned by Partner 1£º"))
pubkey[1] = str(raw_input("Please input the pubkey owned by Partner 2£º"))
pubkey[2] = str(raw_input("Please input the pubkey owned by Partner 3£º"))
n = int(raw_input("Please input the number which can sign the address£º"))
threeaddy = [pubkey[0], pubkey[1], pubkey[2]]
print "The multi-sig address is £º"
multisigaddy = bitcoin.addmultisigaddress(n, threeaddy)
multiaddyandredeem = (bitcoin.createmultisig(n, threeaddy))
print len(multisigaddy), "chars - ", multisigaddy
print
print "redeemScript -", len(multiaddyandredeem["redeemScript"]
                            ), "chars -", multiaddyandredeem["redeemScript"]
print
print "Now you can copy all this ouput text and save it so you'll be ready for spend it"
Ejemplo n.º 3
0
print "Addresses and priv keys in entire wallet"
addresses = bitcoin.getaddressesbyaccount("")
print addresses
for add in addresses:
    if not add[0] == '2':
        print bitcoin.dumpprivkey(add), add



## Create a multi-sig

print ""
print "Multi sig address"
adds = [pubkeymine, pubkeymike]
print "Addresses used", adds
multi = bitcoin.addmultisigaddress(2, adds)
multi = bitcoin.createmultisig(2, adds)
print multi

"""
print ""
print "Unspent transactions"
unspent = bitcoin.listunspent()
for x in unspent:
    print x
    print "---"
    if x['address'] == multiaddress:
        print "Unspent Multi: "
        print x

# Python 2.7.6 and relies on bitcoind & bitcoinrpc & wobine's github connection file
# We had to change the bitcoinrpc 'connection.py' file to add multisig support
# https://github.com/wobine/blackboard101/blob/master/wbn_multisigs_pt1_create-address.py


from bitcoinrpc.authproxy import AuthServiceProxy

bitcoin = AuthServiceProxy("http://*****:*****@127.0.0.1:8332") #creates an object called 'bitcoin' that allows for bitcoind calls

pubkey = dict()


print "请输入公钥,公钥可以由命令[validate address]的输出pubKey字段得到"
pubkey[0] = str(raw_input("请输入管理者1的公钥:"))
pubkey[1] = str(raw_input("请输入管理者2的公钥:"))
pubkey[2] = str(raw_input("请输入管理者3的公钥:"))
n = int(raw_input("请输入几个私钥可以解锁:"))
threeaddy = [pubkey[0],pubkey[1],pubkey[2]]
print "多重签名地址是:"
multisigaddy = bitcoin.addmultisigaddress(n,threeaddy)
multiaddyandredeem = (bitcoin.createmultisig(n,threeaddy))
print len(multisigaddy),"chars - ", multisigaddy
print
print "redeemScript -", len(multiaddyandredeem["redeemScript"]), "chars -",multiaddyandredeem["redeemScript"]
print
print "现在可以把上面的输出都存起来,方便以后花费时构建输出单"




Ejemplo n.º 5
0
			else:
				block = sidechain.getblock(sidechain.getblockhash(i))
				for tx in sidechain.batch_([["getrawtransaction", txhash, 1] for txhash in block["tx"]]):
					self.check_tx(tx)
					if self.in_value > self.target_value:
						break
			if self.in_value > self.target_value:
				break

		assert(self.in_value > self.target_value)

try:
	if args.command == "generate-one-of-one-multisig":
		if args.wallet == "sidechain-wallet":
			address = sidechain.getnewaddress()
			p2sh_res = sidechain.addmultisigaddress(1, [address])
		elif args.wallet == "mainchain-wallet":
			address = bitcoin.getnewaddress()
			p2sh_res = bitcoin.addmultisigaddress(1, [address])
		print("One-of-one address: %s" % address)
		print("P2SH address: %s" % p2sh_res)
	elif args.command == "send-to-sidechain":
		cht = os.popen("%s %s -g -r %s -d %s" % (contracthashtool_path, testnet_arg, redeem_script, args.p2shSideAddress))
		cht_read = cht.read()
		nonce = cht_read.split("\n")[0 + is_testnet][7:]
		full_contract = cht_read.split("\n")[1 + is_testnet][26:]
		send_address = cht_read.split("\n")[3 + is_testnet][40:]
		assert(cht.close() == None)
		if full_contract[0:8] != "50325348":
			print("You must use a P2SH address")
			exit(1)