Documentation ¶
Overview ¶
Package page contains the core code and business logic of Make and Register a Lasting Power of Attorney (MRLPA)
Useful links:
- actor.Lpa - details about the LPA being drafted
- actor.Donor - details about the donor, provided by the applicant
- actor.CertificateProvider - details about the certificate provider, provided by the applicant
- actor.CertificateProviderProvidedDetails - details about the certificate provider, provided by the certificate provider
- actor.Attorney - details about an attorney or replacement attorney, provided by the applicant
- actor.AttorneyDecisions - details about how an attorney or replacement attorney should act, provided by the applicant
- actor.AttorneyProvidedDetails - details about an attorney or replacement attorney, provided by the attorney or replacement attorney
- actor.PersonToNotify - details about a person to notify, provided by the applicant
Modified from io/multi.go which carries the following licence:
Copyright 2009 The Go Authors. All rights reserved. Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
Index ¶
- Constants
- Variables
- func AuthRedirect(logger Logger, sessionStore SessionStore) http.HandlerFunc
- func CacheControlHeaders(h http.Handler) http.Handler
- func CanGoTo(donor *actor.DonorProvidedDetails, url string) bool
- func ChooseAttorneysState(attorneys actor.Attorneys, decisions actor.AttorneyDecisions) actor.TaskState
- func ChooseReplacementAttorneysState(donor *actor.DonorProvidedDetails) actor.TaskState
- func ContextWithAppData(ctx context.Context, appData AppData) context.Context
- func ContextWithSessionData(ctx context.Context, data *SessionData) context.Context
- func CookieConsent(paths AppPaths) http.HandlerFunc
- func DependencyHealthCheck(services map[string]HealthChecker) http.HandlerFunc
- func MultiReadCloser(readClosers ...io.ReadCloser) io.ReadCloser
- func PostFormReferenceNumber(r *http.Request, name string) string
- func PostFormString(r *http.Request, name string) string
- func Recover(tmpl template.Template, logger Logger, bundle Bundle, next http.Handler) http.HandlerFunc
- func ValidateCsrf(next http.Handler, store SessionStore, randomString func(int) string, ...) http.HandlerFunc
- type AppData
- func (d AppData) EncodeQuery() string
- func (d AppData) IsAdmin() bool
- func (d AppData) IsAttorneyType() bool
- func (d AppData) IsCertificateProvider() bool
- func (d AppData) IsDonor() bool
- func (d AppData) IsReplacementAttorney() bool
- func (d AppData) IsTrustCorporation() bool
- func (d AppData) Redirect(w http.ResponseWriter, r *http.Request, url string) error
- type AppPaths
- type AttorneyPath
- func (p AttorneyPath) Format(id string) string
- func (p AttorneyPath) Redirect(w http.ResponseWriter, r *http.Request, appData AppData, lpaID string) error
- func (p AttorneyPath) RedirectQuery(w http.ResponseWriter, r *http.Request, appData AppData, lpaID string, ...) error
- func (p AttorneyPath) String() string
- type AttorneyPaths
- type Bundle
- type CertificateProviderInvite
- type CertificateProviderPath
- type CertificateProviderPaths
- type DashboardStore
- type Document
- type Documents
- func (ds *Documents) Delete(documentKey string) bool
- func (ds *Documents) Filenames() []string
- func (ds *Documents) Get(documentKey string) Document
- func (ds *Documents) InfectedFilenames() []string
- func (ds *Documents) Keys() []string
- func (ds *Documents) NotScanned() Documents
- func (ds *Documents) Put(scannedDocument Document)
- func (ds *Documents) Scanned() Documents
- func (ds *Documents) ScannedNotSent() Documents
- func (ds *Documents) Sent() Documents
- type DonorStore
- type ErrorHandler
- type EventClient
- type HandleOpt
- type Handler
- func Dashboard(tmpl template.Template, donorStore DonorStore, dashboardStore DashboardStore) Handler
- func Guidance(tmpl template.Template) Handler
- func Login(oneLoginClient LoginOneLoginClient, sessionStore LoginSessionStore, ...) Handler
- func LoginCallback(oneLoginClient LoginCallbackOneLoginClient, ...) Handler
- func Root(tmpl template.Template, logger Logger) Handler
- func SignOut(logger Logger, sessionStore SessionStore, oneLoginClient OneLoginClient, ...) Handler
- type HealthCheckPaths
- type HealthChecker
- type Localizer
- type Logger
- type LoginCallbackOneLoginClient
- type LoginCallbackSessionStore
- type LoginOneLoginClient
- type LoginSessionStore
- type LpaAndActorTasks
- type LpaPath
- type NotifyClient
- type OneLoginClient
- type Path
- type Progress
- type ProgressTask
- type ProgressTracker
- type SessionData
- type SessionMissingError
- type SessionStore
- type ShareCodeSender
- func (s *ShareCodeSender) SendAttorneys(ctx context.Context, appData AppData, donor *lpastore.Lpa) error
- func (s *ShareCodeSender) SendCertificateProviderInvite(ctx context.Context, appData AppData, donor CertificateProviderInvite) error
- func (s *ShareCodeSender) SendCertificateProviderPrompt(ctx context.Context, appData AppData, donor *actor.DonorProvidedDetails) error
- func (s *ShareCodeSender) UseTestCode(shareCode string)
- type ShareCodeStore
- type SupporterData
- type SupporterLpaPath
- func (p SupporterLpaPath) Format(lpaID string) string
- func (p SupporterLpaPath) IsManageOrganisation() bool
- func (p SupporterLpaPath) Redirect(w http.ResponseWriter, r *http.Request, appData AppData, lpaID string) error
- func (p SupporterLpaPath) RedirectQuery(w http.ResponseWriter, r *http.Request, appData AppData, lpaID string, ...) error
- func (p SupporterLpaPath) String() string
- type SupporterPath
- func (p SupporterPath) Format() string
- func (p SupporterPath) IsManageOrganisation() bool
- func (p SupporterPath) Redirect(w http.ResponseWriter, r *http.Request, appData AppData) error
- func (p SupporterPath) RedirectQuery(w http.ResponseWriter, r *http.Request, appData AppData, query url.Values) error
- func (p SupporterPath) String() string
- type SupporterPaths
- type Template
- type WitnessCodeSender
Constants ¶
View Source
const FormUrlEncoded = "application/x-www-form-urlencoded"
Variables ¶
View Source
var ( UseTestWitnessCode = false ErrTooManyWitnessCodeRequests = errors.New("too many witness code requests") )
View Source
var ErrCsrfInvalid = errors.New("CSRF token not valid")
View Source
var Paths = AppPaths{}/* 118 elements not displayed */
Functions ¶
func AuthRedirect ¶
func AuthRedirect(logger Logger, sessionStore SessionStore) http.HandlerFunc
func ChooseAttorneysState ¶
func ChooseReplacementAttorneysState ¶
func ChooseReplacementAttorneysState(donor *actor.DonorProvidedDetails) actor.TaskState
func ContextWithAppData ¶
func ContextWithSessionData ¶
func ContextWithSessionData(ctx context.Context, data *SessionData) context.Context
func CookieConsent ¶
func CookieConsent(paths AppPaths) http.HandlerFunc
func DependencyHealthCheck ¶
func DependencyHealthCheck(services map[string]HealthChecker) http.HandlerFunc
func MultiReadCloser ¶
func MultiReadCloser(readClosers ...io.ReadCloser) io.ReadCloser
MultiReadCloser returns a io.ReadCloser that's the logical concatenation of the provided input readClosers. They're read sequentially. Once all inputs have returned EOF, Read will return EOF. If any of the readClosers return a non-nil, non-EOF error, Read will return that error.
func ValidateCsrf ¶
func ValidateCsrf(next http.Handler, store SessionStore, randomString func(int) string, errorHandler ErrorHandler) http.HandlerFunc
Types ¶
type AppData ¶
type AppData struct { Page string Path string Query url.Values Localizer Localizer Lang localize.Lang CookieConsentSet bool CanGoBack bool CanToggleWelsh bool SessionID string LpaID string CsrfToken string ActorType actor.Type AttorneyUID actoruid.UID LoginSessionEmail string SupporterData *SupporterData }
func AppDataFromContext ¶
func (AppData) EncodeQuery ¶ added in v0.1035.0
func (AppData) IsAttorneyType ¶ added in v0.1161.0
func (AppData) IsCertificateProvider ¶
func (AppData) IsReplacementAttorney ¶
func (AppData) IsTrustCorporation ¶
type AppPaths ¶
type AppPaths struct { Attorney AttorneyPaths CertificateProvider CertificateProviderPaths Supporter SupporterPaths HealthCheck HealthCheckPaths AttorneyFixtures Path AuthRedirect Path CertificateProviderFixtures Path CertificateProviderStart Path CookiesConsent Path Dashboard Path DashboardFixtures Path DonorSubByLpaUID Path EnterAccessCode Path Fixtures Path Login Path LoginCallback Path LpaDeleted Path LpaWithdrawn Path Root Path SignOut Path Start Path SupporterFixtures Path YourLegalRightsAndResponsibilities Path AboutPayment LpaPath AddCorrespondent LpaPath AreYouApplyingForFeeDiscountOrExemption LpaPath CertificateProviderAddress LpaPath CertificateProviderDetails LpaPath CertificateProviderOptOut LpaPath ChangeCertificateProviderMobileNumber LpaPath ChangeIndependentWitnessMobileNumber LpaPath CheckYouCanSign LpaPath CheckYourLpa LpaPath ChooseAttorneys LpaPath ChooseAttorneysAddress LpaPath ChooseAttorneysGuidance LpaPath ChooseAttorneysSummary LpaPath ChooseNewCertificateProvider LpaPath ChoosePeopleToNotify LpaPath ChoosePeopleToNotifyAddress LpaPath ChoosePeopleToNotifySummary LpaPath ChooseReplacementAttorneys LpaPath ChooseReplacementAttorneysAddress LpaPath ChooseReplacementAttorneysSummary LpaPath ChooseYourCertificateProvider LpaPath ConfirmYourCertificateProviderIsNotRelated LpaPath DeleteThisLpa LpaPath DoYouWantReplacementAttorneys LpaPath DoYouWantToNotifyPeople LpaPath EnterCorrespondentAddress LpaPath EnterCorrespondentDetails LpaPath EnterReplacementTrustCorporation LpaPath EnterReplacementTrustCorporationAddress LpaPath EnterTrustCorporation LpaPath EnterTrustCorporationAddress LpaPath EvidenceRequired LpaPath EvidenceSuccessfullyUploaded LpaPath FeeDenied LpaPath GettingHelpSigning LpaPath HowDoYouKnowYourCertificateProvider LpaPath HowLongHaveYouKnownCertificateProvider LpaPath HowShouldAttorneysMakeDecisions LpaPath HowShouldReplacementAttorneysMakeDecisions LpaPath HowShouldReplacementAttorneysStepIn LpaPath HowToConfirmYourIdentityAndSign LpaPath HowToSendEvidence LpaPath HowWouldCertificateProviderPreferToCarryOutTheirRole LpaPath HowWouldYouLikeToSendEvidence LpaPath IdentityConfirmed LpaPath IdentityWithOneLogin LpaPath IdentityWithOneLoginCallback LpaPath LifeSustainingTreatment LpaPath LpaDetailsSaved LpaPath LpaType LpaPath LpaYourLegalRightsAndResponsibilities LpaPath MakeANewLPA LpaPath NeedHelpSigningConfirmation LpaPath PaymentConfirmation LpaPath PreviousApplicationNumber LpaPath PreviousFee LpaPath Progress LpaPath ProveYourIdentity LpaPath ReadYourLpa LpaPath RemoveAttorney LpaPath RemovePersonToNotify LpaPath RemoveReplacementAttorney LpaPath RemoveReplacementTrustCorporation LpaPath RemoveTrustCorporation LpaPath ResendCertificateProviderCode LpaPath ResendIndependentWitnessCode LpaPath Restrictions LpaPath SendUsYourEvidenceByPost LpaPath SignTheLpaOnBehalf LpaPath SignYourLpa LpaPath TaskList LpaPath UploadEvidence LpaPath UploadEvidenceSSE LpaPath UseExistingAddress LpaPath WeHaveUpdatedYourDetails LpaPath WhatACertificateProviderDoes LpaPath WhatHappensNextPostEvidence LpaPath WhenCanTheLpaBeUsed LpaPath WhichFeeTypeAreYouApplyingFor LpaPath WithdrawThisLpa LpaPath WitnessingAsCertificateProvider LpaPath WitnessingAsIndependentWitness LpaPath WitnessingYourSignature LpaPath YouCannotSignYourLpaYet LpaPath YouHaveSubmittedYourLpa LpaPath YourAddress LpaPath YourAuthorisedSignatory LpaPath YourDateOfBirth LpaPath YourDetails LpaPath YourIndependentWitness LpaPath YourIndependentWitnessAddress LpaPath YourIndependentWitnessMobile LpaPath YourName LpaPath YourPreferredLanguage LpaPath }
type AttorneyPath ¶
type AttorneyPath string
func (AttorneyPath) Format ¶
func (p AttorneyPath) Format(id string) string
func (AttorneyPath) Redirect ¶ added in v0.833.0
func (p AttorneyPath) Redirect(w http.ResponseWriter, r *http.Request, appData AppData, lpaID string) error
func (AttorneyPath) RedirectQuery ¶ added in v0.833.0
func (p AttorneyPath) RedirectQuery(w http.ResponseWriter, r *http.Request, appData AppData, lpaID string, query url.Values) error
func (AttorneyPath) String ¶
func (p AttorneyPath) String() string
type AttorneyPaths ¶
type AttorneyPaths struct { EnterReferenceNumber Path Login Path LoginCallback Path Start Path CodeOfConduct AttorneyPath ConfirmYourDetails AttorneyPath MobileNumber AttorneyPath Progress AttorneyPath ReadTheLpa AttorneyPath RightsAndResponsibilities AttorneyPath Sign AttorneyPath TaskList AttorneyPath WhatHappensNext AttorneyPath WhatHappensWhenYouSign AttorneyPath WouldLikeSecondSignatory AttorneyPath YourPreferredLanguage AttorneyPath }
type CertificateProviderInvite ¶ added in v0.1116.0
type CertificateProviderPath ¶
type CertificateProviderPath string
func (CertificateProviderPath) Format ¶
func (p CertificateProviderPath) Format(id string) string
func (CertificateProviderPath) Redirect ¶ added in v0.833.0
func (p CertificateProviderPath) Redirect(w http.ResponseWriter, r *http.Request, appData AppData, lpaID string) error
func (CertificateProviderPath) String ¶
func (p CertificateProviderPath) String() string
type CertificateProviderPaths ¶
type CertificateProviderPaths struct { Login Path LoginCallback Path EnterReferenceNumber Path CertificateProvided CertificateProviderPath ConfirmYourDetails CertificateProviderPath EnterDateOfBirth CertificateProviderPath IdentityWithOneLogin CertificateProviderPath IdentityWithOneLoginCallback CertificateProviderPath ProveYourIdentity CertificateProviderPath ProvideCertificate CertificateProviderPath ReadTheLpa CertificateProviderPath TaskList CertificateProviderPath WhatHappensNext CertificateProviderPath WhatIsYourHomeAddress CertificateProviderPath WhoIsEligible CertificateProviderPath YourPreferredLanguage CertificateProviderPath YourRole CertificateProviderPath }
type DashboardStore ¶
type Documents ¶ added in v0.794.0
type Documents []Document
func (*Documents) InfectedFilenames ¶ added in v0.794.0
func (*Documents) NotScanned ¶ added in v0.794.0
func (*Documents) ScannedNotSent ¶ added in v0.923.0
type DonorStore ¶
type DonorStore interface { Create(context.Context) (*actor.DonorProvidedDetails, error) Put(context.Context, *actor.DonorProvidedDetails) error }
type ErrorHandler ¶
type ErrorHandler func(http.ResponseWriter, *http.Request, error)
type EventClient ¶ added in v0.962.0
type EventClient interface { SendNotificationSent(ctx context.Context, notificationSentEvent event.NotificationSent) error SendPaperFormRequested(ctx context.Context, paperFormRequestedEvent event.PaperFormRequested) error }
type Handler ¶
func Dashboard ¶
func Dashboard(tmpl template.Template, donorStore DonorStore, dashboardStore DashboardStore) Handler
func Login ¶
func Login(oneLoginClient LoginOneLoginClient, sessionStore LoginSessionStore, randomString func(int) string, redirect Path) Handler
func LoginCallback ¶
func LoginCallback(oneLoginClient LoginCallbackOneLoginClient, sessionStore LoginCallbackSessionStore, redirect Path, dashboardStore DashboardStore, actorType actor.Type) Handler
func SignOut ¶
func SignOut(logger Logger, sessionStore SessionStore, oneLoginClient OneLoginClient, appPublicURL string) Handler
type HealthCheckPaths ¶
type HealthChecker ¶ added in v0.805.0
type Localizer ¶
type Localizer interface { Concat([]string, string) string Count(string, int) string Format(string, map[string]any) string FormatCount(string, int, map[string]interface{}) string FormatDate(date.TimeOrDate) string FormatTime(time.Time) string FormatDateTime(time.Time) string Possessive(string) string SetShowTranslationKeys(bool) ShowTranslationKeys() bool T(string) string }
type LoginCallbackSessionStore ¶ added in v0.1051.0
type LoginCallbackSessionStore interface { OneLogin(r *http.Request) (*sesh.OneLoginSession, error) SetLogin(r *http.Request, w http.ResponseWriter, session *sesh.LoginSession) error }
type LoginOneLoginClient ¶
type LoginSessionStore ¶ added in v0.1051.0
type LoginSessionStore interface {
SetOneLogin(r *http.Request, w http.ResponseWriter, session *sesh.OneLoginSession) error
}
type LpaAndActorTasks ¶
type LpaAndActorTasks struct { Lpa *lpastore.Lpa CertificateProvider *actor.CertificateProviderProvidedDetails Attorney *actor.AttorneyProvidedDetails }
type LpaPath ¶
type LpaPath string
func (LpaPath) Redirect ¶ added in v0.833.0
func (p LpaPath) Redirect(w http.ResponseWriter, r *http.Request, appData AppData, donor *actor.DonorProvidedDetails) error
func (LpaPath) RedirectQuery ¶ added in v0.833.0
type NotifyClient ¶
type OneLoginClient ¶
type OneLoginClient interface { AuthCodeURL(state, nonce, locale string, identity bool) (string, error) EndSessionURL(idToken, postLogoutURL string) (string, error) Exchange(ctx context.Context, code, nonce string) (idToken, accessToken string, err error) UserInfo(ctx context.Context, accessToken string) (onelogin.UserInfo, error) }
type Path ¶
type Path string
func (Path) RedirectQuery ¶ added in v0.833.0
type Progress ¶
type Progress struct { Paid ProgressTask ConfirmedID ProgressTask DonorSigned ProgressTask CertificateProviderSigned ProgressTask AttorneysSigned ProgressTask LpaSubmitted ProgressTask NoticesOfIntentSent ProgressTask StatutoryWaitingPeriod ProgressTask LpaRegistered ProgressTask // contains filtered or unexported fields }
func (Progress) ToSlice ¶ added in v0.1158.0
func (p Progress) ToSlice() []ProgressTask
type ProgressTask ¶ added in v0.1090.0
type ProgressTracker ¶ added in v0.1090.0
type ProgressTracker struct {
Localizer Localizer
}
type SessionData ¶
type SessionData struct { SessionID string LpaID string // if a supporter Email string OrganisationID string }
func SessionDataFromContext ¶
func SessionDataFromContext(ctx context.Context) (*SessionData, error)
type SessionMissingError ¶
type SessionMissingError struct{}
func (SessionMissingError) Error ¶
func (s SessionMissingError) Error() string
type SessionStore ¶
type SessionStore interface { Csrf(r *http.Request) (*sesh.CsrfSession, error) SetCsrf(r *http.Request, w http.ResponseWriter, session *sesh.CsrfSession) error Login(r *http.Request) (*sesh.LoginSession, error) SetLogin(r *http.Request, w http.ResponseWriter, session *sesh.LoginSession) error ClearLogin(r *http.Request, w http.ResponseWriter) error OneLogin(r *http.Request) (*sesh.OneLoginSession, error) SetOneLogin(r *http.Request, w http.ResponseWriter, session *sesh.OneLoginSession) error }
type ShareCodeSender ¶
type ShareCodeSender struct {
// contains filtered or unexported fields
}
func NewShareCodeSender ¶
func NewShareCodeSender(shareCodeStore ShareCodeStore, notifyClient NotifyClient, appPublicURL string, randomString func(int) string, eventClient EventClient) *ShareCodeSender
func (*ShareCodeSender) SendAttorneys ¶
func (*ShareCodeSender) SendCertificateProviderInvite ¶ added in v0.885.0
func (s *ShareCodeSender) SendCertificateProviderInvite(ctx context.Context, appData AppData, donor CertificateProviderInvite) error
func (*ShareCodeSender) SendCertificateProviderPrompt ¶ added in v0.885.0
func (s *ShareCodeSender) SendCertificateProviderPrompt(ctx context.Context, appData AppData, donor *actor.DonorProvidedDetails) error
func (*ShareCodeSender) UseTestCode ¶
func (s *ShareCodeSender) UseTestCode(shareCode string)
type ShareCodeStore ¶
type ShareCodeStore interface {}
type SupporterData ¶ added in v0.1102.0
type SupporterLpaPath ¶ added in v0.1079.0
type SupporterLpaPath string
func (SupporterLpaPath) Format ¶ added in v0.1079.0
func (p SupporterLpaPath) Format(lpaID string) string
func (SupporterLpaPath) IsManageOrganisation ¶ added in v0.1079.0
func (p SupporterLpaPath) IsManageOrganisation() bool
func (SupporterLpaPath) Redirect ¶ added in v0.1079.0
func (p SupporterLpaPath) Redirect(w http.ResponseWriter, r *http.Request, appData AppData, lpaID string) error
func (SupporterLpaPath) RedirectQuery ¶ added in v0.1100.0
func (p SupporterLpaPath) RedirectQuery(w http.ResponseWriter, r *http.Request, appData AppData, lpaID string, query url.Values) error
func (SupporterLpaPath) String ¶ added in v0.1079.0
func (p SupporterLpaPath) String() string
type SupporterPath ¶ added in v0.942.0
type SupporterPath string
func (SupporterPath) Format ¶ added in v0.942.0
func (p SupporterPath) Format() string
func (SupporterPath) IsManageOrganisation ¶ added in v0.994.0
func (p SupporterPath) IsManageOrganisation() bool
func (SupporterPath) Redirect ¶ added in v0.942.0
func (p SupporterPath) Redirect(w http.ResponseWriter, r *http.Request, appData AppData) error
func (SupporterPath) RedirectQuery ¶ added in v0.982.0
func (p SupporterPath) RedirectQuery(w http.ResponseWriter, r *http.Request, appData AppData, query url.Values) error
func (SupporterPath) String ¶ added in v0.942.0
func (p SupporterPath) String() string
type SupporterPaths ¶ added in v0.942.0
type SupporterPaths struct { EnterOrganisationName Path EnterReferenceNumber Path EnterYourName Path InviteExpired Path Login Path LoginCallback Path OrganisationDeleted Path SigningInAdvice Path Start Path ConfirmDonorCanInteractOnline SupporterPath ContactOPGForPaperForms SupporterPath Dashboard SupporterPath DeleteOrganisation SupporterPath EditMember SupporterPath EditOrganisationName SupporterPath InviteMember SupporterPath InviteMemberConfirmation SupporterPath ManageTeamMembers SupporterPath OrganisationCreated SupporterPath OrganisationDetails SupporterPath ViewLPA SupporterLpaPath DonorAccess SupporterLpaPath }
type WitnessCodeSender ¶
type WitnessCodeSender struct {
// contains filtered or unexported fields
}
func NewWitnessCodeSender ¶
func NewWitnessCodeSender(donorStore DonorStore, notifyClient NotifyClient) *WitnessCodeSender
func (*WitnessCodeSender) SendToCertificateProvider ¶ added in v0.691.0
func (s *WitnessCodeSender) SendToCertificateProvider(ctx context.Context, donor *actor.DonorProvidedDetails, localizer Localizer) error
func (*WitnessCodeSender) SendToIndependentWitness ¶ added in v0.691.0
func (s *WitnessCodeSender) SendToIndependentWitness(ctx context.Context, donor *actor.DonorProvidedDetails, localizer Localizer) error
Source Files ¶
- app_data.go
- auth_redirect.go
- common.go
- config.go
- cookie_consent.go
- csrf.go
- dashboard.go
- data.go
- dependency_health_check.go
- document.go
- error.go
- guidance.go
- login.go
- login_callback.go
- lpa_progress_tracker.go
- multi_read_closer.go
- opts.go
- paths.go
- recover.go
- root.go
- share_code.go
- sign_out.go
- witness_code.go
Click to show internal directories.
Click to hide internal directories.