Esempio n. 1
0
 def check_other_server_height(self, other_server):
     """To check the height of another server on the same port
     rtype: int"""
     if isinstance(other_server, Server):
         rest.use(self.__class__.network,
                  custom_seed=other_server.server_seed)
         other_server.update_server_blockchain_height()
         return other_server
     return 0
Esempio n. 2
0
    def update_server_blockchain_height(self):
        """update the server blockchain height\n
        return:    server_blockchain_height\n
        rtype:    int\n"""
        if rest.cfg.__URL_BASE__ != self.server_seed:
            rest.use(self.__class__.network, custom_seed=self.server_seed)
        self.server_blockchain_height = rest.GET.api.blocks.getHeight()[
            'height']

        return int(self.server_blockchain_height)
Esempio n. 3
0
 def __init__(self, server_ip, server_port, server_name=None):
     if not server_name:
         self.server_name = server_ip
     else:
         self.server_name = server_name
     self.server_ip = server_ip
     self.server_port = server_port
     self.server_seed = 'http://' + \
         str(self.server_ip) + ':' + str(self.server_port)
     self.__class__.get_network(server_port)
     try:
         rest.use(self.__class__.network, custom_seed=self.server_seed)
         self.server_blockchain_height = rest.GET.api.blocks.getHeight()[
             'height']
Esempio n. 4
0
	def test_loadAccount_badPin(self):
		use("dark")

		pin = "abc123"
		address = "DUGvQBxLzQqrNy68asPcU3stWQyzVq8G49".encode()
		privateKey = "123123123"
		base = createBase(pin)

		dumpAccount(base, address, privateKey)

		badPin = "xyz123"
		badBase = createBase(badPin)

		with self.assertRaises(BadPinError) as context:
			loadAccount(badBase)
Esempio n. 5
0
    def test_signTx(self):
        """
		Test signing a transaction directly from a ledger wallet
		"""
        rest.use("dark")

        with patch.object(ldgr,
                          'getDongle',
                          return_value=MockedHIDDongleHIDAPI()):
            tx = dict(vendorField="First Tx using ledger with arky!",
                      timestamp=int(slots.getTime()),
                      type=0,
                      amount=1,
                      recipientId='DUGvQBxLzQqrNy68asPcU3stWQyzVq8G49',
                      fee=10000000)
            signed_tx = ldgr.signTx(tx, self.path)
        assert signed_tx
Esempio n. 6
0
	def test_dumpAccount_findAccounts_loadAccount(self):
		use("dark")

		pin = "abc123"
		address = "DUGvQBxLzQqrNy68asPcU3stWQyzVq8G49".encode()
		privateKey = "123123123"
		base = createBase(pin)

		orig_accounts = findAccounts()
		orig_accounts.append("unamed")

		dumpAccount(base, address, privateKey)

		accounts = findAccounts()
		assert set(accounts) == set(orig_accounts)

		output = loadAccount(base)
		assert output["address"] == address
		assert output["privateKey"] == privateKey
Esempio n. 7
0
def getSelfTransaction(delegate='ravelou'):
    selfTransactions = []
    sum = 0
    arkApi.use('ark')  #API initialization

    delegateAddress = arkApi.GET.api.delegates.get(
        username=delegate)['delegate']['address']
    while True:
        Transactions = arkApi.GET.api.transactions(recipientId=delegateAddress)
        if Transactions["success"]:
            receivedTransactions = Transactions['transactions']
            break

    for elt in receivedTransactions:
        if elt['senderId'] == delegateAddress and elt['type'] == 0:
            selfTransactions.append(elt['amount'] / 100000000)
    for elt in selfTransactions:
        sum += elt
    print(sum)
Esempio n. 8
0
def getBlocksBetweenDates(beginDatetime,
                          endDatetime=datetime.now(pytz.UTC),
                          delegate='ravelou'):
    """
    beginDatetime : the Datetime from where you want to start the counting fees 
    beginTimetime : not use
    delegate : delegate name
    """
    limitRecord = 100  #100 : max record you can ask to ark api
    offset_rqst = 0  #index used to get more than limit_Record blocks from the ARK API
    forgedBlocks = []  #forged blocks before now and after beginDatetime

    arkApi.use('ark')  #API initialization

    delegatePublicKey = arkApi.GET.api.delegates.get(
        username=delegate)['delegate']['publicKey']

    forgedBlocksRequested = []
    while containsAValueAfterDateTime(forgedBlocksRequested, beginDatetime,
                                      endDatetime):

        blocksRequest = {}
        while not blocksRequest.get("success", False):
            blocksRequest = arkApi.GET.api.blocks(
                limit=limitRecord,
                generatorPublicKey=delegatePublicKey,
                offset=offset_rqst)

        forgedBlocksRequested = blocksRequest['blocks']
        if (arkApi.slots.getRealTime(forgedBlocksRequested[-1]['timestamp']) <=
                endDatetime or arkApi.slots.getRealTime(
                    forgedBlocksRequested[0]['timestamp']) >= beginDatetime):
            for i, elt in enumerate(forgedBlocksRequested):
                if (arkApi.slots.getRealTime(elt['timestamp']) >= beginDatetime
                        and arkApi.slots.getRealTime(
                            elt['timestamp']) <= endDatetime):
                    forgedBlocks.append(elt)
        elif (arkApi.slots.getRealTime(forgedBlocksRequested[0]['timestamp'])
              <= endDatetime and arkApi.slots.getRealTime(
                  forgedBlocksRequested[-1]['timestamp']) >= beginDatetime):
            forgedBlocks += forgedBlocksRequested
        offset_rqst += limitRecord + 1
    return forgedBlocks
Esempio n. 9
0
def use(param):
    if not param["<name>"]:
        choices = findNetworks()
        if choices:
            param["<name>"] = chooseItem("Network(s) found:", *choices)
            if not param["<name>"]:
                return
        else:
            sys.stdout.write("No Network found\n")
            return False

    DATA.initialize()

    rest.use(param.get("<name>"),
             broadcast=int(param.get("--broadcast", 10)),
             timeout=float(param.get("--latency", 5000)) / 1000)

    logger = logging.getLogger()
    logger.handlers[0].setFormatter(
        logging.Formatter('[%s]' % cfg.network + '[%(asctime)s] %(message)s'))
Esempio n. 10
0
    def post_transaction(self,
                         network,
                         recipientId,
                         amount,
                         secret,
                         vendorField="",
                         secondSecret=""):
        """ Post a new transaction.

        :param network: The network we want to use (ark, dark, ...)
        :param recipientId: A valid Ark address.
        :param amount: Amount of currency we want to transfer.
        :param secret: BIP39 seedpass.
        :param vendorField: Optionnal vendorField.
        :param secondSecret: Optionnal BIP39 second seedpass.
        :return: 
        """
        rest.use(network)

        return arky.core.sendTransaction(recipientId=recipientId,
                                         amount=amount,
                                         vendorField=vendorField,
                                         secret=secret,
                                         secondSecret=secondSecret)