mirror of
				https://github.com/JKorf/CryptoExchange.Net
				synced 2025-10-31 02:17:45 +00:00 
			
		
		
		
	Added nonce provider default implementation
This commit is contained in:
		
							parent
							
								
									f9957cba16
								
							
						
					
					
						commit
						2ea48d6de9
					
				
							
								
								
									
										38
									
								
								CryptoExchange.Net/Authentication/DefaultNonceProvider.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										38
									
								
								CryptoExchange.Net/Authentication/DefaultNonceProvider.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,38 @@ | |||||||
|  | using CryptoExchange.Net.Interfaces; | ||||||
|  | using System; | ||||||
|  | 
 | ||||||
|  | namespace CryptoExchange.Net.Authentication | ||||||
|  | { | ||||||
|  |     /// <summary> | ||||||
|  |     /// Default nonce provider | ||||||
|  |     /// </summary> | ||||||
|  |     public class DefaultNonceProvider : INonceProvider | ||||||
|  |     { | ||||||
|  |         private static readonly object nonceLock = new object(); | ||||||
|  |         private static long? lastNonce; | ||||||
|  | 
 | ||||||
|  |         /// <summary> | ||||||
|  |         /// Create a new default nonce provider | ||||||
|  |         /// </summary> | ||||||
|  |         /// <param name="startNonce">Start with an incremental value from this start nonce. If not provided `DataTime.UtcNow.Ticks` will be used</param> | ||||||
|  |         public DefaultNonceProvider(long? startNonce = null) | ||||||
|  |         { | ||||||
|  |             lastNonce = startNonce; | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         /// <inheritdoc /> | ||||||
|  |         public long GetNonce() | ||||||
|  |         { | ||||||
|  |             lock (nonceLock) | ||||||
|  |             { | ||||||
|  |                 long nonce; | ||||||
|  |                 if (lastNonce == null) | ||||||
|  |                     nonce = DateTime.UtcNow.Ticks; | ||||||
|  |                 else | ||||||
|  |                     nonce = lastNonce.Value + 1;                 | ||||||
|  |                 lastNonce = nonce; | ||||||
|  |                 return nonce; | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -142,6 +142,20 @@ | |||||||
|             <param name="buff"></param> |             <param name="buff"></param> | ||||||
|             <returns></returns> |             <returns></returns> | ||||||
|         </member> |         </member> | ||||||
|  |         <member name="T:CryptoExchange.Net.Authentication.DefaultNonceProvider"> | ||||||
|  |             <summary> | ||||||
|  |             Default nonce provider | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:CryptoExchange.Net.Authentication.DefaultNonceProvider.#ctor(System.Nullable{System.Int64})"> | ||||||
|  |             <summary> | ||||||
|  |             Create a new default nonce provider | ||||||
|  |             </summary> | ||||||
|  |             <param name="startNonce">Start with an incremental value from this start nonce. If not provided `DataTime.UtcNow.Ticks` will be used</param> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:CryptoExchange.Net.Authentication.DefaultNonceProvider.GetNonce"> | ||||||
|  |             <inheritdoc /> | ||||||
|  |         </member> | ||||||
|         <member name="T:CryptoExchange.Net.Authentication.PrivateKey"> |         <member name="T:CryptoExchange.Net.Authentication.PrivateKey"> | ||||||
|             <summary> |             <summary> | ||||||
|             Private key info |             Private key info | ||||||
| @ -1098,6 +1112,17 @@ | |||||||
|             <param name="exception"></param> |             <param name="exception"></param> | ||||||
|             <returns></returns> |             <returns></returns> | ||||||
|         </member> |         </member> | ||||||
|  |         <member name="T:CryptoExchange.Net.Interfaces.INonceProvider"> | ||||||
|  |             <summary> | ||||||
|  |             A provider for a nonce value used when signing requests | ||||||
|  |             </summary> | ||||||
|  |         </member> | ||||||
|  |         <member name="M:CryptoExchange.Net.Interfaces.INonceProvider.GetNonce"> | ||||||
|  |             <summary> | ||||||
|  |             Get nonce value. Nonce value should be unique and incremental for each call | ||||||
|  |             </summary> | ||||||
|  |             <returns>Nonce value</returns> | ||||||
|  |         </member> | ||||||
|         <member name="T:CryptoExchange.Net.Interfaces.IRateLimiter"> |         <member name="T:CryptoExchange.Net.Interfaces.IRateLimiter"> | ||||||
|             <summary> |             <summary> | ||||||
|             Rate limiter interface |             Rate limiter interface | ||||||
| @ -1449,6 +1474,12 @@ | |||||||
|             <param name="type">The type</param> |             <param name="type">The type</param> | ||||||
|             <returns>Average fill price</returns> |             <returns>Average fill price</returns> | ||||||
|         </member> |         </member> | ||||||
|  |         <member name="M:CryptoExchange.Net.Interfaces.ISymbolOrderBook.ToString(System.Int32)"> | ||||||
|  |             <summary> | ||||||
|  |             String representation of the top x entries | ||||||
|  |             </summary> | ||||||
|  |             <returns></returns> | ||||||
|  |         </member> | ||||||
|         <member name="T:CryptoExchange.Net.Interfaces.ISymbolOrderBookEntry"> |         <member name="T:CryptoExchange.Net.Interfaces.ISymbolOrderBookEntry"> | ||||||
|             <summary> |             <summary> | ||||||
|             Interface for order book entries |             Interface for order book entries | ||||||
| @ -3576,11 +3607,6 @@ | |||||||
|             The topic of the update, what symbol/asset etc.. |             The topic of the update, what symbol/asset etc.. | ||||||
|             </summary> |             </summary> | ||||||
|         </member> |         </member> | ||||||
|         <member name="P:CryptoExchange.Net.Sockets.DataEvent`1.Event"> |  | ||||||
|             <summary> |  | ||||||
|             The event that triggered the update |  | ||||||
|             </summary> |  | ||||||
|         </member> |  | ||||||
|         <member name="P:CryptoExchange.Net.Sockets.DataEvent`1.OriginalData"> |         <member name="P:CryptoExchange.Net.Sockets.DataEvent`1.OriginalData"> | ||||||
|             <summary> |             <summary> | ||||||
|             The original data that was received, only available when OutputOriginalData is set to true in the client options |             The original data that was received, only available when OutputOriginalData is set to true in the client options | ||||||
| @ -3599,14 +3625,13 @@ | |||||||
|             <param name="data">The new data</param> |             <param name="data">The new data</param> | ||||||
|             <returns></returns> |             <returns></returns> | ||||||
|         </member> |         </member> | ||||||
|         <member name="M:CryptoExchange.Net.Sockets.DataEvent`1.As``1(``0,System.String,System.String)"> |         <member name="M:CryptoExchange.Net.Sockets.DataEvent`1.As``1(``0,System.String)"> | ||||||
|             <summary> |             <summary> | ||||||
|             Create a new DataEvent with data in the from of type K based on the current DataEvent. OriginalData and Timestamp will be copied over |             Create a new DataEvent with data in the from of type K based on the current DataEvent. OriginalData and Timestamp will be copied over | ||||||
|             </summary> |             </summary> | ||||||
|             <typeparam name="K">The type of the new data</typeparam> |             <typeparam name="K">The type of the new data</typeparam> | ||||||
|             <param name="data">The new data</param> |             <param name="data">The new data</param> | ||||||
|             <param name="topic">The new topic</param> |             <param name="topic">The new topic</param> | ||||||
|             <param name="event">The new event</param> |  | ||||||
|             <returns></returns> |             <returns></returns> | ||||||
|         </member> |         </member> | ||||||
|         <member name="T:CryptoExchange.Net.Sockets.MessageEvent"> |         <member name="T:CryptoExchange.Net.Sockets.MessageEvent"> | ||||||
| @ -3951,9 +3976,7 @@ | |||||||
|         <member name="M:CryptoExchange.Net.Sockets.WebsocketFactory.CreateWebsocket(CryptoExchange.Net.Logging.Log,System.String,System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IDictionary{System.String,System.String})"> |         <member name="M:CryptoExchange.Net.Sockets.WebsocketFactory.CreateWebsocket(CryptoExchange.Net.Logging.Log,System.String,System.Collections.Generic.IDictionary{System.String,System.String},System.Collections.Generic.IDictionary{System.String,System.String})"> | ||||||
|             <inheritdoc /> |             <inheritdoc /> | ||||||
|         </member> |         </member> | ||||||
|     </members> |         <member name="T:System.Diagnostics.CodeAnalysis.AllowNullAttribute"> | ||||||
| </doc> |  | ||||||
| System.Diagnostics.CodeAnalysis.AllowNullAttribute"> |  | ||||||
|             <summary> |             <summary> | ||||||
|                 Specifies that <see langword="null"/> is allowed as an input even if the |                 Specifies that <see langword="null"/> is allowed as an input even if the | ||||||
|                 corresponding type disallows it. |                 corresponding type disallows it. | ||||||
|  | |||||||
							
								
								
									
										14
									
								
								CryptoExchange.Net/Interfaces/INonceProvider.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								CryptoExchange.Net/Interfaces/INonceProvider.cs
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,14 @@ | |||||||
|  | namespace CryptoExchange.Net.Interfaces | ||||||
|  | { | ||||||
|  |     /// <summary> | ||||||
|  |     /// A provider for a nonce value used when signing requests | ||||||
|  |     /// </summary> | ||||||
|  |     public interface INonceProvider | ||||||
|  |     { | ||||||
|  |         /// <summary> | ||||||
|  |         /// Get nonce value. Nonce value should be unique and incremental for each call | ||||||
|  |         /// </summary> | ||||||
|  |         /// <returns>Nonce value</returns> | ||||||
|  |         long GetNonce(); | ||||||
|  |     } | ||||||
|  | } | ||||||
| @ -100,5 +100,11 @@ namespace CryptoExchange.Net.Interfaces | |||||||
|         /// <param name="type">The type</param> |         /// <param name="type">The type</param> | ||||||
|         /// <returns>Average fill price</returns> |         /// <returns>Average fill price</returns> | ||||||
|         CallResult<decimal> CalculateAverageFillPrice(decimal quantity, OrderBookEntryType type); |         CallResult<decimal> CalculateAverageFillPrice(decimal quantity, OrderBookEntryType type); | ||||||
|  | 
 | ||||||
|  |         /// <summary> | ||||||
|  |         /// String representation of the top x entries | ||||||
|  |         /// </summary> | ||||||
|  |         /// <returns></returns> | ||||||
|  |         string ToString(int rows); | ||||||
|     } |     } | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user