All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.alphawallet.token.entity.MagicLinkInfo Maven / Gradle / Ivy

package com.alphawallet.token.entity;

/**
 * Created by James on 2/03/2019.
 * Stormbird in Singapore
 */
public class MagicLinkInfo
{
    //domains for DMZ
    public static final String mainnetMagicLinkDomain = "aw.app";
    private static final String legacyMagicLinkDomain = "app.awallet.io";
    private static final String classicMagicLinkDomain = "classic.aw.app";
    private static final String callistoMagicLinkDomain = "callisto.aw.app";
    private static final String kovanMagicLinkDomain = "kovan.aw.app";
    private static final String ropstenMagicLinkDomain = "ropsten.aw.app";
    private static final String rinkebyMagicLinkDomain = "rinkeby.aw.app";
    private static final String poaMagicLinkDomain = "poa.aw.app";
    private static final String sokolMagicLinkDomain = "sokol.aw.app";
    private static final String xDaiMagicLinkDomain = "xdai.aw.app";
    private static final String goerliMagicLinkDomain = "goerli.aw.app";
    private static final String artisSigma1MagicLinkDomain = "artissigma1.aw.app";
    private static final String artisTau1MagicLinkDomain = "artistau1.aw.app";
    private static final String customMagicLinkDomain = "custom.aw.app";

    //Etherscan domains
    private static final String mainNetEtherscan = "https://cn.etherscan.com/";
    private static final String classicEtherscan = "https://blockscout.com/etc/mainnet/";
    private static final String callistoEtherscan = "https://etherscan.io/"; //TODO: determine callisto etherscan
    private static final String kovanEtherscan = "https://kovan.etherscan.io/";
    private static final String ropstenEtherscan = "https://ropsten.etherscan.io/";
    private static final String rinkebyEtherscan = "https://rinkeby.etherscan.io/";
    private static final String poaEtherscan = "https://blockscout.com/poa/core/";
    private static final String sokolEtherscan = "https://blockscout.com/poa/sokol/";
    private static final String xDaiEtherscan = "https://blockscout.com/poa/dai/";
    private static final String goerliEtherscan = "https://goerli.etherscan.io/";
    private static final String artisSigma1Etherscan = "https://explorer.sigma1.artis.network/";
    private static final String artisTau1Etherscan = "https://explorer.tau1.artis.network/";

    //network ids
    public static final int LEGACY_VALUE = 0;
    public static final int MAINNET_NETWORK_ID = 1;
    public static final int CLASSIC_NETWORK_ID = 61;
    public static final int KOVAN_NETWORK_ID = 42;
    public static final int ROPSTEN_NETWORK_ID = 3;
    public static final int RINKEBY_NETWORK_ID = 4;
    public static final int POA_NETWORK_ID = 99;
    public static final int SOKOL_NETWORK_ID = 77;
    public static final int XDAI_NETWORK_ID = 100;
    public static final int GOERLI_NETWORK_ID = 5;
    public static final int ARTIS_SIGMA1_NETWORK_ID = 246529;
    public static final int ARTIS_TAU1_NETWORK_ID = 246785;

    //network names
    private static final String ETHEREUM_NETWORK = "Ethereum";
    private static final String CLASSIC_NETWORK = "Ethereum Classic";
    private static final String KOVAN_NETWORK = "Kovan";
    private static final String ROPSTEN_NETWORK = "Ropsten";
    private static final String RINKEBY_NETWORK = "Rinkeby";
    private static final String POA_NETWORK = "POA";
    private static final String SOKOL_NETWORK = "Sokol";
    private static final String XDAI_NETWORK = "xDAI";
    private static final String GOERLI_NETWORK = "Görli";
    private static final String ARTIS_SIGMA1_NETWORK = "ARTIS sigma1";
    private static final String ARTIS_TAU1_NETWORK = "ARTIS tau1";

    public static String getNetworkNameById(int networkId) {
        switch (networkId) {
            case MAINNET_NETWORK_ID:
                return ETHEREUM_NETWORK;
            case KOVAN_NETWORK_ID:
                return KOVAN_NETWORK;
            case ROPSTEN_NETWORK_ID:
                return ROPSTEN_NETWORK;
            case RINKEBY_NETWORK_ID:
                return RINKEBY_NETWORK;
            case POA_NETWORK_ID:
                return POA_NETWORK;
            case SOKOL_NETWORK_ID:
                return SOKOL_NETWORK;
            case CLASSIC_NETWORK_ID:
                return CLASSIC_NETWORK;
            case XDAI_NETWORK_ID:
                return XDAI_NETWORK;
            case GOERLI_NETWORK_ID:
                return GOERLI_NETWORK;
            case ARTIS_SIGMA1_NETWORK_ID:
                return ARTIS_SIGMA1_NETWORK;
            case ARTIS_TAU1_NETWORK_ID:
                return ARTIS_TAU1_NETWORK;
            default:
                return ETHEREUM_NETWORK;
        }
    }

