message: added description for the nonce parameters
diff: @@ -4,6 +4,9 @@ This is a package that provides an SDK to use the Cardpay protocol.
  ### Special Considerations <!-- omit in toc -->
  One item to note that all token amounts that are provided to the API must strings and be in units of `wei`. All token amounts returned by the API will also be in units of `wei`. You can use `Web3.utils.toWei()` and `Web3.utils.fromWei()` to convert to and from units of `wei`. Because ethereum numbers can be so large, it is unsafe to represent these natively in Javascript, and in fact it is very common for a smart contract to return numbers that are simply too large to be represented natively in Javascript. For this reason, within Javascript the only safe way to natively handle numbers coming from Ethereum is as a `string`. If you need to perform math on a number coming from Ethereum use the `BN` library.
  +- [Function Parameters](#function-parameters)
  + - [Nonce](#nonce)
  + - [Transaction Hash (TBD)](#transaction-hash-tbd)
  - [`getSDK`](#getsdk)
  - [`Assets`](#assets)
  - [`Assets.getNativeTokenBalance`](#assetsgetnativetokenbalance)
  @@ -54,6 +57,16 @@ This is a package that provides an SDK to use the Cardpay protocol.
  - [`networkIds`](#networkids)
  - [ABI's](#abis)
  +## Function Parameters
  +### Nonce
  +All the API's that mutate the state of the blockchain have 2 optional parameters:
  +- `onNonce: (nonce: BN) => void`
  +- `nonce: BN`
  +
  +The purpose of these nonce parameters are to allow the client to reattempt sending the transaction. Specifically this can be used to handle re-requesting a wallet to sign a transaction. When the `nonce` parameter is not specified, then the SDK will use the next available nonce for the transaction based on the transaction count for the EOA or safe (as the case may be). The `onNonce` callback will return the next available nonce (which is the nonce included in the signing request for the wallet). If the caller wishes to re-attempt sending the same transaction, the caller can specify the `nonce` to use when re-signing the transaction based on the nonce that was provided from the original `onNonce` callback. This will prevent the scenarios where the nonce will be increased on when the caller wants to force the wallet to resign the transaction. Care should be take though not to reuse a `nonce` value associated with a completed transaction. Such a situation could lead to the transaction being rejected because the nonce value is too low, or because the txn hash is identical to an already mined transaction.
  +
  +### Transaction Hash (TBD)
  +
  ## `getSDK`
  The cardpay SDK will automatically obtain the latest API version that works with the on-chain contracts. In order to obtain an API you need to leverage the `getSDK()` function and pass to it the API that you wish to work with, as well as any parameters necessary for obtaining an API (usually just an instance of Web3). This function then returns a promise for the requested API. For example, to obtain the `Safes` API, you would call:
  ```js
  