コード例 #1
0
ファイル: auxpow_getwork.py プロジェクト: sha256daux/xaya
    def test_create_submit_work(self):
        """
    Test the creatework / submitwork method pair.
    """

        # Check for errors with wrong parameters.
        assert_raises_rpc_error(-1, None, self.nodes[0].creatework)
        assert_raises_rpc_error(-5, "Invalid coinbase payout address",
                                self.nodes[0].creatework,
                                "this_an_invalid_address")

        # Fix a coinbase address and construct methods for it.
        coinbaseAddr = self.nodes[0].getnewaddress()

        def create():
            return self.nodes[0].creatework(coinbaseAddr)

        submit = self.nodes[0].submitwork

        # Run common tests.
        self.test_common(create, submit)

        # Ensure that the payout address is the one which we specify
        hash1 = mineWorkBlockWithMethods(self.nodes[0], create, submit)
        hash2 = mineWorkBlockWithMethods(self.nodes[0], create, submit)
        addr1 = getCoinbaseAddr(self.nodes[0], hash1)
        addr2 = getCoinbaseAddr(self.nodes[0], hash2)
        assert_equal(addr1, coinbaseAddr)
        assert_equal(addr2, coinbaseAddr)
コード例 #2
0
ファイル: auxpow_getwork.py プロジェクト: sha256daux/xaya
    def test_getwork(self):
        """
    Test the getwork method.
    """

        create = self.nodes[0].getwork
        submit = self.nodes[0].getwork
        self.test_common(create, submit)

        # Ensure that the payout address is changed from one block to the next.
        hash1 = mineWorkBlockWithMethods(self.nodes[0], create, submit)
        hash2 = mineWorkBlockWithMethods(self.nodes[0], create, submit)
        addr1 = getCoinbaseAddr(self.nodes[0], hash1)
        addr2 = getCoinbaseAddr(self.nodes[0], hash2)
        assert addr1 != addr2
        info = self.nodes[0].getaddressinfo(addr1)
        assert info['ismine']
        info = self.nodes[0].getaddressinfo(addr2)
        assert info['ismine']
コード例 #3
0
    def test_create_submit_work(self):
        """
    Test the creatework / submitwork method pair.
    """

        # Check for errors with wrong parameters.
        assert_raises_rpc_error(-1, None, self.nodes[0].creatework)
        assert_raises_rpc_error(-5, "Invalid coinbase payout address",
                                self.nodes[0].creatework,
                                "this_an_invalid_address")

        # Fix a coinbase address and construct methods for it.
        coinbaseAddr = self.nodes[0].getnewaddress()

        def create():
            return self.nodes[0].creatework(coinbaseAddr)

        submit = self.nodes[0].submitwork

        # Run common tests.
        self.test_common(create, submit)

        # Ensure that the payout address is the one which we specify
        hash1 = mineWorkBlockWithMethods(self.nodes[0], create, submit)
        hash2 = mineWorkBlockWithMethods(self.nodes[0], create, submit)
        addr1 = getCoinbaseAddr(self.nodes[0], hash1)
        addr2 = getCoinbaseAddr(self.nodes[0], hash2)
        assert_equal(addr1, coinbaseAddr)
        assert_equal(addr2, coinbaseAddr)

        # Ensure that different payout addresses will generate different auxblocks
        work1 = self.nodes[0].creatework(self.nodes[0].getnewaddress())
        work2 = self.nodes[0].creatework(self.nodes[0].getnewaddress())
        assert work1['hash'] != work2['hash']

        # Test that submitwork works also with just one argument.
        def submitOnlyData(hash, data):
            return self.nodes[0].submitwork(data)

        mineWorkBlockWithMethods(self.nodes[0], create, submitOnlyData)