Exemplo n.º 1
0
        private void ApiKeyAuth(ClientFlurlHttpSettings settings, CoinbaseClient client)
        {
            async Task SetHeaders(FlurlCall http)
            {
                var body   = http.RequestBody;
                var method = http.Request.Verb.Method.ToUpperInvariant();
                var url    = http.Request.Url.ToUri().PathAndQuery;

                string timestamp;

                if (this.UseTimeApi)
                {
                    var timeResult = await client.Data.GetCurrentTimeAsync().ConfigureAwait(false);

                    timestamp = timeResult.Data.Epoch.ToString();
                }
                else
                {
                    timestamp = TimeHelper.GetCurrentUnixTimestampSeconds().ToString(CultureInfo.CurrentCulture);
                }

                var signature = ApiKeyAuthenticator.GenerateSignature(timestamp, method, url, body, this.ApiSecret);

                http.Request
                .WithHeader(HeaderNames.AccessKey, this.ApiKey)
                .WithHeader(HeaderNames.AccessSign, signature)
                .WithHeader(HeaderNames.AccessTimestamp, timestamp);
            }

            settings.BeforeCallAsync = SetHeaders;
        }
Exemplo n.º 2
0
        private void UseOAuth(ClientFlurlHttpSettings settings, CoinbaseClient client)
        {
            async Task ApplyAuthorization(FlurlCall call)
            {
                call.Request.WithOAuthBearerToken(this.AccessToken);
            }

            settings.BeforeCallAsync = ApplyAuthorization;
        }
Exemplo n.º 3
0
 protected internal override void Configure(CoinbaseClient client)
 {
     client.Configure(settings => ApiKeyAuth(settings, client));
 }
Exemplo n.º 4
0
 protected internal virtual void Configure(CoinbaseClient client)
 {
 }