# StarknetSigner

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:25](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L25)

Starknet signer implementation wrapping a starknet.js Account, for browser based wallet use [StarknetBrowserSigner](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBrowserSigner.md)

## Extended by

* [`StarknetBrowserSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/classes/StarknetBrowserSigner.md)
* [`StarknetPersistentSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/node/classes/StarknetPersistentSigner.md)

## Implements

* [`AbstractSigner`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-sdk/src/type-aliases/AbstractSigner.md)

## Constructors

### Constructor

```
new StarknetSigner(account): StarknetSigner;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:89](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L89)

Constructs a signer wrapping a starknet.js Account

#### Parameters

| Parameter | Type      | Description |
| --------- | --------- | ----------- |
| `account` | `Account` |             |

#### Returns

`StarknetSigner`

### Constructor

```
new StarknetSigner(account, isManagingNoncesInternally?): StarknetSigner;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:90](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L90)

#### Parameters

| Parameter                     | Type      |
| ----------------------------- | --------- |
| `account`                     | `Account` |
| `isManagingNoncesInternally?` | `boolean` |

#### Returns

`StarknetSigner`

## Properties

### account

```
readonly account: Account;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:82](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L82)

***

### isManagingNoncesInternally

```
readonly isManagingNoncesInternally: boolean;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:81](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L81)

***

### type

```
type: "AtomiqAbstractSigner";
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:79](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L79)

#### Implementation of

```
AbstractSigner.type
```

## Methods

### getAddress()

```
getAddress(): string;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:99](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L99)

#### Returns

`string`

#### Inherit Doc

#### Implementation of

```
AbstractSigner.getAddress
```

***

### getDeployPayload()

```
getDeployPayload(): Promise<any>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:187](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L187)

Returns the payload for deploying the signer account's contract on Starknet

#### Returns

`Promise`<`any`>

***

### getReproducibleEntropyMessage()

```
static getReproducibleEntropyMessage(starknetChainId, appName): object;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:49](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L49)

Returns a SNIP-12 message to be signed for extracting reproducible entropy. Works when wallets use signing with deterministic nonce, such that signature over the same message always yields the same signature (same entropy).

#### Parameters

| Parameter         | Type              | Description                                                                            |
| ----------------- | ----------------- | -------------------------------------------------------------------------------------- |
| `starknetChainId` | `StarknetChainId` | Starknet chain ID to use for the SNIP-12 message                                       |
| `appName`         | `string`          | Application name to differentiate reproducible entropy generated across different apps |

#### Returns

`object`

| Name                   | Type        | Default value | Defined in                                                                                                                                                                                                    |
| ---------------------- | ----------- | ------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `domain`               | `object`    | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:66](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L66) |
| `domain.chainId`       | `any`       | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:69](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L69) |
| `domain.name`          | `string`    | `appName`     | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:67](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L67) |
| `domain.revision`      | `string`    | `'1'`         | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:70](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L70) |
| `domain.version`       | `string`    | `'1'`         | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:68](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L68) |
| `message`              | `object`    | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:72](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L72) |
| `message.Message`      | `string`    | `message`     | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:73](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L73) |
| `message.Warning`      | `string`    | `warning`     | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:74](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L74) |
| `primaryType`          | `string`    | `'Message'`   | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:65](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L65) |
| `types`                | `object`    | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:53](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L53) |
| `types.Message`        | `object`\[] | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:60](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L60) |
| `types.StarknetDomain` | `object`\[] | -             | [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:54](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L54) |

***

### sendTransaction()

```
sendTransaction(tx, onBeforePublish?): Promise<string>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:152](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L152)

Signs and sends the provided starknet transaction. Note that onBeforePublish is not really called before the tx is sent out in this default case, since this is not supported by the starknet web based wallets

#### Parameters

| Parameter          | Type                                                                                                                | Description                                           |
| ------------------ | ------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------- |
| `tx`               | [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md) | A transaction to sign and send                        |
| `onBeforePublish?` | (`txId`, `rawTx`) => `Promise`<`void`>                                                                              | A callback called after the transaction has been sent |

#### Returns

`Promise`<`string`>

***

### signTransaction()?

```
optional signTransaction(tx): Promise<StarknetTx>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:124](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L124)

Signs the provided starknet transaction and returns its signed version

#### Parameters

| Parameter | Type                                                                                                                | Description                    |
| --------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------ |
| `tx`      | [`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md) | A starknet transaction to sign |

#### Returns

`Promise`<[`StarknetTx`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTx.md)>

***

### sendDeployAccount()

```
protected sendDeployAccount(tx): Promise<string>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:179](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L179)

#### Parameters

| Parameter | Type                                                                                                                                          | Description |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `tx`      | [`StarknetTxDeployAccount`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTxDeployAccount.md) |             |

#### Returns

`Promise`<`string`>

***

### sendInvoke()

```
protected sendInvoke(tx): Promise<string>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:169](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L169)

#### Parameters

| Parameter | Type                                                                                                                            | Description |
| --------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `tx`      | [`StarknetTxInvoke`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTxInvoke.md) |             |

#### Returns

`Promise`<`string`>

***

### signDeployAccount()

```
protected signDeployAccount(tx): Promise<DeployAccountContractTransaction>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:141](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L141)

#### Parameters

| Parameter | Type                                                                                                                                          | Description |
| --------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `tx`      | [`StarknetTxDeployAccount`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTxDeployAccount.md) |             |

#### Returns

`Promise`<`DeployAccountContractTransaction`>

***

### signInvoke()

```
protected signInvoke(tx): Promise<Invocation>;
```

Defined in: [atomiq-chain-starknet/src/starknet/wallet/StarknetSigner.ts:133](https://github.com/atomiqlabs/atomiq-chain-starknet/blob/697277c430597a8514a43540ef8b9a10e2b6a595/src/starknet/wallet/StarknetSigner.ts#L133)

#### Parameters

| Parameter | Type                                                                                                                            | Description |
| --------- | ------------------------------------------------------------------------------------------------------------------------------- | ----------- |
| `tx`      | [`StarknetTxInvoke`](https://docs.atomiq.exchange/sdk-reference/api/atomiq-chain-starknet/src/type-aliases/StarknetTxInvoke.md) |             |

#### Returns

`Promise`<`Invocation`>
