Matrix AI Network integration tutorials — Part 1: Converting an ETH address to MAN address (JS, Node
This tutorial is for educational purposes only, I’m not responsible for any losses, damages, or other liabilities which may occur by using any info/code provided here(or anywhere else it is posted).
The code is not production ready! (only for learning purposes)
In this guide, I’m going to show you how to convert an ETH address to an MAN address (Mainnet).
Let’s first start by opening a cmd prompt.
To open a terminal you can type cmd into the start search bar, the start search bar is at the bottom left of the screen (if no themes were applied)
After opening the terminal we are going to cd into the folder we created (in my case, AddressCoverter): cd AddressConverter
Now we are going to create a new npm package by running npm init in a command prompt (pointing at a folder of your choice, I’ll use my folder on Desktop for this test, named AddressConverter) and provide the right info (or skip through it by pressing enter and writing yes at the end of the ‘setup’ (Is this Ok?), it should look similar to this:
Also, run the following commands on the cmd you got open at the package location (we install some packages which we will be using for our mini-application):
npm install buffer
npm install polycrc
npm install bs58
Now open Visual Studio Code on that folder location, create a file named index.js, install any required extensions (js lint or anything that is suggested by Visual Studio Code for node.js/js) and let’s start coding.
We start by including the modules we previously installed:
Now let’s create a function that checks if the address we provided is VALID (has valid characters, we will use regex for that, make sure that the provided address starts with 0x then it is followed by a string of 40 hexadecimal characters: a…f, A…F, 0…9, the i modifier is used to perform case-insensitive matching):
Now we call another function named getConvertedManAddress, this one will convert it into a Matrix AI Network Mainnet format (Base58, the excluded characters are 0, O, I, l):
For `0x5Fd71CF221e450E619638338bD21871229835261` it should return `MAN.2LSfiVSmKx8PD9YUbdVGuHEhDY3Jz`
For `0x5Fd71CF221e450E619638338bD21871229835261z` it should return `0x5Fd71CF221e450E619638338bD21871229835261z is not a valid ETH address`
Let’s start programming!
I will start by creating a function that checks if the address we provided is VALID (has valid characters, we will use regex for that, make sure that the provided address starts with MAN, matches ‘.’, then it is followed by a string of 21–29 characters: a…Z, A…Z, 0…9 (matches 21–29 times, after MAN.)):
Also, we will check for cyclic redundancy:
Then we will decode the address (base 58 encoded string, without the last Character) then convert it to hex and add 0x before it:
For ‘MAN.2LSfiVSmKx8PD9YUbdVGuHEhDY3Jz’ it should return ‘0x5fd71cf221e450e619638338bd21871229835261’
For ‘MAN.2LSfiVSmKx8PD9YUbdVGuHEhDY3JzO’ it should return ‘MAN.2LSfiVSmKx8PD9YUbdVGuHEhDY3JzO is not a valid MAN address’
For more documentation on the packages used, you can check:
Also, check out the official Matrix AI Network Developer Portal: