Skip to main content

Reference / Modules / client / LogionClient

Class: LogionClient

client.LogionClient

An instance of LogionClient is connected to a Logion network and interacts with all its components (including the blockchain).

It features:

  • Access to LGNT balance, transactions and transfer
  • LOC management
  • Account protection and recovery
  • A vault (multisig)

Table of contents

Constructors

Properties

Accessors

Methods

Constructors

constructor

new LogionClient(sharedState): LogionClient

Parameters

NameType
sharedStateSharedState

Returns

LogionClient

Defined in

packages/client/src/LogionClient.ts:69

Properties

_invitedContributor

Private Readonly _invitedContributor: InvitedContributorApi

Defined in

packages/client/src/LogionClient.ts:82


_public

Private _public: PublicApi

Defined in

packages/client/src/LogionClient.ts:78


_voter

Private _voter: VoterApi

Defined in

packages/client/src/LogionClient.ts:80


sharedState

Private sharedState: SharedState

Defined in

packages/client/src/LogionClient.ts:76

Accessors

allLegalOfficers

get allLegalOfficers(): LegalOfficerClass[]

All legal officers, including the inactive (i.e. not attached to any node) ones.

Returns

LegalOfficerClass[]

Defined in

packages/client/src/LogionClient.ts:133


authenticatedCurrentAccount

get authenticatedCurrentAccount(): ValidAccountId

The current account if authenticated (see authenticate). Throws an error otherwise.

Returns

ValidAccountId

Defined in

packages/client/src/LogionClient.ts:101


config

get config(): LogionClientConfig

The configuration of this client.

Returns

LogionClientConfig

Defined in

packages/client/src/LogionClient.ts:87


currentAccount

get currentAccount(): undefined | ValidAccountId

The current account used to query data and sign extrinsics.

Returns

undefined | ValidAccountId

Defined in

packages/client/src/LogionClient.ts:94


directoryClient

get directoryClient(): DirectoryClient

An instance of Directory client.

Returns

DirectoryClient

Defined in

packages/client/src/LogionClient.ts:119


invitedContributor

get invitedContributor(): InvitedContributorApi

Invited contributors tools.

Returns

InvitedContributorApi

An instance of InvitedContributorApi

Defined in

packages/client/src/LogionClient.ts:501


legalOfficers

get legalOfficers(): LegalOfficerClass[]

The available legal officers.

Returns

LegalOfficerClass[]

Defined in

packages/client/src/LogionClient.ts:126


logionApi

get logionApi(): LogionNodeApiClass

An instance of Logion chain's client.

Returns

LogionNodeApiClass

Defined in

packages/client/src/LogionClient.ts:140


networkState

get networkState(): NetworkState<LegalOfficerEndpoint>

Logion network's state (nodes up and down).

Returns

NetworkState<LegalOfficerEndpoint>

Defined in

packages/client/src/LogionClient.ts:430


public

get public(): PublicApi

Queries which do not require authentication.

Returns

PublicApi

An instance of PublicApi

Defined in

packages/client/src/LogionClient.ts:483


sponsorship

get sponsorship(): SponsorshipApi

Sponsors tools.

Returns

SponsorshipApi

An instance of SponsorshipApi

Defined in

packages/client/src/LogionClient.ts:520


token

get token(): undefined | Token

Returns

undefined | Token

Defined in

packages/client/src/LogionClient.ts:258


tokens

get tokens(): AccountTokens

The JWT tokens attached to authenticated accounts.

Returns

AccountTokens

Defined in

packages/client/src/LogionClient.ts:112


voter

get voter(): VoterApi

Voters tools.

Returns

VoterApi

An instance of VoterApi

Defined in

packages/client/src/LogionClient.ts:492

Methods

authenticate

authenticate(accounts, signer): Promise<LogionClient>

Authenticates the set of provided addresses. Authentication consists in getting a JWT token for each address. A valid JWT token is sent back by a Logion node if the client was able to sign a random challenge, hence proving that provided signer is indeed able to sign using provided addresses.

Note that the signer may be able to sign for more addresses than the once provided. A call to this method will merge the retrieved tokens with the ones already available. Older tokens are replaced.

Parameters

NameTypeDescription
accountsValidAccountId[]The addresses for which an authentication token must be retrieved.
signerRawSignerThe signer that will sign the challenge.

Returns

Promise<LogionClient>

An instance of client with retrived JWT tokens.

Defined in

packages/client/src/LogionClient.ts:307


balanceState

balanceState(): Promise<BalanceState>

Builds a new instance of BalanceState for to current address.

Returns

Promise<BalanceState>

An instance of BalanceState

Defined in

packages/client/src/LogionClient.ts:438


buildAxios

buildAxios(legalOfficer): AxiosInstance

Builds an axios instance enabling direct access to a legal officer's node REST API.

Parameters

NameTypeDescription
legalOfficerLegalOfficerThe legal officer

Returns

AxiosInstance

The axios instance

Deprecated

use LegalOfficerClass.buildAxiosToNode() instead

Defined in

packages/client/src/LogionClient.ts:368


buildMultiSourceHttpClient

buildMultiSourceHttpClient(): MultiSourceHttpClient<LegalOfficerEndpoint>

Builds an instance of MultiSourceHttpClient that will connect to all legal officer nodes.

Returns

MultiSourceHttpClient<LegalOfficerEndpoint>

An instance of MultiSourceHttpClient

Defined in

packages/client/src/LogionClient.ts:387


disconnect

disconnect(): Promise<void>

