def check(state_engine):

    # not revealed, but ready
    ns = state_engine.get_namespace_reveal("test")
    if ns is not None:
        return False

    ns = state_engine.get_namespace("test")
    if ns is None:
        return False

    if ns['namespace_id'] != 'test':
        return False

    # preordered
    preorder = state_engine.get_name_preorder(
        "foo.test", pybitcoin.make_pay_to_address_script(wallets[2].addr),
        wallets[3].addr)
    if preorder is None:
        return False

    # paid fee
    if preorder['op_fee'] < blockstackd.get_name_cost('foo.test'):
        print "Insufficient fee"
        return False

    return True
def check( state_engine ):

    # not revealed, but ready 
    ns = state_engine.get_namespace_reveal( "test" )
    if ns is not None:
        return False 

    ns = state_engine.get_namespace( "test" )
    if ns is None:
        return False 

    if ns['namespace_id'] != 'test':
        return False 

    # preordered
    preorder = state_engine.get_name_preorder( "foo.test", pybitcoin.make_pay_to_address_script(wallets[2].addr), wallets[3].addr )
    if preorder is None:
        return False
    
    # paid fee 
    if preorder['op_fee'] < blockstackd.get_name_cost( 'foo.test' ):
        print "Insufficient fee"
        return False 

    return True
