예제 #1
0
 def test_trx_send_wrong_path(self, app):
     tx = app.packContract(
         tron.Transaction.Contract.TransferContract,
         contract.TransferContract(
             owner_address=bytes.fromhex(app.getAccount(0)['addressHex']),
             to_address=bytes.fromhex(app.getAccount(0)['addressHex']),
             amount=100000000
         )
     )
     data, status = app.sign(app.getAccount(0)['path'], tx)
     validSignature, txID = validateSignature.validate(tx,data[0:65],app.getAccount(0)['publicKey'][2:])
     assert(validSignature == False)
예제 #2
0
 def test_trx_send_with_data_field(self, app):
     tx = app.packContract(
         tron.Transaction.Contract.TransferContract,
         contract.TransferContract(
             owner_address=bytes.fromhex(app.getAccount(0)['addressHex']),
             to_address=bytes.fromhex(app.getAccount(0)['addressHex']),
             amount=100000000
         ),
         b'CryptoChain-TronSR Ledger Transactions Tests'
     )
     data, status = app.sign(app.getAccount(0)['path'], tx)
     validSignature, txID = validateSignature.validate(tx,data[0:65],app.getAccount(0)['publicKey'][2:])
     assert(validSignature == True)
예제 #3
0
 def test_vs_send_permissioned(self, app):
     tx = app.packContract(
         vision.Transaction.Contract.TransferContract,
         contract.TransferContract(
             owner_address=bytes.fromhex(app.getAccount(0)['addressHex']),
             to_address=bytes.fromhex(app.getAccount(0)['addressHex']),
             amount=100000000
         ),
         None,
         2
     )
     data, status = app.sign(app.getAccount(0)['path'], tx)
     assert(status == 0x9000)
     validSignature, txID = validateSignature.validate(tx,data[0:65],app.getAccount(0)['publicKey'][2:])
     assert(validSignature == True)
예제 #4
0
 def createtransaction(self, owner_address, to_address, amount):
     """
     创建一个转账的交易
     :return: 返回转账合约对象
     {
     "transaction" :
         {"txID":"454f156bf1256587ff6ccdbc56e64ad0c51e4f8efea5490dcbc720ee606bc7b8",
         "raw_data":
             {"contract":
                 [{"parameter":
                     {"value":
                         {"amount":1,
                          "owner_address":"41235d90e1d0a0ccfa268781f464e0252ba6112993",
                          "to_address":"41d1e7a6bc354106cb410e65ff8b181c600ff14292"
                         },
                         "type_url":"type.googleapis.com/protocol.TransferContract"
                     },
                     "type":"TransferContract"
                 }],
                 "ref_block_bytes":"267e",
                 "ref_block_hash":"9a447d222e8de9f2",
                 "expiration":1530893064000,
                 "timestamp":1530893006233
             }
         }
         ,"privateKey": "your private key"
     }
     """
     transfer = Contract_pb2.TransferContract()
     transfer.owner_address = owner_address.encode()
     transfer.to_address = to_address.encode()
     transfer.amount = amount
     with grpc.insecure_channel('localhost:50051') as channel:
         stub = api_pb2_grpc.WalletStub(channel)
         response = stub.CreateTransaction2(transfer)
     return response
예제 #5
0
# Start Channel and WalletStub
channel = grpc.insecure_channel("vtest.infragrid.v.network:50051")
stub = WalletStub(channel)

logger.debug('''
   Vision Transactions tests
''')

############
# Send VS #
############
logger.debug('\n\nTransfer Contract:')

tx = stub.CreateTransaction2(
    contract.TransferContract(
        owner_address=bytes.fromhex(accounts[1]['addressHex']),
        to_address=bytes.fromhex(accounts[0]['addressHex']),
        amount=1))

raw_tx, result = ledgerSign(accounts[1]['path'], tx.transaction)
validSignature, txID = validateSignature.validate(raw_tx, result[0:65],
                                                  accounts[1]['publicKey'][2:])
logger.debug('- RAW: {}'.format(raw_tx))
logger.debug('- txID: {}'.format(txID))
logger.debug('- Signature: {}'.format(binascii.hexlify(result[0:65])))
if (validSignature):
    logger.debug('- Valid: {}'.format(validSignature))
else:
    logger.error('- Valid: {}'.format(validSignature))
    sys.exit(0)

# Broadcast Example
예제 #6
0
# Start Channel and WalletStub
channel = grpc.insecure_channel("grpc.trongrid.io:50051")
stub = WalletStub(channel)

logger.debug('''
   Tron Transactions tests
''')

############
# Send TRX #
############
logger.debug('\n\nTransfer Contract:')

tx = stub.CreateTransaction2(contract.TransferContract(
        owner_address=bytes.fromhex(accounts[1]['addressHex']),
        to_address=bytes.fromhex(accounts[0]['addressHex']),
        amount=1
        ))

raw_tx, result = ledgerSign(accounts[1]['path'],tx.transaction)
validSignature, txID = validateSignature.validate(raw_tx,result[0:65],accounts[1]['publicKey'][2:])
logger.debug('- RAW: {}'.format(raw_tx))
logger.debug('- txID: {}'.format(txID))
logger.debug('- Signature: {}'.format(binascii.hexlify(result[0:65])))
if (validSignature):
    logger.debug('- Valid: {}'.format(validSignature))
else:
    logger.error('- Valid: {}'.format(validSignature))
    sys.exit(0)

# Broadcast Example
예제 #7
0
from core import Vision_pb2 as vision
from google.protobuf.any_pb2 import Any
import grpc

# Start Channel and WalletStub
channel = grpc.insecure_channel("vtest.infragrid.v.network:50051")
stub = WalletStub(channel)

logger.debug('''
   Vision MultiSign tests
''')

tx = stub.CreateTransaction2(
    contract.TransferContract(
        owner_address=bytes.fromhex(
            address_hex("VUEZSdKsoDHQMeZwihtdoBiN46zxhGWYdH")),
        to_address=bytes.fromhex(
            address_hex("VPnYqC2ukKyhEDAjqRRobSVygMAb8nAcXM")),
        amount=100000))
# use permission 2
tx.transaction.raw_data.contract[0].Permission_id = 2

raw_tx, sign1 = ledgerSign(parse_bip32_path("44'/195'/0'/0/0"), tx.transaction)
raw_tx, sign2 = ledgerSign(parse_bip32_path("44'/195'/1'/0/0"), tx.transaction)

tx.transaction.signature.extend([bytes(sign1[0:65])])
tx.transaction.signature.extend([bytes(sign2[0:65])])

r = stub.BroadcastTransaction(tx.transaction)

if r.result == True:
    print("Success")