Ejemplo n.º 1
0
        /// <summary>
        /// applies to master accounts only
        /// </summary>
        /// <param name="password">Funds password of the master account</param>
        /// <param name="subAccountName">Sub Account Name</param>
        /// <param name="apiKey">APIKey note</param>
        /// <param name="apiLabel">APIKey note</param>
        /// <param name="permission">APIKey access</param>
        /// <param name="ipAddresses">Link IP addresses, separate with commas if more than one. Support up to 20 IP addresses.</param>
        /// <param name="ct">Cancellation Token</param>
        /// <returns></returns>
        public virtual async Task <WebCallResult <OkexSubAccountApiKey> > ModifySubAccountApiKey_Async(
            string password,
            string subAccountName,
            string apiKey,
            string apiLabel,
            OkexApiPermission permission,
            string ipAddresses   = null,
            CancellationToken ct = default)
        {
            var parameters = new Dictionary <string, object>
            {
                { "pwd", password },
                { "subAcct", subAccountName },
                { "label", apiLabel },
                { "apiKey", apiKey },
                { "perm", JsonConvert.SerializeObject(permission, new ApiPermissionConverter(false)) },
            };

            parameters.AddOptionalParameter("ip", ipAddresses);

            var result = await SendRequestAsync <OkexRestApiResponse <IEnumerable <OkexSubAccountApiKey> > >(GetUrl(Endpoints_V5_SubAccount_ModifyApiKey), HttpMethod.Post, ct, parameters, true).ConfigureAwait(false);

            if (!result.Success)
            {
                return(WebCallResult <OkexSubAccountApiKey> .CreateErrorResult(result.ResponseStatusCode, result.ResponseHeaders, result.Error));
            }
            if (result.Data.ErrorCode > 0)
            {
                return(WebCallResult <OkexSubAccountApiKey> .CreateErrorResult(result.ResponseStatusCode, result.ResponseHeaders, new ServerError(result.Data.ErrorCode, result.Data.ErrorMessage, result.Data.Data)));
            }

            return(new WebCallResult <OkexSubAccountApiKey>(result.ResponseStatusCode, result.ResponseHeaders, result.Data.Data.FirstOrDefault(), null));
        }
Ejemplo n.º 2
0
 /// <summary>
 /// applies to master accounts only
 /// </summary>
 /// <param name="password">Funding password of the master account</param>
 /// <param name="subAccountName">Sub Account Name</param>
 /// <param name="apiLabel">APIKey note</param>
 /// <param name="apiPassphrase">APIKey password, supports 6 to 32 characters that include numbers and letters (case sensitive, space symbol is not supported).</param>
 /// <param name="permission">APIKey access</param>
 /// <param name="ipAddresses">Link IP addresses, separate with commas if more than one. Support up to 5 addresses.</param>
 /// <param name="ct">Cancellation Token</param>
 /// <returns></returns>
 public virtual WebCallResult <OkexSubAccountApiKey> CreateSubAccountApiKey(
     string password,
     string subAccountName,
     string apiLabel,
     string apiPassphrase,
     OkexApiPermission permission,
     string ipAddresses   = null,
     CancellationToken ct = default) => CreateSubAccountApiKey_Async(password, subAccountName, apiLabel, apiPassphrase, permission, ipAddresses, ct).Result;