def test_TestNewBlock(): txns = makeTestTransactions() err, block = skycoin.SKY_coin_NewEmptyBlock(txns) assert err == skycoin.SKY_OK err, pBlock = skycoin.SKY_coin_GetBlockObject(block) assert err == skycoin.SKY_OK pBlock.Head.Version = 0x02 pBlock.Head.Time = 100 pBlock.Head.BkSeq = 98 uxHash = utils.RandSHA256() err, _ = skycoin.SKY_coin_NewBlock(block, 133, uxHash, txns, utils.badFeeCalculator) assert err == skycoin.SKY_ERROR err, txns1 = skycoin.SKY_coin_Create_Transactions() assert err == skycoin.SKY_OK err, _ = skycoin.SKY_coin_NewBlock(block, 133, uxHash, txns1, utils.feeCalc) assert err == skycoin.SKY_ERROR fee = int(121) currentTime = int(133) err, b = skycoin.SKY_coin_NewBlock(block, currentTime, uxHash, txns, utils.fix121FeeCalculator) assert err == skycoin.SKY_OK err, pBlock = skycoin.SKY_coin_GetBlockObject(b) assert err == skycoin.SKY_OK
def test_TestBlockHashHeader(): uxHash = utils.RandSHA256() err, block = makeNewBlock(uxHash) assert err == skycoin.SKY_OK err, pBlock = skycoin.SKY_coin_GetBlockObject(block) assert err == skycoin.SKY_OK hash1 = skycoin.cipher_SHA256() hash2 = skycoin.cipher_SHA256() err = skycoin.SKY_coin_Block_HashHeader(block, hash1) assert err == skycoin.SKY_OK err = skycoin.SKY_coin_BlockHeader_Hash(pBlock.Head, hash2) assert err == skycoin.SKY_OK assert hash1.toStr() == hash2.toStr() hash2 = skycoin.cipher_SHA256() assert hash1 != hash2
def test_TestBlockHashBody(): uxHash = utils.RandSHA256() err, block = makeNewBlock(uxHash) assert err == skycoin.SKY_OK err, pBlock = skycoin.SKY_coin_GetBlockObject(block) assert err == skycoin.SKY_OK hash1 = skycoin.cipher_SHA256() hash2 = skycoin.cipher_SHA256() err = skycoin.SKY_coin_Block_HashBody(block, hash1) assert err == skycoin.SKY_OK err, blockBody = skycoin.SKY_coin_GetBlockBody(block) assert err == skycoin.SKY_OK err = skycoin.SKY_coin_BlockBody_Hash(blockBody, hash2) assert err == skycoin.SKY_OK assert hash1 == hash2
def makeNewBlock(uxHash): bodyhash = skycoin.cipher_SHA256() transactions = makeTestTransactions() err, block = skycoin.SKY_coin_NewEmptyBlock(transactions) assert err == skycoin.SKY_OK err, pBlock = skycoin.SKY_coin_GetBlockObject(block) assert err == skycoin.SKY_OK pBlock.Head.Version = 0x02 pBlock.Head.Time = 100 pBlock.Head.BkSeq = 0 pBlock.Head.Fee = 10 err, body = skycoin.SKY_coin_GetBlockBody(block) assert err == skycoin.SKY_OK err = skycoin.SKY_coin_BlockBody_Hash(body, bodyhash) assert err == skycoin.SKY_OK return skycoin.SKY_coin_NewBlock(block, int(100 + 200), uxHash, transactions, utils.feeCalc)
def test_TestNewGenesisBlock(): pubkey = skycoin.cipher_PubKey() seckey = skycoin.cipher_SecKey() genTime = 1000 genCoins = int(1000 * 1000 * 1000) genCoinHours = int(1000 * 1000) err, pubkey, seckey, address = utils.makeKeysAndAddress() assert err == skycoin.SKY_OK err, block = skycoin.SKY_coin_NewGenesisBlock(address, genCoins, genTime) assert err == skycoin.SKY_OK err, pBlock = skycoin.SKY_coin_GetBlockObject(block) assert err == skycoin.SKY_OK nullHash = skycoin.cipher_SHA256() err, pHead = skycoin.SKY_coin_BlockHeader_Bytes(pBlock.Head) assert err == skycoin.SKY_OK assert nullHash.compareToString(str(pHead)) assert genTime == pBlock.Head.Time assert 0 == pBlock.Head.BkSeq assert 0 == pBlock.Head.Version assert 0 == pBlock.Head.Fee