aries / net.globalid.aries.features.connection.record / ConnectionRecord

ConnectionRecord

open class ConnectionRecord : BaseRecord

Represents a connection record in the agency wallet.

Pay attention: myDid, myVerKey, theirDid and theirVerKey can also be used as tags. We might use these as tags in the future.

Types

Connected

Represents the final state of the connection protocol. In this state, the connection is completely ready for use by the agent. This state is the final state of both the inviter and the invitee role.

data class Connected : ConnectionRecord

ReceivedInvitation

After receiving an invitation, we extract the other's party Did, VerKey and endpoint from the message. We must wait for user confirmation before continuing.

data class ReceivedInvitation : ConnectionRecord

ReceivedRequest

After we receive a request (from our invitation), we are in this state. From the request, we extract their endpoint information. We must wait for user confirmation before continuing. We find the SentInvitation record via the connection key.

data class ReceivedRequest : ConnectionRecord

SentInvitation

When we share an invitation with a party, we are in this state. The TAG_CONNECTION_KEY tag is set so we can connect a given connection request back to this record.

data class SentInvitation : ConnectionRecord

SentRequest

When sending a request, we generate our Did and VerKey. We then wait for the response. After we receive it, we transition to the CONNECTED state.

data class SentRequest : ConnectionRecord

SentResponse

The connection is ready to use, but we wait until the first received message to confirm that the connection is actually established (e.g. the other party may not have received our connection response message, which means we will likely have to send it again).

data class SentResponse : ConnectionRecord

Constructors

<init>

Represents a connection record in the agency wallet.

ConnectionRecord(id: String, state: String, alias: ConnectionAlias?)

Properties

alias

open val alias: ConnectionAlias?

id

is the ID of the connection

open val id: String

state

is the state of the connection (used for JSON (de)serialization)

val state: String

typeName

must be the same for all sub-classes for correct wallet operation

open val typeName: String