    public static String getMagicLinkDomainFromNetworkId(int networkId) {
        switch (networkId) {
            case LEGACY_VALUE:
                return legacyMagicLinkDomain;
            case MAINNET_NETWORK_ID:
            default:
                return mainnetMagicLinkDomain;
            case KOVAN_NETWORK_ID:
                return kovanMagicLinkDomain;
            case ROPSTEN_NETWORK_ID:
                return ropstenMagicLinkDomain;
            case RINKEBY_NETWORK_ID:
                return rinkebyMagicLinkDomain;
            case POA_NETWORK_ID:
                return poaMagicLinkDomain;
            case SOKOL_NETWORK_ID:
                return sokolMagicLinkDomain;
            case CLASSIC_NETWORK_ID:
                return classicMagicLinkDomain;
            case XDAI_NETWORK_ID:
                return xDaiMagicLinkDomain;
            case GOERLI_NETWORK_ID:
                return goerliMagicLinkDomain;
            case ARTIS_SIGMA1_NETWORK_ID:
                return artisSigma1MagicLinkDomain;
            case ARTIS_TAU1_NETWORK_ID:
                return artisTau1MagicLinkDomain;
        }
    }

    //For testing you will not have the correct domain (localhost)
    //To test, alter the else statement to return the network you wish to test
    public static int getNetworkIdFromDomain(String domain) {
        switch(domain) {
            case mainnetMagicLinkDomain:
            default:
                return MAINNET_NETWORK_ID;
            case legacyMagicLinkDomain:
                return MAINNET_NETWORK_ID;
            case classicMagicLinkDomain:
                return CLASSIC_NETWORK_ID;
            case kovanMagicLinkDomain:
                return KOVAN_NETWORK_ID;
            case ropstenMagicLinkDomain:
                return ROPSTEN_NETWORK_ID;
            case rinkebyMagicLinkDomain:
                return RINKEBY_NETWORK_ID;
            case poaMagicLinkDomain:
                return POA_NETWORK_ID;
            case sokolMagicLinkDomain:
                return SOKOL_NETWORK_ID;
            case xDaiMagicLinkDomain:
                return XDAI_NETWORK_ID;
            case goerliMagicLinkDomain:
                return GOERLI_NETWORK_ID;
            case artisSigma1MagicLinkDomain:
                return ARTIS_SIGMA1_NETWORK_ID;
            case artisTau1MagicLinkDomain:
                return ARTIS_TAU1_NETWORK_ID;
        }
    }

    public static String getEtherscanURLbyNetwork(int networkId) {
        switch (networkId) {
            case MAINNET_NETWORK_ID:
            default:
                return mainNetEtherscan;
            case KOVAN_NETWORK_ID:
                return kovanEtherscan;
            case ROPSTEN_NETWORK_ID:
                return ropstenEtherscan;
            case RINKEBY_NETWORK_ID:
                return rinkebyEtherscan;
            case POA_NETWORK_ID:
                return poaEtherscan;
            case SOKOL_NETWORK_ID:
                return sokolEtherscan;
            case CLASSIC_NETWORK_ID:
                return classicEtherscan;
            case XDAI_NETWORK_ID:
                return xDaiEtherscan;
            case GOERLI_NETWORK_ID:
                return goerliEtherscan;
            case ARTIS_SIGMA1_NETWORK_ID:
                return artisSigma1Etherscan;
            case ARTIS_TAU1_NETWORK_ID:
                return artisTau1Etherscan;
        }
    }

    public static int identifyChainId(String link)
    {
        if (link == null || link.length() == 0) return 0;

        int chainId = 0;
        //split out the chainId from the magiclink
        int index = link.indexOf(mainnetMagicLinkDomain);
        int dSlash = link.indexOf("://");
        int legacy = link.indexOf(legacyMagicLinkDomain);
        //try new style link
        if (index > 0 && dSlash > 0)
        {
            String domain = link.substring(dSlash+3, index + mainnetMagicLinkDomain.length());
            chainId = getNetworkIdFromDomain(domain);
        }
        else if (legacy > 0)
        {
            chainId = 0;
        }

        return chainId;
    }

    public static String generatePrefix(int chainId)
    {
        return "https://" + getMagicLinkDomainFromNetworkId(chainId) + "/";
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy