Пример #1
0
        public async Task <Identity> GetIdentity(IdentityRequiredFields requiredFields = null)
        {
            ThrowNoAuth();

            if (requiredFields == null)
            {
                requiredFields = new IdentityRequiredFields()
                {
                    accounts = new List <Network>()
                    {
                        Network
                    },
                    location = new List <LocationFields>(),
                    personal = new List <PersonalFields>()
                };
            }

            var result = await SocketService.SendApiRequest <IdentityRequest, Identity>(new Request <IdentityRequest>()
            {
                type    = "getOrRequestIdentity",
                payload = new IdentityRequest()
                {
                    fields = requiredFields,
                    origin = AppName
                }
            });

            return(Identity = result);
        }
Пример #2
0
        public async Task <string> GetVersion()
        {
            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "getVersion",
                Payload = new { origin = AppName }
            });

            ThrowOnApiError(result);

            return(result.ToObject <string>());
        }
Пример #3
0
        public async Task <SignaturesResult> RequestSignature(object payload)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <object, SignaturesResult>(new Request <object>()
            {
                type    = "requestSignature",
                payload = payload
            });

            return(result);
        }
Пример #4
0
        public async Task <string> GetVersion()
        {
            var result = await SocketService.SendApiRequest <ApiBase, string>(new Request <ApiBase>()
            {
                type    = "getVersion",
                payload = new ApiBase()
                {
                    origin = AppName
                }
            });

            return(result);
        }
Пример #5
0
        public async Task <SignaturesResult> RequestSignature(object payload)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "requestSignature",
                Payload = payload
            });

            ThrowOnApiError(result);

            return(result.ToObject <SignaturesResult>());
        }
Пример #6
0
        //TODO check
        public async Task <object> RequestTransfer(string to, string amount, object options = null)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "requestTransfer",
                Payload = new { network = Network, to, amount, options, origin = AppName }
            });

            ThrowOnApiError(result);

            return(result);
        }
Пример #7
0
        public async Task <bool> SuggestNetwork()
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "requestAddNetwork",
                Payload = new { network = Network, origin = AppName }
            });

            ThrowOnApiError(result);

            return(result.ToObject <bool>());
        }
Пример #8
0
        public async Task <bool> LinkAccount(string publicKey)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "linkAccount",
                Payload = new { publicKey, network = Network, origin = AppName }
            });

            ThrowOnApiError(result);

            return(result.ToObject <bool>());
        }
Пример #9
0
        public async Task <string> GetPublicKey(string blockchain)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "getPublicKey",
                Payload = new { blockchain, origin = AppName }
            });

            ThrowOnApiError(result);

            return(result.ToObject <string>());
        }
Пример #10
0
        public async Task <string> GetArbitrarySignature(string publicKey, string data, string whatfor = "", bool isHash = false)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "requestArbitrarySignature",
                Payload = new { publicKey, data, whatfor, isHash, origin = AppName }
            });

            ThrowOnApiError(result);

            return(result.ToObject <string>());
        }
Пример #11
0
        public async Task <string> Authenticate(string nonce)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "authenticate",
                Payload = new { nonce, origin = AppName }
            });

            ThrowOnApiError(result);

            return(result.ToObject <string>());
        }
Пример #12
0
        public async Task <bool> ForgetIdentity()
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "forgetIdentity",
                Payload = new { origin = AppName }
            });

            ThrowOnApiError(result);

            Identity = null;
            return(result.ToObject <bool>());
        }
Пример #13
0
        public async Task <Identity> GetIdentity(IdentityRequiredFields requiredFields)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <IdentityRequest, Identity>(new Request <IdentityRequest>()
            {
                type    = "getOrRequestIdentity",
                payload = new IdentityRequest()
                {
                    fields = requiredFields,
                    origin = AppName
                }
            });

            return(Identity = result);
        }
Пример #14
0
        /// <summary>
        /// Allows dapps to see if a user has an account for a specific blockchain. DOES NOT PROMPT and does not return an actual account, just a boolean.
        /// </summary>
        /// <param name="timeout">set response timeout that overrides the default one</param>
        /// <returns></returns>
        public async Task <bool> HasAccountFor(int?timeout = null)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <NetworkRequest, string>(new Request <NetworkRequest>()
            {
                type    = "hasAccountFor",
                payload = new NetworkRequest()
                {
                    network = Network,
                    origin  = AppName
                }
            }, timeout);

            return(bool.Parse(result));
        }
Пример #15
0
        public async Task <bool> SuggestNetwork()
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <NetworkRequest, string>(new Request <NetworkRequest>()
            {
                type    = "requestAddNetwork",
                payload = new NetworkRequest()
                {
                    network = Network,
                    origin  = AppName
                }
            });

            return(bool.Parse(result));
        }
Пример #16
0
        public async Task <Identity> GetIdentity(IdentityRequiredFields requiredFields)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "getOrRequestIdentity",
                Payload = new { fields = requiredFields, origin = AppName }
            });

            ThrowOnApiError(result);

            Identity = result.ToObject <Identity>();

            return(Identity);
        }
Пример #17
0
        public async Task <string> GetPublicKey(string blockchain)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <GetPublicKeyRequest, string>(new Request <GetPublicKeyRequest>()
            {
                type    = "getPublicKey",
                payload = new GetPublicKeyRequest()
                {
                    blockchain = blockchain,
                    origin     = AppName
                }
            });

            return(result);
        }
Пример #18
0
        public async Task <string> UpdateIdentity(string name, string kyc = null)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <UpdateIdentityRequest, string>(new Request <UpdateIdentityRequest>()
            {
                type    = "updateIdentity",
                payload = new UpdateIdentityRequest()
                {
                    name   = name,
                    kyc    = kyc,
                    origin = AppName
                }
            });

            return(result);
        }
Пример #19
0
        public async Task <bool> AddToken(Token token)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <TokenRequest, string>(new Request <TokenRequest>()
            {
                type    = "addToken",
                payload = new TokenRequest()
                {
                    token   = token,
                    network = Network,
                    origin  = AppName
                }
            });

            return(bool.Parse(result));
        }
Пример #20
0
        public async Task <bool> LinkAccount(LinkAccount account)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <LinkAccountRequest, string>(new Request <LinkAccountRequest>()
            {
                type    = "linkAccount",
                payload = new LinkAccountRequest()
                {
                    account = account,
                    network = Network,
                    origin  = AppName
                }
            });

            return(bool.Parse(result));
        }
Пример #21
0
        public async Task <bool> ForgetIdentity()
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <ApiBase, string>(new Request <ApiBase>()
            {
                type    = "forgetIdentity",
                payload = new ApiBase()
                {
                    origin = AppName
                }
            });

            Identity = null;

            return(bool.Parse(result));
        }
Пример #22
0
        //TODO test on new branch
        public async Task <string> GetEncryptionKey(string fromPublicKey, string toPublicKey, UInt64 nonce)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <GetEncryptionKeyRequest, string>(new Request <GetEncryptionKeyRequest>()
            {
                type    = "getEncryptionKey",
                payload = new GetEncryptionKeyRequest()
                {
                    fromPublicKey = fromPublicKey,
                    toPublicKey   = toPublicKey,
                    nonce         = nonce,
                    origin        = AppName
                }
            });

            return(result);
        }
Пример #23
0
        public async Task <string> Authenticate(string nonce, string data = null, string publicKey = null)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <AuthenticateRequest, string>(new Request <AuthenticateRequest>()
            {
                type    = "authenticate",
                payload = new AuthenticateRequest()
                {
                    nonce     = nonce,
                    data      = data,
                    publicKey = publicKey,
                    origin    = AppName
                }
            });

            return(result);
        }
Пример #24
0
        public async Task <string> GetArbitrarySignature(string publicKey, string data, string whatfor = "", bool isHash = false)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <ArbitrarySignatureRequest, string>(new Request <ArbitrarySignatureRequest>()
            {
                type    = "requestArbitrarySignature",
                payload = new ArbitrarySignatureRequest()
                {
                    publicKey = publicKey,
                    data      = data,
                    whatfor   = whatfor,
                    isHash    = isHash,
                    origin    = AppName
                }
            });

            return(result);
        }
Пример #25
0
        //TODO check
        /// <summary>
        /// Request transfer of funds.
        /// </summary>
        /// <param name="to"></param>
        /// <param name="amount"></param>
        /// <param name="options"></param>
        /// <param name="timeout">set response timeout that overrides the default one</param>
        /// <returns></returns>
        public async Task <object> RequestTransfer(string to, string amount, object options = null, int?timeout = null)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <TransferRequest, object>(new Request <TransferRequest>()
            {
                type    = "requestTransfer",
                payload = new TransferRequest()
                {
                    network = Network,
                    to      = to,
                    amount  = amount,
                    options = options,
                    origin  = AppName
                }
            }, timeout);

            return(result);
        }
Пример #26
0
        public async Task <Identity> GetIdentityFromPermissions()
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "identityFromPermissions",
                Payload = new { origin = AppName }
            });

            ThrowOnApiError(result);

            if (result.Type == JTokenType.Object)
            {
                Identity = result.ToObject <Identity>();
            }

            return(Identity);
        }
Пример #27
0
        //TODO test on new branch
        public async Task <string> GetEncryptionKey(string fromPublicKey, string toPublicKey, UInt64 nonce)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest(new Request()
            {
                Type    = "getEncryptionKey",
                Payload = new
                {
                    fromPublicKey,
                    toPublicKey,
                    nonce,
                    origin = AppName
                }
            });

            ThrowOnApiError(result);

            return(result.ToObject <string>());
        }
Пример #28
0
        public async Task <Identity> GetIdentityFromPermissions()
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <ApiBase, Identity>(new Request <ApiBase>()
            {
                type    = "identityFromPermissions",
                payload = new ApiBase()
                {
                    origin = AppName
                }
            });

            if (result != null)
            {
                Identity = result;
            }

            return(Identity);
        }
Пример #29
0
        /// <summary>
        /// Get authenticated user account
        /// </summary>
        /// <param name="timeout">set response timeout that overrides the default one</param>
        /// <returns></returns>
        public async Task <byte[]> GetAvatar(int?timeout = null)
        {
            ThrowNoAuth();

            var result = await SocketService.SendApiRequest <ApiBase, string>(new Request <ApiBase>()
            {
                type    = "getAvatar",
                payload = new ApiBase()
                {
                    origin = AppName
                }
            }, timeout);

            if (!string.IsNullOrWhiteSpace(result))
            {
                var base64Data = Regex.Match(result, @"data:image/(?<type>.+?),(?<data>.+)").Groups["data"].Value;
                return(Convert.FromBase64String(base64Data));
            }

            return(null);
        }