def check(state_engine):

    global preorder_consensus

    # not revealed, but ready
    ns = state_engine.get_namespace_reveal("test")
    if ns is not None:
        return False

    ns = state_engine.get_namespace("test")
    if ns is None:
        return False

    if ns['namespace_id'] != 'test':
        return False

    # there will be a multi-preorder
    preorder = state_engine.get_name_preorder_multi( ['foo.test', 'bar.test', 'baz.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[3].addr, wallets[4].addr, wallets[5].addr])

    if preorder is None:
        print "no preorder found for foo.test, bar.test, baz.test"
        return False

    if preorder['op_fee'] < blockstackd.get_name_cost(
            'foo.test') + blockstackd.get_name_cost(
                'bar.test') + blockstackd.get_name_cost('baz.test'):
        print "Insufficient fee"
        return False

    if not state_engine.is_sender_multi_preordering(
            pybitcoin.make_pay_to_address_script(wallets[2].addr)):
        print "Inconsistent state: preorder exists, but not preordering"
        return False

    # our names should not be registered
    for n in ['foo.test', 'bar.test', 'baz.test']:
        name_rec = state_engine.get_name(n)
        if name_rec is not None:
            print "Name registered: %s" % n
            return False

    return True
def check( state_engine ):

    global preorder_consensus

    # not revealed, but ready 
    ns = state_engine.get_namespace_reveal( "test" )
    if ns is not None:
        return False 

    ns = state_engine.get_namespace( "test" )
    if ns is None:
        return False 

    if ns['namespace_id'] != 'test':
        return False 

    # there will be a multi-preorder 
    preorder = state_engine.get_name_preorder_multi( ['foo.test', 'bar.test', 'baz.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[3].addr, wallets[4].addr, wallets[5].addr])

    if preorder is None:
        print "no preorder found for foo.test, bar.test, baz.test"
        return False

    if preorder['op_fee'] < blockstackd.get_name_cost( 'foo.test' ) + blockstackd.get_name_cost( 'bar.test' ) + blockstackd.get_name_cost( 'baz.test' ):
        print "Insufficient fee"
        return False 

    if not state_engine.is_sender_multi_preordering( pybitcoin.make_pay_to_address_script(wallets[2].addr) ):
        print "Inconsistent state: preorder exists, but not preordering"
        return False 

    # our names should not be registered 
    for n in ['foo.test', 'bar.test', 'baz.test']:
        name_rec = state_engine.get_name( n )
        if name_rec is not None:
            print "Name registered: %s" % n
            return False 

    return True
def check( state_engine ):

    # not revealed, but ready 
    ns = state_engine.get_namespace_reveal( "test" )
    if ns is not None:
        return False 

    ns = state_engine.get_namespace( "test" )
    if ns is None:
        return False 

    if ns['namespace_id'] != 'test':
        return False 

    # preorders for an even number of names all work 
    preorder = state_engine.get_name_preorder_multi( ['foo2.test', 'bar2.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[3].addr, wallets[4].addr])

    if preorder is None:
        print "no preorder found for 2-name preorder"
        return False

    if preorder['op_fee'] < blockstackd.get_name_cost( 'foo2.test' ) + blockstackd.get_name_cost( 'bar2.test' ):

        print "Insufficient fee"
        return False 

    # preorders for an even number of names all work 
    preorder = state_engine.get_name_preorder_multi( ['foo4.test', 'bar4.test', 'baz4.test', 'goo4.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[3].addr, wallets[4].addr, wallets[5].addr, wallets[6].addr])

    if preorder is None:
        print "no preorder found for 4-name preorder"
        return False 

    if preorder['op_fee'] < blockstackd.get_name_cost( 'foo4.test' ) + blockstackd.get_name_cost( 'bar4.test' ) + \
                            blockstackd.get_name_cost( 'baz4.test' ) + blockstackd.get_name_cost( 'goo4.test' ):

        print "Insufficient fee"
        return False 

    # preorders for an even number of names all work 
    preorder = state_engine.get_name_preorder_multi( ['foo6.test', 'bar6.test', 'baz6.test', 'goo6.test', 'quux6.test', 'norf6.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[0].addr, wallets[1].addr, wallets[2].addr, wallets[3].addr, wallets[4].addr, wallets[5].addr])

    if preorder is None:
        print "no preorder found for 6-name preorder"
        return False

    # order of addresses to names must match 
    preorder = state_engine.get_name_preorder_multi( ['foo2.test', 'bar2.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[4].addr, wallets[3].addr])

    if preorder is not None:
        print "stealing is possible in 2-name preorder"
        return False 

    if preorder['op_fee'] < blockstackd.get_name_cost( 'foo6.test' ) + blockstackd.get_name_cost( 'bar6.test' ) + \
                            blockstackd.get_name_cost( 'baz6.test' ) + blockstackd.get_name_cost( 'goo6.test' ) + \
                            blockstackd.get_name_cost( 'quux6.test') + blockstackd.get_name_cost( 'norf6.test' ):

        print "Insufficient fee"
        return False 


    # preorders for an even number of names all work 
    preorder = state_engine.get_name_preorder_multi( ['foo6.test', 'bar6.test', 'baz6.test', 'goo6.test', 'quux6.test', 'norf6.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[1].addr, wallets[0].addr, wallets[2].addr, wallets[3].addr, wallets[4].addr, wallets[5].addr])

    if preorder is not None:
        print "stealing is possible in 4-name preorder"
        return False 

    # preorders for an even number of names all work 
    preorder = state_engine.get_name_preorder_multi( ['foo6.test', 'bar6.test', 'baz6.test', 'goo6.test', 'quux6.test', 'norf6.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[0].addr, wallets[1].addr, wallets[3].addr, wallets[2].addr, wallets[4].addr, wallets[5].addr])


    if preorder is not None:
        print "stealing is possible in 4-name preorder"
        return False 


    # preorders for an even number of names all work 
    preorder = state_engine.get_name_preorder_multi( ['foo6.test', 'bar6.test', 'baz6.test', 'goo6.test', 'quux6.test', 'norf6.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[0].addr, wallets[1].addr, wallets[2].addr, wallets[4].addr, wallets[3].addr, wallets[5].addr])


    if preorder is not None:
        print "stealing is possible in 6-name preorder"
        return False 

    return True
示例#6
0
def check(state_engine):

    # not revealed, but ready
    ns = state_engine.get_namespace_reveal("test")
    if ns is not None:
        return False

    ns = state_engine.get_namespace("test")
    if ns is None:
        return False

    if ns['namespace_id'] != 'test':
        return False

    # preorders for an even number of names all work
    preorder = state_engine.get_name_preorder_multi( ['foo2.test', 'bar2.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[3].addr, wallets[4].addr])

    if preorder is None:
        print "no preorder found for 2-name preorder"
        return False

    if preorder['op_fee'] < blockstackd.get_name_cost(
            'foo2.test') + blockstackd.get_name_cost('bar2.test'):

        print "Insufficient fee"
        return False

    # preorders for an even number of names all work
    preorder = state_engine.get_name_preorder_multi( ['foo4.test', 'bar4.test', 'baz4.test', 'goo4.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[3].addr, wallets[4].addr, wallets[5].addr, wallets[6].addr])

    if preorder is None:
        print "no preorder found for 4-name preorder"
        return False

    if preorder['op_fee'] < blockstackd.get_name_cost( 'foo4.test' ) + blockstackd.get_name_cost( 'bar4.test' ) + \
                            blockstackd.get_name_cost( 'baz4.test' ) + blockstackd.get_name_cost( 'goo4.test' ):

        print "Insufficient fee"
        return False

    # preorders for an even number of names all work
    preorder = state_engine.get_name_preorder_multi( ['foo6.test', 'bar6.test', 'baz6.test', 'goo6.test', 'quux6.test', 'norf6.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[0].addr, wallets[1].addr, wallets[2].addr, wallets[3].addr, wallets[4].addr, wallets[5].addr])

    if preorder is None:
        print "no preorder found for 6-name preorder"
        return False

    # order of addresses to names must match
    preorder = state_engine.get_name_preorder_multi( ['foo2.test', 'bar2.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[4].addr, wallets[3].addr])

    if preorder is not None:
        print "stealing is possible in 2-name preorder"
        return False

    if preorder['op_fee'] < blockstackd.get_name_cost( 'foo6.test' ) + blockstackd.get_name_cost( 'bar6.test' ) + \
                            blockstackd.get_name_cost( 'baz6.test' ) + blockstackd.get_name_cost( 'goo6.test' ) + \
                            blockstackd.get_name_cost( 'quux6.test') + blockstackd.get_name_cost( 'norf6.test' ):

        print "Insufficient fee"
        return False

    # preorders for an even number of names all work
    preorder = state_engine.get_name_preorder_multi( ['foo6.test', 'bar6.test', 'baz6.test', 'goo6.test', 'quux6.test', 'norf6.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[1].addr, wallets[0].addr, wallets[2].addr, wallets[3].addr, wallets[4].addr, wallets[5].addr])

    if preorder is not None:
        print "stealing is possible in 4-name preorder"
        return False

    # preorders for an even number of names all work
    preorder = state_engine.get_name_preorder_multi( ['foo6.test', 'bar6.test', 'baz6.test', 'goo6.test', 'quux6.test', 'norf6.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[0].addr, wallets[1].addr, wallets[3].addr, wallets[2].addr, wallets[4].addr, wallets[5].addr])

    if preorder is not None:
        print "stealing is possible in 4-name preorder"
        return False

    # preorders for an even number of names all work
    preorder = state_engine.get_name_preorder_multi( ['foo6.test', 'bar6.test', 'baz6.test', 'goo6.test', 'quux6.test', 'norf6.test'], \
                                                     pybitcoin.make_pay_to_address_script(wallets[2].addr), \
                                                     [wallets[0].addr, wallets[1].addr, wallets[2].addr, wallets[4].addr, wallets[3].addr, wallets[5].addr])

    if preorder is not None:
        print "stealing is possible in 6-name preorder"
        return False

    return True