def ss58_decode_account_index(address, valid_address_type=42): """ Decodes given SS58 encoded address to an AccountIndex Parameters ---------- address valid_address_type Returns ------- Decoded int AccountIndex """ account_index_bytes = ss58_decode(address, valid_address_type) if len(account_index_bytes) == 2: return U8(ScaleBytes('0x{}'.format(account_index_bytes))).decode() if len(account_index_bytes) == 4: return U16(ScaleBytes('0x{}'.format(account_index_bytes))).decode() if len(account_index_bytes) == 8: return U32(ScaleBytes('0x{}'.format(account_index_bytes))).decode() if len(account_index_bytes) == 16: return U64(ScaleBytes('0x{}'.format(account_index_bytes))).decode() else: raise ValueError("Invalid account index length")
def ss58_encode_account_index(account_index, address_type=42): """ Encodes an AccountIndex to an Substrate address according to provided address_type Parameters ---------- account_index address_type Returns ------- """ if 0 <= account_index <= 2**8 - 1: account_idx_encoder = U8() elif 2**8 <= account_index <= 2**16 - 1: account_idx_encoder = U16() elif 2**16 <= account_index <= 2**32 - 1: account_idx_encoder = U32() elif 2**32 <= account_index <= 2**64 - 1: account_idx_encoder = U64() else: raise ValueError("Value too large for an account index") return ss58_encode( account_idx_encoder.encode(account_index).data, address_type)
def ss58_decode_account_index(address, valid_ss58_format=None, valid_address_type=None): """ Decodes given SS58 encoded address to an AccountIndex Parameters ---------- address valid_ss58_format valid_address_type Returns ------- Decoded int AccountIndex """ if valid_address_type is not None: warnings.warn( "Keyword 'valid_address_type' will be replaced by 'valid_ss58_format'", DeprecationWarning) valid_ss58_format = valid_address_type account_index_bytes = ss58_decode(address, valid_ss58_format) if len(account_index_bytes) == 2: return U8(ScaleBytes('0x{}'.format(account_index_bytes))).decode() if len(account_index_bytes) == 4: return U16(ScaleBytes('0x{}'.format(account_index_bytes))).decode() if len(account_index_bytes) == 8: return U32(ScaleBytes('0x{}'.format(account_index_bytes))).decode() if len(account_index_bytes) == 16: return U64(ScaleBytes('0x{}'.format(account_index_bytes))).decode() else: raise ValueError("Invalid account index length")
def ss58_decode_account_index(address, valid_address_type=None): account_index_bytes = ss58_decode(address, valid_address_type) if len(account_index_bytes) == 2: return U8(ScaleBytes('0x{}'.format(account_index_bytes))).decode() if len(account_index_bytes) == 4: return U16(ScaleBytes('0x{}'.format(account_index_bytes))).decode() if len(account_index_bytes) == 8: return U32(ScaleBytes('0x{}'.format(account_index_bytes))).decode() if len(account_index_bytes) == 16: return U64(ScaleBytes('0x{}'.format(account_index_bytes))).decode() else: raise ValueError("Invalid account index length")
def ss58_encode_account_index(account_index, address_type=42): if 0 <= account_index <= 2**8 - 1: account_idx_encoder = U8() elif 2**8 <= account_index <= 2**16 - 1: account_idx_encoder = U16() elif 2**16 <= account_index <= 2**32 - 1: account_idx_encoder = U32() elif 2**32 <= account_index <= 2**64 - 1: account_idx_encoder = U64() else: raise ValueError("Value too large for an account index") return ss58_encode(account_idx_encoder.encode(account_index).data, address_type)
def ss58_encode_account_index(account_index, ss58_format=42, address_type=None): """ Encodes an AccountIndex to an Substrate address according to provided address_type Parameters ---------- account_index ss58_format address_type: (deprecated) Returns ------- """ if address_type is not None: warnings.warn( "Keyword 'address_type' will be replaced by 'ss58_format'", DeprecationWarning) ss58_format = address_type if 0 <= account_index <= 2**8 - 1: account_idx_encoder = U8() elif 2**8 <= account_index <= 2**16 - 1: account_idx_encoder = U16() elif 2**16 <= account_index <= 2**32 - 1: account_idx_encoder = U32() elif 2**32 <= account_index <= 2**64 - 1: account_idx_encoder = U64() else: raise ValueError("Value too large for an account index") return ss58_encode( account_idx_encoder.encode(account_index).data, ss58_format)