# ISignProvider

Signature provider Interface to delegate multiple signing implementations.

## Summary

| Members                                                                                                                                                                                                                                                           | Descriptions                                       |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------- |
| `public Task< IEnumerable< string > >` [`GetAvailableKeys`](https://liquiidio.gitbook.io/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces)`()`                                                                                         | Get available public keys from signature provider. |
| `public Task< IEnumerable< string > >` [`Sign`](https://liquiidio.gitbook.io/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces)`(string chainId, IEnumerable< string > requiredKeys, byte[] signBytes, IEnumerable< string > abiNames)` | Sign bytes using the signature provider.           |
| `public string` [`Sign`](https://liquiidio.gitbook.io/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces)`(string chainId, byte[] signBytes)`                                                                                            | Sign bytes using the signature provider.           |
| `public Dictionary< string, string >` [`Sign`](https://liquiidio.gitbook.io/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces)`()`                                                                                                      |                                                    |

## Members

**`public Task< IEnumerable< string > >`** [**`GetAvailableKeys`**](https://liquiidio.gitbook.io/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces)**`()`**

Get available public keys from signature provider.

#### Returns

List of public keys

**`public Task< IEnumerable< string > >`** [**`Sign`**](https://liquiidio.gitbook.io/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces)**`(string chainId, IEnumerable< string > requiredKeys, byte[] signBytes, IEnumerable< string > abiNames)`**

Sign bytes using the signature provider.

#### Parameters

* `chainId` EOSIO Chain id
* `requiredKeys` required public keys for signing this bytes
* `signBytes` signature bytes
* `abiNames` abi contract names to get abi information from

#### Returns

List of signatures per required keys

**`public string`** [**`Sign`**](https://liquiidio.gitbook.io/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces)**`(string chainId, byte[] signBytes)`**

Sign bytes using the signature provider.

#### Parameters

* `key` key used for signing
* `signBytes` signature bytes

#### Returns

List of signatures per required keys

**`public Dictionary< string, string >`** [**`Sign`**](https://liquiidio.gitbook.io/unity-plugin-suite/eossharp/api-docs/eossharp-core/eossharp-core-interfaces)**`()`**
