@@ -30,7 +30,7 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
def setup_chain(self):
|
def setup_chain(self):
|
||||||
print("Initializing CC test directory "+self.options.tmpdir)
|
print("Initializing CC test directory "+self.options.tmpdir)
|
||||||
self.num_nodes = 1
|
self.num_nodes = 2
|
||||||
initialize_chain_clean(self.options.tmpdir, self.num_nodes)
|
initialize_chain_clean(self.options.tmpdir, self.num_nodes)
|
||||||
|
|
||||||
def setup_network(self, split = False):
|
def setup_network(self, split = False):
|
||||||
@@ -38,9 +38,12 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
self.addr = "RWPg8B91kfK5UtUN7z6s6TeV9cHSGtVY8D"
|
self.addr = "RWPg8B91kfK5UtUN7z6s6TeV9cHSGtVY8D"
|
||||||
self.pubkey = "02676d00110c2cd14ae24f95969e8598f7ccfaa675498b82654a5b5bd57fc1d8cf"
|
self.pubkey = "02676d00110c2cd14ae24f95969e8598f7ccfaa675498b82654a5b5bd57fc1d8cf"
|
||||||
self.privkey = "UqMgxk7ySPNQ4r9nKAFPjkXy6r5t898yhuNCjSZJLg3RAM4WW1m9"
|
self.privkey = "UqMgxk7ySPNQ4r9nKAFPjkXy6r5t898yhuNCjSZJLg3RAM4WW1m9"
|
||||||
|
self.addr1 = "RXEXoa1nRmKhMbuZovpcYwQMsicwzccZBp"
|
||||||
|
self.pubkey1 = "024026d4ad4ecfc1f705a9b42ca64af6d2ad947509c085534a30b8861d756c6ff0"
|
||||||
|
self.privkey1 = "UtdydP56pGTFmawHzHr1wDrc4oUwCNW1ttX8Pc3KrvH3MA8P49Wi"
|
||||||
self.nodes = start_nodes(self.num_nodes, self.options.tmpdir,
|
self.nodes = start_nodes(self.num_nodes, self.options.tmpdir,
|
||||||
extra_args=[[
|
extra_args=[[
|
||||||
# always give -ac_name as first extra_arg
|
# always give -ac_name as first extra_arg and port as third
|
||||||
'-ac_name=REGTEST',
|
'-ac_name=REGTEST',
|
||||||
'-conf='+self.options.tmpdir+'/node0/REGTEST.conf',
|
'-conf='+self.options.tmpdir+'/node0/REGTEST.conf',
|
||||||
'-port=64367',
|
'-port=64367',
|
||||||
@@ -49,30 +52,49 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
'-addressindex=1',
|
'-addressindex=1',
|
||||||
'-spentindex=1',
|
'-spentindex=1',
|
||||||
'-ac_supply=5555555',
|
'-ac_supply=5555555',
|
||||||
'-ac_reward=10000000',
|
'-ac_reward=10000000000000',
|
||||||
'-pubkey=' + self.pubkey,
|
'-pubkey=' + self.pubkey,
|
||||||
'-ac_cc=2',
|
'-ac_cc=2',
|
||||||
'-whitelist=127.0.0.1',
|
'-whitelist=127.0.0.1',
|
||||||
'-debug',
|
'-debug',
|
||||||
'-daemon',
|
'--daemon',
|
||||||
'-rpcuser=rt',
|
'-rpcuser=rt',
|
||||||
'-rpcpassword=rt'
|
'-rpcpassword=rt'
|
||||||
]]
|
],
|
||||||
|
['-ac_name=REGTEST',
|
||||||
|
'-conf='+self.options.tmpdir+'/node1/REGTEST.conf',
|
||||||
|
'-port=64365',
|
||||||
|
'-rpcport=64366',
|
||||||
|
'-regtest',
|
||||||
|
'-addressindex=1',
|
||||||
|
'-spentindex=1',
|
||||||
|
'-ac_supply=5555555',
|
||||||
|
'-ac_reward=10000000000000',
|
||||||
|
'-pubkey=' + self.pubkey1,
|
||||||
|
'-ac_cc=2',
|
||||||
|
'-whitelist=127.0.0.1',
|
||||||
|
'-debug',
|
||||||
|
'-addnode=127.0.0.1:64367',
|
||||||
|
'--daemon',
|
||||||
|
'-rpcuser=rt',
|
||||||
|
'-rpcpassword=rt']]
|
||||||
)
|
)
|
||||||
self.is_network_split = split
|
self.is_network_split = split
|
||||||
self.rpc = self.nodes[0]
|
self.rpc = self.nodes[0]
|
||||||
|
self.rpc1 = self.nodes[1]
|
||||||
self.sync_all()
|
self.sync_all()
|
||||||
print("Done setting up network")
|
print("Done setting up network")
|
||||||
|
|
||||||
def send_and_mine(self, xtn):
|
def send_and_mine(self, xtn, rpc_connection):
|
||||||
txid = self.rpc.sendrawtransaction(xtn)
|
txid = rpc_connection.sendrawtransaction(xtn)
|
||||||
assert txid, 'got txid'
|
assert txid, 'got txid'
|
||||||
# we need the tx above to be confirmed in the next block
|
# we need the tx above to be confirmed in the next block
|
||||||
self.rpc.generate(1)
|
rpc_connection.generate(1)
|
||||||
return txid
|
return txid
|
||||||
|
|
||||||
def run_faucet_tests(self):
|
def run_faucet_tests(self):
|
||||||
rpc = self.rpc
|
rpc = self.rpc
|
||||||
|
rpc1 = self.rpc1
|
||||||
|
|
||||||
# basic sanity tests
|
# basic sanity tests
|
||||||
result = rpc.getwalletinfo()
|
result = rpc.getwalletinfo()
|
||||||
@@ -117,9 +139,11 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
# we need the tx above to be confirmed in the next block
|
# we need the tx above to be confirmed in the next block
|
||||||
rpc.generate(1)
|
rpc.generate(1)
|
||||||
|
self.sync_all()
|
||||||
|
|
||||||
result = rpc.getwalletinfo()
|
result = rpc.getwalletinfo()
|
||||||
balance2 = result['balance']
|
# minus one block reward
|
||||||
|
balance2 = result['balance'] - 100000
|
||||||
# make sure our balance is less now
|
# make sure our balance is less now
|
||||||
assert_greater_than(balance, balance2)
|
assert_greater_than(balance, balance2)
|
||||||
|
|
||||||
@@ -127,21 +151,31 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
assert_success(result)
|
assert_success(result)
|
||||||
assert_greater_than( result['funding'], 0 )
|
assert_greater_than( result['funding'], 0 )
|
||||||
|
|
||||||
result = rpc.faucetget()
|
# claiming faucet on second node
|
||||||
assert_success(result)
|
faucetgethex = rpc1.faucetget()
|
||||||
assert result['hex'], "hex key found"
|
assert_success(faucetgethex)
|
||||||
|
assert faucetgethex['hex'], "hex key found"
|
||||||
|
|
||||||
# try to broadcast the xtn, but we will get 'faucet is only for brand new addresses'
|
balance1 = rpc1.getwalletinfo()['balance']
|
||||||
assert_raises(JSONRPCException, rpc.sendrawtransaction, [ result['hex'] ])
|
|
||||||
|
|
||||||
newaddr = rpc.getnewaddress()
|
# try to broadcast the faucetget transaction
|
||||||
assert newaddr, "got a new address"
|
result = self.send_and_mine(faucetgethex['hex'], rpc1)
|
||||||
result = rpc.validateaddress(newaddr)
|
assert txid, "transaction broadcasted"
|
||||||
newpubkey = result['pubkey']
|
|
||||||
assert newpubkey, "got a pubkey for new address"
|
balance2 = rpc1.getwalletinfo()['balance']
|
||||||
|
assert_greater_than(balance2, balance1)
|
||||||
|
|
||||||
|
self.sync_all()
|
||||||
|
|
||||||
def run_dice_tests(self):
|
def run_dice_tests(self):
|
||||||
rpc = self.nodes[0]
|
rpc = self.nodes[0]
|
||||||
|
rpc1 = self.nodes[1]
|
||||||
|
self.sync_all()
|
||||||
|
|
||||||
|
# have to generate few blocks on second node to be able to place bets
|
||||||
|
rpc1.generate(10)
|
||||||
|
result = rpc1.getbalance()
|
||||||
|
assert_greater_than(result, 100000)
|
||||||
|
|
||||||
dice = rpc.diceaddress()
|
dice = rpc.diceaddress()
|
||||||
assert_equal(dice['result'], 'success')
|
assert_equal(dice['result'], 'success')
|
||||||
@@ -171,7 +205,7 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
# creating dice plan
|
# creating dice plan
|
||||||
dicefundtx = rpc.dicefund("LUCKY","1000","1","800","10","5")
|
dicefundtx = rpc.dicefund("LUCKY","1000","1","800","10","5")
|
||||||
diceid = self.send_and_mine(dicefundtx['hex'])
|
diceid = self.send_and_mine(dicefundtx['hex'], rpc)
|
||||||
|
|
||||||
# checking if it in plans list now
|
# checking if it in plans list now
|
||||||
result = rpc.dicelist()
|
result = rpc.dicelist()
|
||||||
@@ -190,7 +224,7 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
# adding funds to plan
|
# adding funds to plan
|
||||||
addfundstx = rpc.diceaddfunds(dicename,diceid,"1100")
|
addfundstx = rpc.diceaddfunds(dicename,diceid,"1100")
|
||||||
result = self.send_and_mine(addfundstx['hex'])
|
result = self.send_and_mine(addfundstx['hex'], rpc)
|
||||||
|
|
||||||
# checking if funds added to plan
|
# checking if funds added to plan
|
||||||
result = rpc.diceinfo(diceid)
|
result = rpc.diceinfo(diceid)
|
||||||
@@ -201,92 +235,99 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# placing 0 amount bet
|
# placing 0 amount bet
|
||||||
result = rpc.dicebet(dicename,diceid,"0","1")
|
result = rpc1.dicebet(dicename,diceid,"0","2")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# placing negative amount bet
|
# placing negative amount bet
|
||||||
result = rpc.dicebet(dicename,diceid,"-1","1")
|
result = rpc1.dicebet(dicename,diceid,"-1","2")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# placing bet more than maxbet
|
# placing bet more than maxbet
|
||||||
result = rpc.dicebet(dicename,diceid,"900","1")
|
result = rpc1.dicebet(dicename,diceid,"900","2")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# placing bet with amount more than funding
|
# placing bet with amount more than funding
|
||||||
result = rpc.dicebet(dicename,diceid,"3000","1")
|
result = rpc1.dicebet(dicename,diceid,"3000","2")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# placing bet with potential won more than funding
|
# placing bet with potential won more than funding
|
||||||
result = rpc.dicebet(dicename,diceid,"750","9")
|
result = rpc1.dicebet(dicename,diceid,"750","9")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# placing 0 odds bet
|
# placing 0 odds bet
|
||||||
result = rpc.dicebet(dicename,diceid,"1","0")
|
result = rpc1.dicebet(dicename,diceid,"1","0")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# placing negative odds bet
|
# placing negative odds bet
|
||||||
result = rpc.dicebet(dicename,diceid,"1","-1")
|
result = rpc1.dicebet(dicename,diceid,"1","-1")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# placing bet with odds more than allowed
|
# placing bet with odds more than allowed
|
||||||
result = rpc.dicebet(dicename,diceid,"1","11")
|
result = rpc1.dicebet(dicename,diceid,"1","11")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# placing bet with not correct dice name
|
# placing bet with not correct dice name
|
||||||
result = rpc.dicebet("nope",diceid,"100","1")
|
result = rpc1.dicebet("nope",diceid,"100","2")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# placing bet with not correct dice id
|
# placing bet with not correct dice id
|
||||||
result = rpc.dicebet(dicename,self.pubkey,"100","1")
|
result = rpc1.dicebet(dicename,self.pubkey,"100","2")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
|
||||||
# valid bet placing
|
|
||||||
placebet = rpc.dicebet(dicename,diceid,"100","1")
|
|
||||||
betid = self.send_and_mine(placebet["hex"])
|
|
||||||
assert result, "bet placed"
|
|
||||||
|
|
||||||
# check bet status
|
|
||||||
result = rpc.dicestatus(dicename,diceid,betid)
|
|
||||||
assert_success(result)
|
|
||||||
|
|
||||||
# have to make some entropy for the next test
|
# have to make some entropy for the next test
|
||||||
entropytx = 0
|
entropytx = 0
|
||||||
fundingsum = 1
|
fundingsum = 1
|
||||||
while entropytx < 10:
|
while entropytx < 110:
|
||||||
fundingsuminput = str(fundingsum)
|
fundingsuminput = str(fundingsum)
|
||||||
fundinghex = rpc.diceaddfunds(dicename,diceid,fundingsuminput)
|
fundinghex = rpc.diceaddfunds(dicename,diceid,fundingsuminput)
|
||||||
result = self.send_and_mine(fundinghex['hex'])
|
result = self.send_and_mine(fundinghex['hex'], rpc)
|
||||||
entropytx = entropytx + 1
|
entropytx = entropytx + 1
|
||||||
fundingsum = fundingsum + 1
|
fundingsum = fundingsum + 1
|
||||||
|
|
||||||
rpc.generate(2)
|
rpc.generate(2)
|
||||||
|
self.sync_all()
|
||||||
|
|
||||||
|
# valid bet placing
|
||||||
|
placebet = rpc1.dicebet(dicename,diceid,"100","2")
|
||||||
|
betid = self.send_and_mine(placebet["hex"], rpc1)
|
||||||
|
assert result, "bet placed"
|
||||||
|
|
||||||
|
# check bet status
|
||||||
|
result = rpc1.dicestatus(dicename,diceid,betid)
|
||||||
|
assert_success(result)
|
||||||
|
|
||||||
# note initial dice funding state at this point.
|
# note initial dice funding state at this point.
|
||||||
# TODO: track player balance somehow (hard to do because of mining and fees)
|
# TODO: track player balance somehow (hard to do because of mining and fees)
|
||||||
diceinfo = rpc.diceinfo(diceid)
|
diceinfo = rpc.diceinfo(diceid)
|
||||||
funding = float(diceinfo['funding'])
|
funding = float(diceinfo['funding'])
|
||||||
|
|
||||||
# placing same amount bets with amount 1 and odds 1:2, checking if balance changed correct
|
# # placing same amount bets with amount 1 and odds 1:3, checking if balance changed correct
|
||||||
losscounter = 0
|
# losscounter = 0
|
||||||
wincounter = 0
|
# wincounter = 0
|
||||||
betcounter = 0
|
# betcounter = 0
|
||||||
|
#
|
||||||
while (betcounter < 10):
|
# while (betcounter < 10):
|
||||||
placebet = rpc.dicebet(dicename,diceid,"1","1")
|
# placebet = rpc1.dicebet(dicename,diceid,"1","2")
|
||||||
betid = self.send_and_mine(placebet["hex"])
|
# betid = self.send_and_mine(placebet["hex"], rpc1)
|
||||||
finish = rpc.dicefinish(dicename,diceid,betid)
|
# time.sleep(3)
|
||||||
self.send_and_mine(finish["hex"])
|
# self.sync_all()
|
||||||
betresult = rpc.dicestatus(dicename,diceid,betid)
|
# finish = rpc.dicefinish(dicename,diceid,betid)
|
||||||
betcounter = betcounter + 1
|
# self.send_and_mine(finish["hex"], rpc1)
|
||||||
if betresult["status"] == "loss":
|
# self.sync_all()
|
||||||
losscounter = losscounter + 1
|
# time.sleep(3)
|
||||||
elif betresult["status"] == "win":
|
# betresult = rpc1.dicestatus(dicename,diceid,betid)
|
||||||
wincounter = wincounter + 1
|
# betcounter = betcounter + 1
|
||||||
|
# if betresult["status"] == "loss":
|
||||||
# funding balance should increase if player loss, decrease if player won
|
# losscounter = losscounter + 1
|
||||||
fundbalanceguess = funding + losscounter - wincounter
|
# elif betresult["status"] == "win":
|
||||||
fundinfoactual = rpc.diceinfo(diceid)
|
# wincounter = wincounter + 1
|
||||||
assert_equal(round(fundbalanceguess),round(float(fundinfoactual['funding'])))
|
# else:
|
||||||
|
# pass
|
||||||
|
#
|
||||||
|
# # funding balance should increase if player loss, decrease if player won
|
||||||
|
# fundbalanceguess = funding + losscounter - wincounter * 2
|
||||||
|
# fundinfoactual = rpc.diceinfo(diceid)
|
||||||
|
# assert_equal(round(fundbalanceguess),round(float(fundinfoactual['funding'])))
|
||||||
|
|
||||||
def run_token_tests(self):
|
def run_token_tests(self):
|
||||||
rpc = self.nodes[0]
|
rpc = self.nodes[0]
|
||||||
@@ -315,7 +356,7 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
result = rpc.tokencreate("DUKE", "1987.420", "Duke's custom token")
|
result = rpc.tokencreate("DUKE", "1987.420", "Duke's custom token")
|
||||||
assert_success(result)
|
assert_success(result)
|
||||||
|
|
||||||
tokenid = self.send_and_mine(result['hex'])
|
tokenid = self.send_and_mine(result['hex'], rpc)
|
||||||
|
|
||||||
result = rpc.tokenlist()
|
result = rpc.tokenlist()
|
||||||
assert_equal(result[0], tokenid)
|
assert_equal(result[0], tokenid)
|
||||||
@@ -379,7 +420,7 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
# valid ask
|
# valid ask
|
||||||
tokenask = rpc.tokenask("100", tokenid, "7.77")
|
tokenask = rpc.tokenask("100", tokenid, "7.77")
|
||||||
tokenaskhex = tokenask['hex']
|
tokenaskhex = tokenask['hex']
|
||||||
tokenaskid = self.send_and_mine(tokenask['hex'])
|
tokenaskid = self.send_and_mine(tokenask['hex'], rpc)
|
||||||
result = rpc.tokenorders()
|
result = rpc.tokenorders()
|
||||||
order = result[0]
|
order = result[0]
|
||||||
assert order, "found order"
|
assert order, "found order"
|
||||||
@@ -394,7 +435,7 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
# valid ask fillunits
|
# valid ask fillunits
|
||||||
fillask = rpc.tokenfillask(tokenid, tokenaskid, "777")
|
fillask = rpc.tokenfillask(tokenid, tokenaskid, "777")
|
||||||
result = self.send_and_mine(fillask['hex'])
|
result = self.send_and_mine(fillask['hex'], rpc)
|
||||||
txid = result[0]
|
txid = result[0]
|
||||||
assert txid, "found txid"
|
assert txid, "found txid"
|
||||||
|
|
||||||
@@ -404,9 +445,9 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
# checking ask cancellation
|
# checking ask cancellation
|
||||||
testorder = rpc.tokenask("100", tokenid, "7.77")
|
testorder = rpc.tokenask("100", tokenid, "7.77")
|
||||||
testorderid = self.send_and_mine(testorder['hex'])
|
testorderid = self.send_and_mine(testorder['hex'], rpc)
|
||||||
cancel = rpc.tokencancelask(tokenid, testorderid)
|
cancel = rpc.tokencancelask(tokenid, testorderid)
|
||||||
self.send_and_mine(cancel["hex"])
|
self.send_and_mine(cancel["hex"], rpc)
|
||||||
result = rpc.tokenorders()
|
result = rpc.tokenorders()
|
||||||
assert_equal(result, [])
|
assert_equal(result, [])
|
||||||
|
|
||||||
@@ -432,7 +473,7 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
tokenbid = rpc.tokenbid("100", tokenid, "10")
|
tokenbid = rpc.tokenbid("100", tokenid, "10")
|
||||||
tokenbidhex = tokenbid['hex']
|
tokenbidhex = tokenbid['hex']
|
||||||
tokenbidid = self.send_and_mine(tokenbid['hex'])
|
tokenbidid = self.send_and_mine(tokenbid['hex'], rpc)
|
||||||
result = rpc.tokenorders()
|
result = rpc.tokenorders()
|
||||||
order = result[0]
|
order = result[0]
|
||||||
assert order, "found order"
|
assert order, "found order"
|
||||||
@@ -447,7 +488,7 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
# valid bid fillunits
|
# valid bid fillunits
|
||||||
fillbid = rpc.tokenfillbid(tokenid, tokenbidid, "1000")
|
fillbid = rpc.tokenfillbid(tokenid, tokenbidid, "1000")
|
||||||
result = self.send_and_mine(fillbid['hex'])
|
result = self.send_and_mine(fillbid['hex'], rpc)
|
||||||
txid = result[0]
|
txid = result[0]
|
||||||
assert txid, "found txid"
|
assert txid, "found txid"
|
||||||
|
|
||||||
@@ -457,9 +498,9 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
# checking bid cancellation
|
# checking bid cancellation
|
||||||
testorder = rpc.tokenbid("100", tokenid, "7.77")
|
testorder = rpc.tokenbid("100", tokenid, "7.77")
|
||||||
testorderid = self.send_and_mine(testorder['hex'])
|
testorderid = self.send_and_mine(testorder['hex'], rpc)
|
||||||
cancel = rpc.tokencancelbid(tokenid, testorderid)
|
cancel = rpc.tokencancelbid(tokenid, testorderid)
|
||||||
self.send_and_mine(cancel["hex"])
|
self.send_and_mine(cancel["hex"], rpc)
|
||||||
result = rpc.tokenorders()
|
result = rpc.tokenorders()
|
||||||
assert_equal(result, [])
|
assert_equal(result, [])
|
||||||
|
|
||||||
@@ -474,7 +515,7 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
# valid token transfer
|
# valid token transfer
|
||||||
sendtokens = rpc.tokentransfer(tokenid,randompubkey,"1")
|
sendtokens = rpc.tokentransfer(tokenid,randompubkey,"1")
|
||||||
self.send_and_mine(sendtokens["hex"])
|
self.send_and_mine(sendtokens["hex"], rpc)
|
||||||
result = rpc.tokenbalance(tokenid,randompubkey)
|
result = rpc.tokenbalance(tokenid,randompubkey)
|
||||||
assert_equal(result["balance"], 1)
|
assert_equal(result["balance"], 1)
|
||||||
|
|
||||||
@@ -548,7 +589,7 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
# adding valid funding
|
# adding valid funding
|
||||||
result = rpc.rewardsaddfunding("STUFF", fundingtxid, "555")
|
result = rpc.rewardsaddfunding("STUFF", fundingtxid, "555")
|
||||||
addfundingtxid = self.send_and_mine(result['hex'])
|
addfundingtxid = self.send_and_mine(result['hex'], rpc)
|
||||||
assert addfundingtxid, 'got funding txid'
|
assert addfundingtxid, 'got funding txid'
|
||||||
|
|
||||||
# checking if funding added to rewardsplan
|
# checking if funding added to rewardsplan
|
||||||
@@ -590,6 +631,10 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
|
|
||||||
def run_oracles_tests(self):
|
def run_oracles_tests(self):
|
||||||
rpc = self.nodes[0]
|
rpc = self.nodes[0]
|
||||||
|
rpc1 = self.nodes[1]
|
||||||
|
|
||||||
|
result = rpc1.oraclesaddress()
|
||||||
|
|
||||||
result = rpc.oraclesaddress()
|
result = rpc.oraclesaddress()
|
||||||
assert_success(result)
|
assert_success(result)
|
||||||
for x in ['OraclesCCaddress', 'Oraclesmarker', 'myCCaddress', 'myaddress']:
|
for x in ['OraclesCCaddress', 'Oraclesmarker', 'myCCaddress', 'myaddress']:
|
||||||
@@ -621,36 +666,36 @@ class CryptoConditionsTest (BitcoinTestFramework):
|
|||||||
too_long_description = generate_random_string(4100)
|
too_long_description = generate_random_string(4100)
|
||||||
result = rpc.oraclescreate("Test", too_long_description, "s")
|
result = rpc.oraclescreate("Test", too_long_description, "s")
|
||||||
assert_error(result)
|
assert_error(result)
|
||||||
|
# # valid creating oracles of different types
|
||||||
# valid creating oracles of different types
|
# # using such naming to re-use it for data publishing / reading (e.g. oracle_s for s type)
|
||||||
# using such naming to re-use it for data publishing / reading (e.g. oracle_s for s type)
|
# valid_formats = ["s", "S", "d", "D", "c", "C", "t", "T", "i", "I", "l", "L", "h", "Ihh"]
|
||||||
valid_formats = ["s", "S", "d", "D", "c", "C", "t", "T", "i", "I", "l", "L", "h", "Ihh"]
|
# for f in valid_formats:
|
||||||
for f in valid_formats:
|
# result = rpc.oraclescreate("Test", "Test", f)
|
||||||
result = rpc.oraclescreate("Test", "Test", f)
|
# assert_success(result)
|
||||||
assert_success(result)
|
# globals()["oracle_{}".format(f)] = self.send_and_mine(result['hex'], rpc)
|
||||||
globals()["oracle_{}".format(f)] = self.send_and_mine(result['hex'])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def run_test (self):
|
def run_test (self):
|
||||||
print("Mining blocks...")
|
print("Mining blocks...")
|
||||||
rpc = self.nodes[0]
|
rpc = self.nodes[0]
|
||||||
|
rpc1 = self.nodes[1]
|
||||||
# utxos from block 1 become mature in block 101
|
# utxos from block 1 become mature in block 101
|
||||||
rpc.generate(101)
|
rpc.generate(101)
|
||||||
self.sync_all()
|
self.sync_all()
|
||||||
|
rpc.getinfo()
|
||||||
|
rpc1.getinfo()
|
||||||
# this corresponds to -pubkey above
|
# this corresponds to -pubkey above
|
||||||
print("Importing privkey")
|
print("Importing privkeys")
|
||||||
rpc.importprivkey(self.privkey)
|
rpc.importprivkey(self.privkey)
|
||||||
|
rpc1.importprivkey(self.privkey1)
|
||||||
#self.run_faucet_tests()
|
|
||||||
self.run_rewards_tests()
|
|
||||||
self.run_dice_tests()
|
|
||||||
self.run_token_tests()
|
|
||||||
self.run_faucet_tests()
|
self.run_faucet_tests()
|
||||||
|
self.sync_all()
|
||||||
|
self.run_rewards_tests()
|
||||||
|
self.sync_all()
|
||||||
|
self.run_dice_tests()
|
||||||
|
self.sync_all()
|
||||||
|
self.run_token_tests()
|
||||||
|
self.sync_all()
|
||||||
self.run_oracles_tests()
|
self.run_oracles_tests()
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -198,6 +198,21 @@ def start_node(i, dirname, extra_args=None, rpchost=None, timewait=None, binary=
|
|||||||
Start a komodod and return RPC connection to it
|
Start a komodod and return RPC connection to it
|
||||||
"""
|
"""
|
||||||
datadir = os.path.join(dirname, "node"+str(i))
|
datadir = os.path.join(dirname, "node"+str(i))
|
||||||
|
# creating special config in case of cryptocondition asset chain test
|
||||||
|
if extra_args[0] == '-ac_name=REGTEST':
|
||||||
|
configpath = datadir + "/REGTEST.conf"
|
||||||
|
with open(configpath, "w+") as config:
|
||||||
|
config.write("regtest=1\n")
|
||||||
|
config.write("rpcuser=rt\n")
|
||||||
|
config.write("rpcpassword=rt\n")
|
||||||
|
port = extra_args[3]
|
||||||
|
config.write("rpcport=" + (port[9:]) + "\n")
|
||||||
|
config.write("server=1\n")
|
||||||
|
config.write("txindex=1\n")
|
||||||
|
config.write("rpcworkqueue=256\n")
|
||||||
|
config.write("rpcallowip=127.0.0.1\n")
|
||||||
|
config.write("bind=127.0.0.1\n")
|
||||||
|
config.write("rpcbind=127.0.0.1")
|
||||||
if binary is None:
|
if binary is None:
|
||||||
binary = os.getenv("BITCOIND", "komodod")
|
binary = os.getenv("BITCOIND", "komodod")
|
||||||
args = [ binary, "-datadir="+datadir, "-keypool=1", "-discover=0", "-rest" ]
|
args = [ binary, "-datadir="+datadir, "-keypool=1", "-discover=0", "-rest" ]
|
||||||
@@ -223,10 +238,8 @@ def start_node(i, dirname, extra_args=None, rpchost=None, timewait=None, binary=
|
|||||||
if os.getenv("PYTHON_DEBUG", ""):
|
if os.getenv("PYTHON_DEBUG", ""):
|
||||||
print "start_node: calling komodo-cli -rpcwait getblockcount returned"
|
print "start_node: calling komodo-cli -rpcwait getblockcount returned"
|
||||||
devnull.close()
|
devnull.close()
|
||||||
if extra_args[0] == '-ac_name=REGTEST':
|
port = extra_args[3]
|
||||||
url = "http://rt:rt@%s:%d" % (rpchost or '127.0.0.1', 64368)
|
url = "http://rt:rt@%s:%d" % (rpchost or '127.0.0.1', int(port[9:]))
|
||||||
else:
|
|
||||||
url = "http://rt:rt@%s:%d" % (rpchost or '127.0.0.1', rpc_port(i))
|
|
||||||
print("connecting to " + url)
|
print("connecting to " + url)
|
||||||
if timewait is not None:
|
if timewait is not None:
|
||||||
proxy = AuthServiceProxy(url, timeout=timewait)
|
proxy = AuthServiceProxy(url, timeout=timewait)
|
||||||
|
|||||||
Reference in New Issue
Block a user