void HandleIndieCoreCallback(IndieCoreResult data)
    {
        if (data.error != null)
        {
            Debug.Log("error " + data.method + ": " + data.error.message);
            resultsText.text = data.method + ": " + data.error.message;
        }
        else
        {
            Debug.Log(data.method + ": " + data.result);
            resultsText.text = data.method + ": " + data.result;
            if (data.qrcode != null)
            {
                Rect rec = new Rect(0, 0, data.qrcode.width, data.qrcode.height);

                qrCode.sprite = Sprite.Create(data.qrcode, rec, new Vector2(0.5f, 0.5f), 500);
            }
        }
    }
Exemplo n.º 2
0
    void HandlePubSubCallback(bool error, string res)
    {
        IndieCoreResult result = new IndieCoreResult();

        if (error)
        {
            result.error  = new IndieCoreError(res);
            result.method = currentMethod;
            result.result = null;

            indieCoreCallback(result);
        }
        else
        {
            linkageWallet(currentParams, currentChannel);



            Dictionary <string, string> newParameters = new Dictionary <string, string>();
            newParameters.Add("channel", currentChannel);
            newParameters.Add("type", "1");
            StartCoroutine(postAsync(baseurl + "/pubsub/subscribe", newParameters, HandleHttpAsyncCallback));
        }
    }
Exemplo n.º 3
0
    void linkageWallet(Dictionary <string, string> parameters, string channel)
    {
        string request = parameters ["request"];
        string nonce   = System.Guid.NewGuid() + "";;

        Dictionary <string, string> newParameters = new Dictionary <string, string>();

        newParameters.Add("channel", channel);
        newParameters.Add("nonce", nonce);
        newParameters.Add("x-success", urlscheme);

        if (request == "sign")
        {
            newParameters.Add("unsigned_hex", parameters["unsigned_hex"]);
        }

        string jsonString = JsonMapper.ToJson(newParameters);
        string urlParams  = request + "?params=" + jsonString;

        if (request == "getaddress" || request == "verifyuser")
        {
            string xcallback_params = "channel=" + channel + "&nonce=" + nonce + "&x-success=" + urlscheme + "&msg=" + channel;
            urlParams = "x-callback-url/" + request + "?" + xcallback_params;
        }



        Debug.Log("urlparams: " + urlParams);

        bool fail = false;

                #if UNITY_IPHONE
        Application.OpenURL("indiewallet://" + urlParams);
                #elif UNITY_ANDROID
        AndroidJavaClass  up             = new AndroidJavaClass("com.unity3d.player.UnityPlayer");
        AndroidJavaObject ca             = up.GetStatic <AndroidJavaObject> ("currentActivity");
        AndroidJavaObject packageManager = ca.Call <AndroidJavaObject> ("getPackageManager");
        AndroidJavaObject launchIntent   = null;


        launchIntent = packageManager.Call <AndroidJavaObject> ("getLaunchIntentForPackage", "inc.lireneosoft.counterparty");
        launchIntent.Call <AndroidJavaObject> ("setClassName", "inc.lireneosoft.counterparty", "inc.lireneosoft.counterparty.IntentActivity");
        try {
            AndroidJavaClass  Uri = new AndroidJavaClass("android.net.Uri");
            AndroidJavaObject uri = Uri.CallStatic <AndroidJavaObject>("parse", "indiewallet://" + urlParams);
            launchIntent.Call <AndroidJavaObject> ("setData", uri);
            //launchIntent.Call<AndroidJavaObject>("setAction", "inc.lireneosoft.counterparty.IntentActivity");
            launchIntent.Call <AndroidJavaObject>("putExtra", "source", urlParams);
        } catch (System.Exception e) {
            fail = true;
        }

        if (fail)
        {
            Debug.Log("app not found");
        }
        else
        {
            ca.Call("startActivity", launchIntent);
        }
        up.Dispose();
        ca.Dispose();
        packageManager.Dispose();
        launchIntent.Dispose();
                #else
        string qrurl = "indiewallet://" + urlParams;

        IndieCoreResult result = new IndieCoreResult();


        result.error  = null;
        result.method = currentMethod;
        result.result = qrurl;
        result.qrcode = generateQR(qrurl);
        indieCoreCallback(result);
                #endif
    }
Exemplo n.º 4
0
    void HandleHttpAsyncCallback(bool error, string res)
    {
        IndieCoreResult result = new IndieCoreResult();

        if (error)
        {
            result.error  = new IndieCoreError(res);
            result.method = currentMethod;
            result.result = null;

            indieCoreCallback(result);
            return;
        }

        if (currentMethod == "getAddress")
        {
            JsonData data = JsonMapper.ToObject(res);

            JsonData data1     = data ["data"];
            string   address   = data1 ["address"].ToString();
            string   signature = data1 ["signature"].ToString();

            if (verifySignature(address, currentChannel, signature))
            {
                result.error  = null;
                result.method = currentMethod;
                result.result = address;

                indieCoreCallback(result);
            }
            else
            {
                result.error  = new IndieCoreError("address not verified");
                result.method = currentMethod;
                result.result = null;

                indieCoreCallback(result);
            }
        }
        else if (currentMethod == "signTransaction")
        {
            JsonData data = JsonMapper.ToObject(res);

            JsonData data1    = data ["data"];
            string   signedTx = data1 ["signed_tx"].ToString();

            result.error  = null;
            result.method = currentMethod;
            result.result = signedTx;

            indieCoreCallback(result);
        }
        else if (currentMethod == "getTokenDescriptionPart1")
        {
            JsonData data = JsonMapper.ToObject(res);

            string description = data["description"].ToString();

            System.Uri uriResult;
            bool       isURL = System.Uri.TryCreate(description, System.UriKind.Absolute, out uriResult) &&
                               (uriResult.Scheme == System.Uri.UriSchemeHttp || uriResult.Scheme == System.Uri.UriSchemeHttps);

            if (isURL)
            {
                currentMethod = "getTokenDescriptionPart2";

                StartCoroutine(getAsync(description, HandleHttpAsyncCallback));
            }
            else
            {
                result.error  = null;
                result.method = currentMethod;
                result.result = description;

                indieCoreCallback(result);
            }
        }
        else if (currentMethod == "getTokenDescriptionPart2")
        {
            result.error  = null;
            result.method = currentMethod;
            result.result = res;

            indieCoreCallback(result);
        }


        else
        {
            result.error  = null;
            result.method = currentMethod;
            result.result = res;

            indieCoreCallback(result);
        }
    }