protocols / NotaryChangeProtocol

# NotaryChangeProtocol

`object NotaryChangeProtocol : AbstractStateReplacementProtocol<Party>`

A protocol to be used for changing a states Notary. This is required since all input states to a transaction must point to the same notary.

The Instigator assembles the transaction for notary replacement and sends out change proposals to all participants (Acceptor) of that state. If participants agree to the proposed change, they each sign the transaction. Finally, Instigator sends the transaction containing all signatures back to each participant so they can record it and use the new updated state for future transactions.

### Types

Acceptor | `class Acceptor : Acceptor<Party>`
Instigator | `class Instigator<T : ContractState> : Instigator<T, Party>`
Proposal | `data class Proposal : Proposal<Party>`

### Properties

TOPIC_CHANGE | `val TOPIC_CHANGE: String`
TOPIC_INITIATE | `val TOPIC_INITIATE: String`