Skip to content
Snippets Groups Projects
Select Git revision
  • d3ee15fa3bcf714e17a21daf098288fbabb092e3
  • dev default protected
  • vainamoinen197-transactiondocument-replace-vec-fields-by-smallvec-2
  • dvermd/200-keypairs-dewif
  • elois/wot
  • jawaka/155-dbex-add-dump-fork-tree-command
  • elois/195-bcdbwriteop
  • elois/deps-crypto
  • elois/gva-monetary-mass
  • elois/191-sled
  • elois/195
  • ji_emme/gva-humantimefield
  • 184-gva-rename-commontime-field-to-blockchaintime
  • ji_emme/182-gva-implement-block-meta-data
  • ji_emme/rml14
  • hugo/151-ws2pv2-sync
  • ji_emme/181-gva-implement-identity-request
  • ji_emme/89-implement-client-api-gva-graphql-verification-api
  • logo
  • test-juniper-from-schema
  • elois/exemple-gva-global-context
  • v0.2.0-a4 protected
  • v0.2.0-a2 protected
  • v0.2.0-a protected
  • v0.1.1-a1 protected
  • documents/v0.10.0-b1 protected
  • crypto/v0.4.0-b1 protected
  • crypto/v0.3.0-b3 protected
  • crypto/v0.3.0-b2 protected
  • crypto/v0.3.0-b1 protected
  • wot/v0.8.0-a0.9 protected
  • wot/v0.8.0-a0.8 protected
  • 0.1.0-a0.1 protected
  • v0.0.1-a0.12 protected
  • v0.0.1-a0.11 protected
  • v0.0.1-a0.10 protected
  • v0.0.1-a0.9 protected
  • v0.0.1-a0.8 protected
  • v0.0.1-a0.7 protected
  • v0.0.1-a0.6 protected
  • v0.0.1-a0.5 protected
41 results

mocks.rs

Blame
  • functions.py 2.63 KiB
    import json
    from symbol import parameters
    from urllib.request import urlopen
    import base58
    from substrateinterface import Keypair, KeypairType
    
    def get_identities_bloc():
        # Get Dex idty data
        idty_data = load_json('dex_data/idty.json')
    
        # Get identities names by pubkey
        identity_names = {}
        for l in idty_data:
            pubkey = l['key']
            for m in l['value']:
                identity_names.update({pubkey: m['uid']})
        
        # Get g1stats balances data
        g1stats_data = load_json("https://g1-stats.axiom-team.fr/data/forbes.json", True)
        idty_balance = {}
        for k in g1stats_data:
            pubkey = k['pubkey']
            balance = k['balance'] * 100
            if balance < 0: balance = 0
            idty_balance.update({pubkey: int(balance)})
    
        # Get Dex certs data
        certs_data = load_json('dex_data/certs.json')
    
        # Generate identities Ğ1v2 genesis json bloc
        identities = {}
        for i in certs_data:
            pubkey = i['key']
            if pubkey not in identity_names: continue
            if pubkey not in idty_balance: continue
            
            idty_name = identity_names[pubkey]
            
            certs_received = []
            for j in i['value']['received']:
                r_username = identity_names[j]
                if r_username == None: continue
                certs_received.append(r_username)
            
            identities.update({idty_name: {}})
            identities[idty_name].update({'balance': idty_balance[pubkey]})
            identities[idty_name].update({'certs': certs_received})
            identities[idty_name].update({'pubkey': v1PubkeyToV2Address(pubkey)})
    
        return identities
    
    # Utility
    def v1PubkeyToV2Address(pubkey):
        pubkey_bytes = base58.b58decode(pubkey)
        pubkey_lenght = len(pubkey_bytes)
        
        # Add 0 head byte to pubkey so as to reach 32 bytes
        if pubkey_lenght < 32:
            pubkey_bytes = bytes([0]*(32-pubkey_lenght)) + pubkey_bytes
                
        # get incomplete Substrate keypair (only public key) from public key bytes
        keypair = Keypair(public_key=pubkey_bytes, ss58_format=42, crypto_type=KeypairType.ED25519)
    
        # return V2 address
        return keypair.ss58_address
    
    def load_json(data, isUrl = False):
        if isUrl:
            get_data = urlopen(data)
        else:
            get_data = open(data)
    
        return json.load(get_data)
    
    # def progressbar(it, prefix="", size=60, out=sys.stdout):
    #     count = len(it)
    #     def show(j):
    #         x = int(size*j/count)
    #         print("{}[{}{}] {}/{}".format(prefix, "#"*x, "."*(size-x), j, count), 
    #                 end='\r', file=out, flush=True)
    #     show(0)
    #     for i, item in enumerate(it):
    #         yield item
    #         show(i+1)
    #     print("\n", flush=True, file=out)