Пример #1
0
    # Should succeed via wallet lookup for address match, and when given
    pegtxid1 = sidechain.claimpegin(raw, proof)

    # Will invalidate the block that confirms this transaction later
    blockhash = sync_all(sidechain, sidechain2)
    sidechain.generate(5)

    tx1 = sidechain.gettransaction(pegtxid1)

    if "confirmations" in tx1 and tx1["confirmations"] == 6:
        print("Peg-in is confirmed: Success!")
    else:
        raise Exception("Peg-in confirmation has failed.")

    # Look at pegin fields
    decoded = sidechain.decoderawtransaction(tx1["hex"])
    assert decoded["vin"][0]["is_pegin"] == True
    assert len(decoded["vin"][0]["pegin_witness"]) > 0

    # Quick reorg checks of pegs
    sidechain.invalidateblock(blockhash[0])
    if sidechain.gettransaction(pegtxid1)["confirmations"] != 0:
        raise Exception("Peg-in didn't unconfirm after invalidateblock call.")
    # Re-enters block
    sidechain.generate(1)
    if sidechain.gettransaction(pegtxid1)["confirmations"] != 1:
        raise Exception("Peg-in should have one confirm on side block.")
    sidechain.reconsiderblock(blockhash[0])
    if sidechain.gettransaction(pegtxid1)["confirmations"] != 6:
        raise Exception("Peg-in should be back to 6 confirms.")
Пример #2
0
    pegtxid1 = sidechain.claimpegin(raw, proof)

    # Will invalidate the block that confirms this transaction later
    sync_all(bitcoin, bitcoin2)
    blockhash = sync_all(sidechain, sidechain2)
    sidechain.generate(5)

    tx1 = sidechain.gettransaction(pegtxid1)

    if "confirmations" in tx1 and tx1["confirmations"] == 6:
        print("Peg-in is confirmed: Success!")
    else:
        raise Exception("Peg-in confirmation has failed.")

    # Look at pegin fields
    decoded = sidechain.decoderawtransaction(tx1["hex"])
    assert decoded["vin"][0]["is_pegin"] == True
    assert len(decoded["vin"][0]["pegin_witness"]) > 0
    # Check that there's sufficient fee for the peg-in
    vsize = decoded["vsize"]
    fee_output = decoded["vout"][1]
    fallbackfee_pervbyte = Decimal("0.00001")/Decimal("1000")
    assert fee_output["scriptPubKey"]["type"] == "fee"
    assert fee_output["value"] >= fallbackfee_pervbyte*vsize

    # Quick reorg checks of pegs
    sidechain.invalidateblock(blockhash[0])
    if sidechain.gettransaction(pegtxid1)["confirmations"] != 0:
        raise Exception("Peg-in didn't unconfirm after invalidateblock call.")
    # Re-enters block
    sidechain.generate(1)