Disconnects the client from the Logion blockchain.

Returns

Promise<void>

Defined in

packages/client/src/LogionClient.ts:510


ensureConnected

ensureConnected(): void

Returns

void

Defined in

packages/client/src/LogionClient.ts:160


getLegalOfficer

getLegalOfficer(accountId): LegalOfficerClass

Gets the LegalOfficerClass associated with provided account. Will throw an error if no legal officer is linked to the account.

Parameters

NameTypeDescription
accountIdValidAccountIdA Polkadot account.

Returns

LegalOfficerClass

An instance of LegalOfficerClass

Defined in

packages/client/src/LogionClient.ts:342


isLegalOfficer

isLegalOfficer(accountId): boolean

Tells if a given address is associated with a legal officer.

Parameters

NameTypeDescription
accountIdValidAccountIdAn SS58 Polkadot address.

Returns

boolean

True if the provided address is linked to a legal officer, false otherwise.

Defined in

packages/client/src/LogionClient.ts:331


isProtected

isProtected(accountId): Promise<boolean>

Queries the blockchain to tell if provided address is protected (see ProtectionState).

Parameters

NameTypeDescription
accountIdValidAccountIdAn SS58 Polkadot address.

Returns

Promise<boolean>

True if the address is protected, false otherwise.

Defined in

packages/client/src/LogionClient.ts:454


isRegisteredLegalOfficer

isRegisteredLegalOfficer(accountId): Promise<boolean>

Queries Logion blockchain to check if a given address is attached to a legal officer.

Parameters

NameTypeDescription
accountIdValidAccountIdA Polkadot account.

Returns

Promise<boolean>

True if provided account is attached to a legal officer.

Defined in

packages/client/src/LogionClient.ts:355


isTokenValid

isTokenValid(now): boolean

Checks if the authentication token attached to current address is still valid (i.e. did not expire).

Parameters

NameTypeDescription
nowDateTimeCurrent time.

Returns

boolean

True if the token did not yet expire, false if it did.

Defined in

packages/client/src/LogionClient.ts:289


isValidAddress

isValidAddress(address): boolean

Tells if provided address is a valid Polkadot address.

Parameters

NameTypeDescription
addressstringA string that may or may not represent a valid Polkadot address.

Returns

boolean

True if the address is valid, false otherwise.

Defined in

packages/client/src/LogionClient.ts:465


locsState

locsState(params?): Promise<LocsState>

An instance of LocsState for current address.

Parameters

NameTypeDescription
params?FetchAllLocsParamsSome optional spec to further control which LOCs will be fetched. Leave undefined unless you now what you do.

Returns

Promise<LocsState>

An instance of LocsState

Defined in

packages/client/src/LogionClient.ts:474


logout

logout(): LogionClient

Clears all authentication data (i.e. JWT tokens).

Returns

LogionClient

A client instance with no authentication data.

Defined in

packages/client/src/LogionClient.ts:243


protectionState

protectionState(): Promise<ProtectionState>

The protection state attached to current address.

Returns

Promise<ProtectionState>

An instance of ProtectionState

Defined in

packages/client/src/LogionClient.ts:270


refreshLegalOfficers

refreshLegalOfficers(sharedState, token?): SharedState

Parameters

NameType
sharedStateSharedState
token?string

Returns

SharedState

Defined in

packages/client/src/LogionClient.ts:197


refreshTokens

refreshTokens(now, threshold?): Promise<LogionClient>

Postpones the expiration of valid (see isTokenValid) JWT tokens.

Parameters

NameTypeDescription
nowDateTimeCurrent time, used to check if tokens are still valid or not.
threshold?DurationLikeIf at least one token's expiration falls between now and (now + threshold), then tokens are refreshed. Otherwise, they are not.

Returns

Promise<LogionClient>

An authenticated client using refreshed tokens or this if no refresh occured.

Defined in

packages/client/src/LogionClient.ts:173


sponsorshipState

sponsorshipState(sponsorshipId): Promise<SponsorshipState>

Sponsorship state.

Parameters

NameType
sponsorshipIdUUID

Returns

Promise<SponsorshipState>

An instance of SponsorshipState

Defined in

packages/client/src/LogionClient.ts:532


updateNetworkState

updateNetworkState(multiSourceClient): LogionClient

Updates network state given the an instance of MultiSourceHttpClient that interacted with the Logion network.

Parameters

NameTypeDescription
multiSourceClientMultiSourceHttpClient<LegalOfficerEndpoint>an instance of MultiSourceHttpClient.

Returns

LogionClient

An instance of LogionClient with an updated network state.

Defined in

packages/client/src/LogionClient.ts:407


useTokens

useTokens(tokens): LogionClient

Overrides current tokens.

Parameters

NameTypeDescription
tokensAccountTokensThe new tokens.

Returns

LogionClient

A copy of this client, but using the new tokens.

Defined in

packages/client/src/LogionClient.ts:150


withCurrentAccount

withCurrentAccount(currentAccount?): LogionClient

Sets current account.

Parameters

NameTypeDescription
currentAccount?ValidAccountIdThe account to use as current.

Returns

LogionClient

A client instance with provided current account.

Defined in

packages/client/src/LogionClient.ts:213


create

create(config): Promise<LogionClient>

Instantiates a connected client.

Parameters

NameTypeDescription
configLogionClientConfigParameters of a connection to the Logion network.

Returns

Promise<LogionClient>

A connected client.

Defined in

packages/client/src/LogionClient.ts:42