Documentation ¶
Index ¶
- Constants
- Variables
- func AdminAPI(log *zap.Logger, walletStore WalletStore, netStore NetworkStore, ...) (*jsonrpc.Dispatcher, error)
- func ApplicationCancellationError(err error) *jsonrpc.ErrorDetails
- func ApplicationError(code jsonrpc.ErrorCode, err error) *jsonrpc.ErrorDetails
- func ConnectionClosedError(err error) *jsonrpc.ErrorDetails
- func HandleRequestFlowError(ctx context.Context, traceID string, interactor Interactor, err error) *jsonrpc.ErrorDetails
- func InternalError(err error) *jsonrpc.ErrorDetails
- func InvalidParams(err error) *jsonrpc.ErrorDetails
- func NetworkError(code jsonrpc.ErrorCode, err error) *jsonrpc.ErrorDetails
- func NetworkErrorFromTransactionError(err error) *jsonrpc.ErrorDetails
- func NodeCommunicationError(err error) *jsonrpc.ErrorDetails
- func RequestInterruptedError(err error) *jsonrpc.ErrorDetails
- func RequestNotPermittedError(err error) *jsonrpc.ErrorDetails
- func UserCancellationError(err error) *jsonrpc.ErrorDetails
- func UserError(code jsonrpc.ErrorCode, err error) *jsonrpc.ErrorDetails
- func UserRejectionError(err error) *jsonrpc.ErrorDetails
- type AdminAPIConfig
- type AdminAnnotateKey
- type AdminAnnotateKeyParams
- type AdminAnnotateKeyResult
- type AdminAppConfig
- type AdminCheckTransaction
- type AdminCheckTransactionParams
- type AdminCheckTransactionResult
- type AdminCloseConnection
- type AdminCloseConnectionParams
- type AdminCloseConnectionsToHostname
- type AdminCloseConnectionsToHostnameParams
- type AdminCloseConnectionsToWallet
- type AdminCloseConnectionsToWalletParams
- type AdminCreateWallet
- type AdminCreateWalletParams
- type AdminCreateWalletResult
- type AdminCreatedWallet
- type AdminDescribeKey
- type AdminDescribeKeyParams
- type AdminDescribeKeyResult
- type AdminDescribeNetwork
- type AdminDescribeNetworkParams
- type AdminDescribePermissions
- type AdminDescribePermissionsParams
- type AdminDescribePermissionsResult
- type AdminDescribeWallet
- type AdminDescribeWalletParams
- type AdminDescribeWalletResult
- type AdminFirstPublicKey
- type AdminGRPCConfig
- type AdminGenerateKey
- type AdminGenerateKeyParams
- type AdminGenerateKeyResult
- type AdminGraphQLConfig
- type AdminImportNetwork
- type AdminImportNetworkParams
- type AdminImportNetworkResult
- type AdminImportWallet
- type AdminImportWalletParams
- type AdminImportWalletResult
- type AdminImportedWallet
- type AdminIsolateKey
- type AdminIsolateKeyParams
- type AdminIsolateKeyResult
- type AdminLastBlockData
- type AdminListConnections
- type AdminListConnectionsResult
- type AdminListKeys
- type AdminListKeysParams
- type AdminListKeysResult
- type AdminListNetworkResult
- type AdminListNetworks
- type AdminListNetworksResult
- type AdminListPermissions
- type AdminListPermissionsParams
- type AdminListPermissionsResult
- type AdminListWallets
- type AdminListWalletsResult
- type AdminNamedPublicKey
- type AdminNetwork
- type AdminNodeInfoResult
- type AdminPurgePermissions
- type AdminPurgePermissionsParams
- type AdminRESTConfig
- type AdminRemoveNetwork
- type AdminRemoveNetworkParams
- type AdminRemoveWallet
- type AdminRemoveWalletParams
- type AdminRenameNetwork
- type AdminRenameNetworkParams
- type AdminRenameWallet
- type AdminRenameWalletParams
- type AdminRevokePermissions
- type AdminRevokePermissionsParams
- type AdminRotateKey
- type AdminRotateKeyParams
- type AdminRotateKeyResult
- type AdminSendRawTransaction
- type AdminSendRawTransactionNodeResult
- type AdminSendRawTransactionParams
- type AdminSendRawTransactionResult
- type AdminSendTransaction
- type AdminSendTransactionParams
- type AdminSendTransactionResult
- type AdminSignMessage
- type AdminSignMessageParams
- type AdminSignMessageResult
- type AdminSignTransaction
- type AdminSignTransactionParams
- type AdminSignTransactionResult
- type AdminTaintKey
- type AdminTaintKeyParams
- type AdminUnlockWallet
- type AdminUnlockWalletParams
- type AdminUntaintKey
- type AdminUntaintKeyParams
- type AdminUpdateNetwork
- type AdminUpdatePassphrase
- type AdminUpdatePassphraseParams
- type AdminUpdatePermissions
- type AdminUpdatePermissionsParams
- type AdminUpdatePermissionsResult
- type AdminVerifyMessage
- type AdminVerifyMessageParams
- type AdminVerifyMessageResult
- type AllowedKey
- type ClientAPI
- func (a *ClientAPI) CheckTransaction(ctx context.Context, rawParams jsonrpc.Params, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
- func (a *ClientAPI) ConnectWallet(ctx context.Context, hostname string) (wallet.Wallet, *jsonrpc.ErrorDetails)
- func (a *ClientAPI) GetChainID(ctx context.Context) (jsonrpc.Result, *jsonrpc.ErrorDetails)
- func (a *ClientAPI) ListKeys(ctx context.Context, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
- func (a *ClientAPI) SendTransaction(ctx context.Context, rawParams jsonrpc.Params, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
- func (a *ClientAPI) SignTransaction(ctx context.Context, rawParams jsonrpc.Params, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
- type ClientCheckTransaction
- type ClientCheckTransactionParams
- type ClientCheckTransactionResult
- type ClientConnectWallet
- type ClientGetChainID
- type ClientGetChainIDResult
- type ClientListKeys
- type ClientListKeysResult
- type ClientNamedPublicKey
- type ClientParsedCheckTransactionParams
- type ClientParsedSendTransactionParams
- type ClientParsedSignTransactionParams
- type ClientSendTransaction
- type ClientSendTransactionParams
- type ClientSendTransactionResult
- type ClientSignTransaction
- type ClientSignTransactionParams
- type ClientSignTransactionResult
- type ConnectedWallet
- func (s *ConnectedWallet) AllowedKeys() []AllowedKey
- func (s *ConnectedWallet) CanListKeys() bool
- func (s *ConnectedWallet) CanUseKey(publicKeyToUse string) bool
- func (s *ConnectedWallet) Hostname() string
- func (s *ConnectedWallet) Name() string
- func (s *ConnectedWallet) RefreshFromWallet(freshWallet wallet.Wallet) error
- func (s *ConnectedWallet) RequireInteraction() bool
- type Connection
- type ConnectionsManager
- type ErrorType
- type Interactor
- type LogType
- type NetworkStore
- type NodeSelectorBuilder
- type ParsedAdminCheckTransactionParams
- type ParsedAdminSendRawTransactionParams
- type ParsedAdminSendTransactionParams
- type ParsedAdminSignTransactionParams
- type Reader
- type Readers
- type RequestController
- type RequestControllerOptionFn
- type SpamHandler
- type WalletStore
- type WorkflowType
Constants ¶
const ( WalletConnectionSuccessfullyEstablished = "The connection to the wallet has been successfully established." PassphraseRequestReasonUnlockWallet = "The application wants to unlock the wallet." )
const ( // ErrorCodeRequestHasBeenInterrupted refers to a request that has been // interrupted by the server or the third-party application. It could // originate from a timeout or an explicit cancellation. ErrorCodeRequestHasBeenInterrupted jsonrpc.ErrorCode = -32001 // ErrorCodeHostnameResolutionFailure refers to the inability for the server // to resolve the hostname from the request. ErrorCodeHostnameResolutionFailure jsonrpc.ErrorCode = -32002 // ErrorCodeAuthenticationFailure refers to a request that have authentication // problems. ErrorCodeAuthenticationFailure jsonrpc.ErrorCode = -32003 // ErrorCodeNodeCommunicationFailed refers to the inability of the program to // talk to the network nodes. ErrorCodeNodeCommunicationFailed jsonrpc.ErrorCode = 1000 // ErrorCodeNetworkRejectedTransaction refers to a transaction rejected by // the network nodes but for an unknown ABCI code. ErrorCodeNetworkRejectedTransaction jsonrpc.ErrorCode = 1001 // ErrorCodeNetworkRejectedInvalidTransaction refers to a validation failure raised // by the network nodes (error code 51). ErrorCodeNetworkRejectedInvalidTransaction jsonrpc.ErrorCode = 1051 // ErrorCodeNetworkRejectedMalformedTransaction refers to the inability to // decode a transaction from the network nodes (error code 60). ErrorCodeNetworkRejectedMalformedTransaction jsonrpc.ErrorCode = 1060 // ErrorCodeNetworkCouldNotProcessTransaction refers to the inability to // process a transaction from the network nodes (error code 70). ErrorCodeNetworkCouldNotProcessTransaction jsonrpc.ErrorCode = 1070 // ErrorCodeNetworkRejectedUnsupportedTransaction is raised when the network // nodes encounter an unsupported transaction (error code 80). ErrorCodeNetworkRejectedUnsupportedTransaction jsonrpc.ErrorCode = 1080 // ErrorCodeNetworkSpamProtectionActivated is raised when the network // nodes spin up the spam protection mechanism (error code 89). ErrorCodeNetworkSpamProtectionActivated jsonrpc.ErrorCode = 1089 // ErrorCodeRequestNotPermitted refers a request made by a third-party application // that is not permitted to do. This error is related to the permissions' // system. ErrorCodeRequestNotPermitted jsonrpc.ErrorCode = 2000 // ErrorCodeRequestHasBeenCancelledByApplication refers to an automated // cancellation of a request by the application core. This happens when some // requirements are missing to ensure correct handling of a request. ErrorCodeRequestHasBeenCancelledByApplication jsonrpc.ErrorCode = 2001 // ErrorCodeConnectionHasBeenClosed refers to an interruption of the service // triggered by the user. ErrorCodeConnectionHasBeenClosed jsonrpc.ErrorCode = 3000 // ErrorCodeRequestHasBeenRejected refers to an explicit rejection of a // request by the user. When received, the third-party application should // consider the user has withdrawn from the action, and thus, abort the // action. ErrorCodeRequestHasBeenRejected jsonrpc.ErrorCode = 3001 // ErrorCodeRequestHasBeenCancelledByUser refers to a cancellation of a // request by the user. It's conceptually different from a rejection. // Contrary to a rejection, when a cancellation is received, the third-party // application should temporarily back off, maintain its state, and wait for // the user to be ready to continue. ErrorCodeRequestHasBeenCancelledByUser jsonrpc.ErrorCode = 3002 )
const FileSchemePrefix = "file://"
FileSchemePrefix defines the prefix used in URL's to indicate that the string represents a file-path.
const PermissionsSuccessfullyUpdated = "The permissions have been successfully updated."
const TransactionSuccessfullyChecked = "The transaction has been successfully checked."
const TransactionSuccessfullySigned = "The transaction has been successfully signed."
Variables ¶
var ( ErrApplicationCancelledTheRequest = errors.New("the application cancelled the request") ErrBlockHashIsRequired = errors.New("the block hash is required") ErrBlockHeightIsRequired = errors.New("the block height is required") ErrBlockHeightTooHistoric = errors.New("the block height is too historic") ErrCannotRotateKeysOnIsolatedWallet = errors.New("cannot rotate keys on an isolated wallet") ErrChainIDIsRequired = errors.New("the chain ID is required") ErrConnectionClosed = errors.New("the connection has been closed") ErrCouldNotCheckTransaction = errors.New("could not check transaction") ErrCouldNotConnectToWallet = errors.New("could not connect to the wallet") ErrCouldNotGetChainIDFromNode = errors.New("could not get the chain ID from the node") ErrCouldNotGetLastBlockInformation = errors.New("could not get information about the last block on the network") ErrCouldNotListKeys = errors.New("could not list the keys") ErrCouldNotSendTransaction = errors.New("could not send transaction") ErrCouldNotSignTransaction = errors.New("could not sign transaction") ErrCurrentPublicKeyDoesNotExist = errors.New("the current public key does not exist") ErrCurrentPublicKeyIsRequired = errors.New("the next public key is required") ErrEnactmentBlockHeightIsRequired = errors.New("the enactment block height is required") ErrEnactmentBlockHeightMustBeGreaterThanSubmissionOne = errors.New("the enactment block height must be greater than the submission one") ErrEncodedMessageIsNotValidBase64String = errors.New("the encoded message is not a valid base-64 string") ErrEncodedSignatureIsNotValidBase64String = errors.New("the encoded signature is not a valid base-64 string") ErrEncodedTransactionIsNotValidBase64String = errors.New("the encoded transaction is not a valid base-64 string") ErrEncodedTransactionIsRequired = errors.New("the encoded transaction is required") ErrHostnameIsRequired = errors.New("the hostname is required") ErrIsolatedWalletPassphraseIsRequired = errors.New("the isolated wallet passphrase is required") ErrLastBlockDataOrNetworkIsRequired = errors.New("a network or the last block data is required") ErrMessageIsRequired = errors.New("the message is required") ErrNetworkAlreadyExists = errors.New("a network with the same name already exists") ErrNetworkConfigurationDoesNotHaveGRPCNodes = errors.New("the network does not have gRPC hosts configured") ErrNetworkDoesNotExist = errors.New("the network does not exist") ErrNetworkIsRequired = errors.New("the network is required") ErrNetworkNameIsRequired = errors.New("the network name is required") ErrNetworkOrNodeAddressIsRequired = errors.New("a network or a node address is required") ErrNetworkSourceIsRequired = errors.New("a network source is required") ErrNewNameIsRequired = errors.New("the new name is required") ErrNewPassphraseIsRequired = errors.New("the new passphrase is required") ErrNextAndCurrentPublicKeysCannotBeTheSame = errors.New("the next and current public keys cannot be the same") ErrNextPublicKeyDoesNotExist = errors.New("the next public key does not exist") ErrNextPublicKeyIsRequired = errors.New("the next public key is required") ErrNextPublicKeyIsTainted = errors.New("the next public key is tainted") ErrNoHealthyNodeAvailable = errors.New("no healthy node available") ErrNoWalletToConnectTo = errors.New("there is no wallet to connect to, you should, first, create or import a wallet") ErrParamsDoNotMatch = errors.New("the params do not match expected ones") ErrParamsRequired = errors.New("the params are required") ErrPassphraseIsRequired = errors.New("the passphrase is required") ErrProofOfWorkDifficultyRequired = errors.New("the proof-of-work difficulty is required") ErrProofOfWorkHashFunctionRequired = errors.New("the proof-of-work hash function is required") ErrPublicKeyDoesNotExist = errors.New("the public key does not exist") ErrPublicKeyIsNotAllowedToBeUsed = errors.New("this public key is not allowed to be used") ErrPublicKeyIsRequired = errors.New("the public key is required") ErrRawTransactionIsNotValidVegaTransaction = errors.New("the raw transaction is not a valid Vega transaction") ErrRecoveryPhraseIsRequired = errors.New("the recovery phrase is required") ErrRequestCancelled = errors.New("the request has been cancelled") ErrRequestInterrupted = errors.New("the request has been interrupted") ErrSendingModeCannotBeTypeUnspecified = errors.New(`the sending mode can't be "TYPE_UNSPECIFIED"`) ErrSendingModeIsRequired = errors.New("the sending mode is required") ErrSignatureIsRequired = errors.New("the signature is required") ErrSpecifyingNetworkAndLastBlockDataIsNotSupported = errors.New("specifying a network and the last block data is not supported") ErrSpecifyingNetworkAndNodeAddressIsNotSupported = errors.New("specifying a network and a node address is not supported") ErrSubmissionBlockHeightIsRequired = errors.New("the submission block height is required") ErrTransactionIsNotValidJSON = errors.New("the transaction is not valid JSON") ErrTransactionIsRequired = errors.New("the transaction is required") ErrTransactionsPerBlockLimitReached = errors.New("the transaction per block limit has been reached") ErrUserCancelledTheRequest = errors.New("the user cancelled the request") ErrUserCloseTheConnection = errors.New("the user closed the connection") ErrUserRejectedAccessToKeys = errors.New("the user rejected the access to the keys") ErrUserRejectedCheckingOfTransaction = errors.New("the user rejected the checking of the transaction") ErrUserRejectedSendingOfTransaction = errors.New("the user rejected the sending of the transaction") ErrUserRejectedSigningOfTransaction = errors.New("the user rejected the signing of the transaction") ErrUserRejectedWalletConnection = errors.New("the user rejected the wallet connection") ErrWalletAlreadyExists = errors.New("a wallet with the same name already exists") ErrWalletDoesNotExist = errors.New("the wallet does not exist") ErrWalletIsLocked = errors.New("the wallet is locked") ErrWalletIsRequired = errors.New("the wallet is required") ErrWalletKeyDerivationVersionIsRequired = errors.New("the wallet key derivation version is required") )
var (
ErrInvalidNetworkSource = errors.New("invalid network source")
)
Functions ¶
func AdminAPI ¶ added in v0.55.0
func AdminAPI( log *zap.Logger, walletStore WalletStore, netStore NetworkStore, nodeSelectorBuilder NodeSelectorBuilder, connectionsManager ConnectionsManager, ) (*jsonrpc.Dispatcher, error)
AdminAPI builds the JSON-RPC API of the wallet with all the methods available. This API exposes highly-sensitive methods, and, as a result, it should be only exposed to highly-trustable applications.
func ApplicationCancellationError ¶ added in v0.72.0
func ApplicationCancellationError(err error) *jsonrpc.ErrorDetails
func ApplicationError ¶ added in v0.60.0
func ApplicationError(code jsonrpc.ErrorCode, err error) *jsonrpc.ErrorDetails
func ConnectionClosedError ¶ added in v0.72.0
func ConnectionClosedError(err error) *jsonrpc.ErrorDetails
func HandleRequestFlowError ¶ added in v0.72.0
func HandleRequestFlowError(ctx context.Context, traceID string, interactor Interactor, err error) *jsonrpc.ErrorDetails
HandleRequestFlowError is a generic function that build the appropriate API error response based on the underlying error. If none of them matches, the error handling is delegating to the caller.
func InternalError ¶
func InternalError(err error) *jsonrpc.ErrorDetails
func InvalidParams ¶ added in v0.72.0
func InvalidParams(err error) *jsonrpc.ErrorDetails
func NetworkError ¶
func NetworkError(code jsonrpc.ErrorCode, err error) *jsonrpc.ErrorDetails
func NetworkErrorFromTransactionError ¶ added in v0.72.0
func NetworkErrorFromTransactionError(err error) *jsonrpc.ErrorDetails
NetworkErrorFromTransactionError returns an error with a generic message but a specialized code. This is intended to give a coarse-grained indication to the third-party application without taking any risk of leaking information from the error message.
func NodeCommunicationError ¶ added in v0.72.0
func NodeCommunicationError(err error) *jsonrpc.ErrorDetails
func RequestInterruptedError ¶ added in v0.72.0
func RequestInterruptedError(err error) *jsonrpc.ErrorDetails
func RequestNotPermittedError ¶ added in v0.72.0
func RequestNotPermittedError(err error) *jsonrpc.ErrorDetails
func UserCancellationError ¶ added in v0.72.0
func UserCancellationError(err error) *jsonrpc.ErrorDetails
func UserError ¶ added in v0.56.0
func UserError(code jsonrpc.ErrorCode, err error) *jsonrpc.ErrorDetails
func UserRejectionError ¶ added in v0.72.0
func UserRejectionError(err error) *jsonrpc.ErrorDetails
Types ¶
type AdminAPIConfig ¶ added in v0.70.4
type AdminAPIConfig struct { GRPC AdminGRPCConfig `json:"grpc"` REST AdminRESTConfig `json:"rest"` GraphQL AdminGraphQLConfig `json:"graphQL"` }
type AdminAnnotateKey ¶ added in v0.55.0
type AdminAnnotateKey struct {
// contains filtered or unexported fields
}
func NewAdminAnnotateKey ¶ added in v0.55.0
func NewAdminAnnotateKey( walletStore WalletStore, ) *AdminAnnotateKey
func (*AdminAnnotateKey) Handle ¶ added in v0.55.0
func (h *AdminAnnotateKey) Handle(ctx context.Context, rawParams jsonrpc.Params) (jsonrpc.Result, *jsonrpc.ErrorDetails)
Handle attaches metadata to the specified public key. It doesn't update in place. It overwrites. All existing metadata have to be specified to not lose them.
type AdminAnnotateKeyParams ¶ added in v0.55.0
type AdminAnnotateKeyResult ¶ added in v0.55.0
type AdminAppConfig ¶ added in v0.70.4
type AdminCheckTransaction ¶ added in v0.69.0
type AdminCheckTransaction struct {
// contains filtered or unexported fields
}
func NewAdminCheckTransaction ¶ added in v0.69.0
func NewAdminCheckTransaction( walletStore WalletStore, networkStore NetworkStore, nodeSelectorBuilder NodeSelectorBuilder, ) *AdminCheckTransaction
type AdminCheckTransactionParams ¶ added in v0.69.0
type AdminCheckTransactionParams struct { Wallet string `json:"wallet"` PublicKey string `json:"publicKey"` Network string `json:"network"` NodeAddress string `json:"nodeAddress"` Retries uint64 `json:"retries"` MaximumRequestDuration time.Duration `json:"maximumRequestDuration"` Transaction interface{} `json:"transaction"` }
type AdminCheckTransactionResult ¶ added in v0.69.0
type AdminCheckTransactionResult struct { ReceivedAt time.Time `json:"receivedAt"` SentAt time.Time `json:"sentAt"` Transaction *commandspb.Transaction `json:"transaction"` Node AdminNodeInfoResult `json:"node"` EncodedTransaction string `json:"encodedTransaction"` }
type AdminCloseConnection ¶ added in v0.63.0
type AdminCloseConnection struct {
// contains filtered or unexported fields
}
func NewAdminCloseConnection ¶ added in v0.63.0
func NewAdminCloseConnection(connectionsManager ConnectionsManager) *AdminCloseConnection
func (*AdminCloseConnection) Handle ¶ added in v0.63.0
func (h *AdminCloseConnection) Handle(_ context.Context, rawParams jsonrpc.Params) (jsonrpc.Result, *jsonrpc.ErrorDetails)
Handle closes the connection between a third-party application and a wallet opened in the service that run against the specified network. It does not fail if the service or the connection are already closed.
type AdminCloseConnectionParams ¶ added in v0.63.0
type AdminCloseConnectionsToHostname ¶ added in v0.63.0
type AdminCloseConnectionsToHostname struct {
// contains filtered or unexported fields
}
func NewAdminCloseConnectionsToHostname ¶ added in v0.63.0
func NewAdminCloseConnectionsToHostname(connectionsManager ConnectionsManager) *AdminCloseConnectionsToHostname
func (*AdminCloseConnectionsToHostname) Handle ¶ added in v0.63.0
func (h *AdminCloseConnectionsToHostname) Handle(_ context.Context, rawParams jsonrpc.Params) (jsonrpc.Result, *jsonrpc.ErrorDetails)
Handle closes all the connections from the specified hostname to any wallet opened in the service that run against the specified network. It does not fail if the service or the connections are already closed.
type AdminCloseConnectionsToHostnameParams ¶ added in v0.63.0
type AdminCloseConnectionsToHostnameParams struct {
Hostname string `json:"hostname"`
}
type AdminCloseConnectionsToWallet ¶ added in v0.63.0
type AdminCloseConnectionsToWallet struct {
// contains filtered or unexported fields
}
func NewAdminCloseConnectionsToWallet ¶ added in v0.63.0
func NewAdminCloseConnectionsToWallet(connectionsManager ConnectionsManager) *AdminCloseConnectionsToWallet
func (*AdminCloseConnectionsToWallet) Handle ¶ added in v0.63.0
func (h *AdminCloseConnectionsToWallet) Handle(_ context.Context, rawParams jsonrpc.Params) (jsonrpc.Result, *jsonrpc.ErrorDetails)
Handle closes all the connections from any hostname to the specified wallet opened in the service that run against the specified network. It does not fail if the service or the connections are already closed.
type AdminCloseConnectionsToWalletParams ¶ added in v0.63.0
type AdminCloseConnectionsToWalletParams struct {
Wallet string `json:"wallet"`
}
type AdminCreateWallet ¶ added in v0.55.0
type AdminCreateWallet struct {
// contains filtered or unexported fields
}
func NewAdminCreateWallet ¶ added in v0.55.0
func NewAdminCreateWallet( walletStore WalletStore, ) *AdminCreateWallet
type AdminCreateWalletParams ¶ added in v0.55.0
type AdminCreateWalletResult ¶ added in v0.55.0
type AdminCreateWalletResult struct { Wallet AdminCreatedWallet `json:"wallet"` Key AdminFirstPublicKey `json:"key"` }
type AdminCreatedWallet ¶ added in v0.55.0
type AdminDescribeKey ¶ added in v0.55.0
type AdminDescribeKey struct {
// contains filtered or unexported fields
}
func NewAdminDescribeKey ¶ added in v0.55.0
func NewAdminDescribeKey( walletStore WalletStore, ) *AdminDescribeKey
type AdminDescribeKeyParams ¶ added in v0.55.0
type AdminDescribeKeyResult ¶ added in v0.55.0
type AdminDescribeNetwork ¶ added in v0.55.0
type AdminDescribeNetwork struct {
// contains filtered or unexported fields
}
func NewAdminDescribeNetwork ¶ added in v0.55.0
func NewAdminDescribeNetwork( networkStore NetworkStore, ) *AdminDescribeNetwork
type AdminDescribeNetworkParams ¶ added in v0.55.0
type AdminDescribeNetworkParams struct {
Name string `json:"name"`
}
type AdminDescribePermissions ¶ added in v0.55.0
type AdminDescribePermissions struct {
// contains filtered or unexported fields
}
func NewAdminDescribePermissions ¶ added in v0.55.0
func NewAdminDescribePermissions( walletStore WalletStore, ) *AdminDescribePermissions
type AdminDescribePermissionsParams ¶ added in v0.55.0
type AdminDescribePermissionsResult ¶ added in v0.55.0
type AdminDescribePermissionsResult struct {
Permissions wallet.Permissions `json:"permissions"`
}
type AdminDescribeWallet ¶ added in v0.55.0
type AdminDescribeWallet struct {
// contains filtered or unexported fields
}
func NewAdminDescribeWallet ¶ added in v0.55.0
func NewAdminDescribeWallet( walletStore WalletStore, ) *AdminDescribeWallet
type AdminDescribeWalletParams ¶ added in v0.55.0
type AdminDescribeWalletParams struct {
Wallet string `json:"wallet"`
}
type AdminDescribeWalletResult ¶ added in v0.55.0
type AdminFirstPublicKey ¶ added in v0.55.0
type AdminGRPCConfig ¶ added in v0.70.4
type AdminGRPCConfig struct {
Hosts []string `json:"hosts"`
}
type AdminGenerateKey ¶ added in v0.55.0
type AdminGenerateKey struct {
// contains filtered or unexported fields
}
func NewAdminGenerateKey ¶ added in v0.55.0
func NewAdminGenerateKey( walletStore WalletStore, ) *AdminGenerateKey
type AdminGenerateKeyParams ¶ added in v0.55.0
type AdminGenerateKeyResult ¶ added in v0.55.0
type AdminGraphQLConfig ¶ added in v0.70.4
type AdminGraphQLConfig struct {
Hosts []string `json:"hosts"`
}
type AdminImportNetwork ¶ added in v0.55.0
type AdminImportNetwork struct {
// contains filtered or unexported fields
}
func NewAdminImportNetwork ¶ added in v0.55.0
func NewAdminImportNetwork( networkStore NetworkStore, ) *AdminImportNetwork
type AdminImportNetworkParams ¶ added in v0.55.0
type AdminImportNetworkResult ¶ added in v0.55.0
type AdminImportNetworkResult struct {
Name string `json:"name"`
}
type AdminImportWallet ¶ added in v0.55.0
type AdminImportWallet struct {
// contains filtered or unexported fields
}
func NewAdminImportWallet ¶ added in v0.55.0
func NewAdminImportWallet( walletStore WalletStore, ) *AdminImportWallet
type AdminImportWalletParams ¶ added in v0.55.0
type AdminImportWalletResult ¶ added in v0.55.0
type AdminImportWalletResult struct { Wallet AdminImportedWallet `json:"wallet"` Key AdminFirstPublicKey `json:"key"` }
type AdminImportedWallet ¶ added in v0.55.0
type AdminIsolateKey ¶ added in v0.55.0
type AdminIsolateKey struct {
// contains filtered or unexported fields
}
func NewAdminIsolateKey ¶ added in v0.55.0
func NewAdminIsolateKey( walletStore WalletStore, ) *AdminIsolateKey
type AdminIsolateKeyParams ¶ added in v0.55.0
type AdminIsolateKeyResult ¶ added in v0.55.0
type AdminIsolateKeyResult struct {
Wallet string `json:"wallet"`
}
type AdminLastBlockData ¶ added in v0.56.0
type AdminListConnections ¶ added in v0.63.0
type AdminListConnections struct {
// contains filtered or unexported fields
}
func NewAdminListConnections ¶ added in v0.63.0
func NewAdminListConnections(connectionsManager ConnectionsManager) *AdminListConnections
type AdminListConnectionsResult ¶ added in v0.63.0
type AdminListConnectionsResult struct {
ActiveConnections []Connection `json:"activeConnections"`
}
type AdminListKeys ¶ added in v0.55.0
type AdminListKeys struct {
// contains filtered or unexported fields
}
func NewAdminListKeys ¶ added in v0.55.0
func NewAdminListKeys( walletStore WalletStore, ) *AdminListKeys
type AdminListKeysParams ¶ added in v0.55.0
type AdminListKeysParams struct {
Wallet string `json:"wallet"`
}
type AdminListKeysResult ¶ added in v0.55.0
type AdminListKeysResult struct {
Keys []AdminNamedPublicKey `json:"keys"`
}
type AdminListNetworkResult ¶ added in v0.68.0
type AdminListNetworks ¶ added in v0.55.0
type AdminListNetworks struct {
// contains filtered or unexported fields
}
func NewAdminListNetworks ¶ added in v0.55.0
func NewAdminListNetworks( networkStore NetworkStore, ) *AdminListNetworks
type AdminListNetworksResult ¶ added in v0.55.0
type AdminListNetworksResult struct {
Networks []AdminListNetworkResult `json:"networks"`
}
type AdminListPermissions ¶ added in v0.55.0
type AdminListPermissions struct {
// contains filtered or unexported fields
}
func NewAdminListPermissions ¶ added in v0.55.0
func NewAdminListPermissions( walletStore WalletStore, ) *AdminListPermissions
type AdminListPermissionsParams ¶ added in v0.55.0
type AdminListPermissionsParams struct {
Wallet string `json:"wallet"`
}
type AdminListPermissionsResult ¶ added in v0.55.0
type AdminListPermissionsResult struct {
Permissions map[string]wallet.PermissionsSummary `json:"permissions"`
}
type AdminListWallets ¶ added in v0.55.0
type AdminListWallets struct {
// contains filtered or unexported fields
}
func NewAdminListWallets ¶ added in v0.55.0
func NewAdminListWallets( walletStore WalletStore, ) *AdminListWallets
type AdminListWalletsResult ¶ added in v0.55.0
type AdminListWalletsResult struct {
Wallets []string `json:"wallets"`
}
type AdminNamedPublicKey ¶ added in v0.55.0
type AdminNetwork ¶ added in v0.70.4
type AdminNetwork struct { Name string `json:"name"` Metadata []network.Metadata `json:"metadata"` API AdminAPIConfig `json:"api"` Apps AdminAppConfig `json:"apps"` }
type AdminNodeInfoResult ¶ added in v0.71.0
type AdminNodeInfoResult struct {
Host string `json:"host"`
}
type AdminPurgePermissions ¶ added in v0.55.0
type AdminPurgePermissions struct {
// contains filtered or unexported fields
}
func NewAdminPurgePermissions ¶ added in v0.55.0
func NewAdminPurgePermissions( walletStore WalletStore, ) *AdminPurgePermissions
type AdminPurgePermissionsParams ¶ added in v0.55.0
type AdminPurgePermissionsParams struct {
Wallet string `json:"wallet"`
}
type AdminRESTConfig ¶ added in v0.70.4
type AdminRESTConfig struct {
Hosts []string `json:"hosts"`
}
type AdminRemoveNetwork ¶ added in v0.55.0
type AdminRemoveNetwork struct {
// contains filtered or unexported fields
}
func NewAdminRemoveNetwork ¶ added in v0.55.0
func NewAdminRemoveNetwork( networkStore NetworkStore, ) *AdminRemoveNetwork
type AdminRemoveNetworkParams ¶ added in v0.55.0
type AdminRemoveNetworkParams struct {
Name string `json:"name"`
}
type AdminRemoveWallet ¶ added in v0.55.0
type AdminRemoveWallet struct {
// contains filtered or unexported fields
}
func NewAdminRemoveWallet ¶ added in v0.55.0
func NewAdminRemoveWallet( walletStore WalletStore, ) *AdminRemoveWallet
type AdminRemoveWalletParams ¶ added in v0.55.0
type AdminRemoveWalletParams struct {
Wallet string `json:"wallet"`
}
type AdminRenameNetwork ¶ added in v0.69.0
type AdminRenameNetwork struct {
// contains filtered or unexported fields
}
func NewAdminRenameNetwork ¶ added in v0.69.0
func NewAdminRenameNetwork( networkStore NetworkStore, ) *AdminRenameNetwork
type AdminRenameNetworkParams ¶ added in v0.69.0
type AdminRenameWallet ¶ added in v0.60.0
type AdminRenameWallet struct {
// contains filtered or unexported fields
}
func NewAdminRenameWallet ¶ added in v0.60.0
func NewAdminRenameWallet( walletStore WalletStore, ) *AdminRenameWallet
type AdminRenameWalletParams ¶ added in v0.60.0
type AdminRevokePermissions ¶ added in v0.55.0
type AdminRevokePermissions struct {
// contains filtered or unexported fields
}
func NewAdminRevokePermissions ¶ added in v0.55.0
func NewAdminRevokePermissions( walletStore WalletStore, ) *AdminRevokePermissions
type AdminRevokePermissionsParams ¶ added in v0.55.0
type AdminRotateKey ¶ added in v0.55.0
type AdminRotateKey struct {
// contains filtered or unexported fields
}
func NewAdminRotateKey ¶ added in v0.55.0
func NewAdminRotateKey( walletStore WalletStore, ) *AdminRotateKey
type AdminRotateKeyParams ¶ added in v0.55.0
type AdminRotateKeyParams struct { Wallet string `json:"wallet"` FromPublicKey string `json:"fromPublicKey"` ToPublicKey string `json:"toPublicKey"` ChainID string `json:"chainID"` SubmissionBlockHeight uint64 `json:"submissionBlockHeight"` EnactmentBlockHeight uint64 `json:"enactmentBlockHeight"` }
type AdminRotateKeyResult ¶ added in v0.55.0
type AdminSendRawTransaction ¶ added in v0.63.0
type AdminSendRawTransaction struct {
// contains filtered or unexported fields
}
func NewAdminSendRawTransaction ¶ added in v0.63.0
func NewAdminSendRawTransaction(networkStore NetworkStore, nodeSelectorBuilder NodeSelectorBuilder) *AdminSendRawTransaction
type AdminSendRawTransactionNodeResult ¶ added in v0.68.0
type AdminSendRawTransactionNodeResult struct {
Host string `json:"host"`
}
type AdminSendRawTransactionParams ¶ added in v0.63.0
type AdminSendRawTransactionParams struct { Network string `json:"network"` NodeAddress string `json:"nodeAddress"` Retries uint64 `json:"retries"` MaximumRequestDuration time.Duration `json:"maximumRequestDuration"` SendingMode string `json:"sendingMode"` EncodedTransaction string `json:"encodedTransaction"` }
type AdminSendRawTransactionResult ¶ added in v0.63.0
type AdminSendRawTransactionResult struct { ReceivedAt time.Time `json:"receivedAt"` SentAt time.Time `json:"sentAt"` TransactionHash string `json:"transactionHash"` Transaction *commandspb.Transaction `json:"transaction"` Node AdminSendRawTransactionNodeResult `json:"node"` }
type AdminSendTransaction ¶ added in v0.56.0
type AdminSendTransaction struct {
// contains filtered or unexported fields
}
func NewAdminSendTransaction ¶ added in v0.56.0
func NewAdminSendTransaction(walletStore WalletStore, networkStore NetworkStore, nodeSelectorBuilder NodeSelectorBuilder) *AdminSendTransaction
type AdminSendTransactionParams ¶ added in v0.56.0
type AdminSendTransactionParams struct { Wallet string `json:"wallet"` PublicKey string `json:"publicKey"` Network string `json:"network"` NodeAddress string `json:"nodeAddress"` Retries uint64 `json:"retries"` MaximumRequestDuration time.Duration `json:"maximumRequestDuration"` SendingMode string `json:"sendingMode"` Transaction interface{} `json:"transaction"` }
type AdminSendTransactionResult ¶ added in v0.56.0
type AdminSendTransactionResult struct { ReceivedAt time.Time `json:"receivedAt"` SentAt time.Time `json:"sentAt"` TransactionHash string `json:"transactionHash"` Transaction *commandspb.Transaction `json:"transaction"` Node AdminNodeInfoResult `json:"node"` }
type AdminSignMessage ¶ added in v0.56.0
type AdminSignMessage struct {
// contains filtered or unexported fields
}
func NewAdminSignMessage ¶ added in v0.56.0
func NewAdminSignMessage(walletStore WalletStore) *AdminSignMessage
type AdminSignMessageParams ¶ added in v0.56.0
type AdminSignMessageResult ¶ added in v0.56.0
type AdminSignMessageResult struct {
EncodedSignature string `json:"encodedSignature"`
}
type AdminSignTransaction ¶ added in v0.56.0
type AdminSignTransaction struct {
// contains filtered or unexported fields
}
func NewAdminSignTransaction ¶ added in v0.56.0
func NewAdminSignTransaction(walletStore WalletStore, networkStore NetworkStore, nodeSelectorBuilder NodeSelectorBuilder) *AdminSignTransaction
type AdminSignTransactionParams ¶ added in v0.56.0
type AdminSignTransactionParams struct { Wallet string `json:"wallet"` PublicKey string `json:"publicKey"` Network string `json:"network"` Transaction interface{} `json:"transaction"` Retries uint64 `json:"retries"` MaximumRequestDuration time.Duration `json:"maximumRequestDuration"` LastBlockData *AdminLastBlockData `json:"lastBlockData"` }
type AdminSignTransactionResult ¶ added in v0.56.0
type AdminSignTransactionResult struct { Transaction *commandspb.Transaction `json:"transaction"` EncodedTransaction string `json:"encodedTransaction"` }
type AdminTaintKey ¶ added in v0.55.0
type AdminTaintKey struct {
// contains filtered or unexported fields
}
func NewAdminTaintKey ¶ added in v0.55.0
func NewAdminTaintKey( walletStore WalletStore, ) *AdminTaintKey
type AdminTaintKeyParams ¶ added in v0.55.0
type AdminUnlockWallet ¶ added in v0.71.0
type AdminUnlockWallet struct {
// contains filtered or unexported fields
}
func NewAdminUnlockWallet ¶ added in v0.71.0
func NewAdminUnlockWallet( walletStore WalletStore, ) *AdminUnlockWallet
type AdminUnlockWalletParams ¶ added in v0.71.0
type AdminUntaintKey ¶ added in v0.55.0
type AdminUntaintKey struct {
// contains filtered or unexported fields
}
func NewAdminUntaintKey ¶ added in v0.55.0
func NewAdminUntaintKey( walletStore WalletStore, ) *AdminUntaintKey
type AdminUntaintKeyParams ¶ added in v0.55.0
type AdminUpdateNetwork ¶ added in v0.56.0
type AdminUpdateNetwork struct {
// contains filtered or unexported fields
}
func NewAdminUpdateNetwork ¶ added in v0.56.0
func NewAdminUpdateNetwork( networkStore NetworkStore, ) *AdminUpdateNetwork
type AdminUpdatePassphrase ¶ added in v0.60.0
type AdminUpdatePassphrase struct {
// contains filtered or unexported fields
}
func NewAdminUpdatePassphrase ¶ added in v0.60.0
func NewAdminUpdatePassphrase( walletStore WalletStore, ) *AdminUpdatePassphrase
type AdminUpdatePassphraseParams ¶ added in v0.60.0
type AdminUpdatePermissions ¶ added in v0.55.0
type AdminUpdatePermissions struct {
// contains filtered or unexported fields
}
func NewAdminUpdatePermissions ¶ added in v0.55.0
func NewAdminUpdatePermissions( walletStore WalletStore, ) *AdminUpdatePermissions
type AdminUpdatePermissionsParams ¶ added in v0.55.0
type AdminUpdatePermissionsParams struct { Wallet string `json:"wallet"` Hostname string `json:"hostname"` Permissions wallet.Permissions `json:"permissions"` }
type AdminUpdatePermissionsResult ¶ added in v0.55.0
type AdminUpdatePermissionsResult struct {
Permissions wallet.Permissions `json:"permissions"`
}
type AdminVerifyMessage ¶ added in v0.56.0
type AdminVerifyMessage struct{}
func NewAdminVerifyMessage ¶ added in v0.56.0
func NewAdminVerifyMessage() *AdminVerifyMessage
type AdminVerifyMessageParams ¶ added in v0.56.0
type AdminVerifyMessageResult ¶ added in v0.56.0
type AdminVerifyMessageResult struct {
IsValid bool `json:"isValid"`
}
type AllowedKey ¶ added in v0.67.0
type AllowedKey struct {
// contains filtered or unexported fields
}
func (AllowedKey) Name ¶ added in v0.67.0
func (r AllowedKey) Name() string
func (AllowedKey) PublicKey ¶ added in v0.67.0
func (r AllowedKey) PublicKey() string
type ClientAPI ¶ added in v0.58.0
type ClientAPI struct {
// contains filtered or unexported fields
}
func BuildClientAPI ¶ added in v0.67.0
func BuildClientAPI(walletStore WalletStore, interactor Interactor, nodeSelector node.Selector, spam SpamHandler) (*ClientAPI, error)
func (*ClientAPI) CheckTransaction ¶ added in v0.69.0
func (a *ClientAPI) CheckTransaction(ctx context.Context, rawParams jsonrpc.Params, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
func (*ClientAPI) ConnectWallet ¶ added in v0.67.0
func (*ClientAPI) GetChainID ¶ added in v0.67.0
func (*ClientAPI) ListKeys ¶ added in v0.67.0
func (a *ClientAPI) ListKeys(ctx context.Context, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
func (*ClientAPI) SendTransaction ¶ added in v0.67.0
func (a *ClientAPI) SendTransaction(ctx context.Context, rawParams jsonrpc.Params, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
func (*ClientAPI) SignTransaction ¶ added in v0.67.0
func (a *ClientAPI) SignTransaction(ctx context.Context, rawParams jsonrpc.Params, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
type ClientCheckTransaction ¶ added in v0.69.0
type ClientCheckTransaction struct {
// contains filtered or unexported fields
}
func NewClientCheckTransaction ¶ added in v0.69.0
func NewClientCheckTransaction(walletStore WalletStore, interactor Interactor, nodeSelector node.Selector, pow SpamHandler, requestController *RequestController) *ClientCheckTransaction
func (*ClientCheckTransaction) Handle ¶ added in v0.69.0
func (h *ClientCheckTransaction) Handle(ctx context.Context, rawParams jsonrpc.Params, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
type ClientCheckTransactionParams ¶ added in v0.69.0
type ClientCheckTransactionParams struct { PublicKey string `json:"publicKey"` Transaction interface{} `json:"transaction"` }
type ClientCheckTransactionResult ¶ added in v0.69.0
type ClientCheckTransactionResult struct { ReceivedAt time.Time `json:"receivedAt"` SentAt time.Time `json:"sentAt"` Transaction *commandspb.Transaction `json:"transaction"` }
type ClientConnectWallet ¶ added in v0.58.0
type ClientConnectWallet struct {
// contains filtered or unexported fields
}
func NewConnectWallet ¶
func NewConnectWallet(walletStore WalletStore, interactor Interactor) *ClientConnectWallet
func (*ClientConnectWallet) Handle ¶ added in v0.58.0
func (h *ClientConnectWallet) Handle(ctx context.Context, hostname string) (wallet.Wallet, *jsonrpc.ErrorDetails)
Handle initiates the wallet connection between the API and a third-party application.
It triggers a selection of the wallet the client wants to use for this connection. The wallet is then loaded in memory. All changes done to that wallet will start in-memory, and then, be saved in the wallet file. Any changes done to the wallet outside the JSON-RPC session (via the command-line for example) will be overridden. For the effects to be taken into account, the wallet has to be disconnected first, and then re-connected.
All sessions have to be initialized by using this handler. Otherwise, a call to any other handlers will be rejected.
type ClientGetChainID ¶ added in v0.58.0
type ClientGetChainID struct {
// contains filtered or unexported fields
}
func NewGetChainID ¶ added in v0.55.0
func NewGetChainID(nodeSelector walletnode.Selector) *ClientGetChainID
func (*ClientGetChainID) Handle ¶ added in v0.58.0
func (h *ClientGetChainID) Handle(ctx context.Context) (jsonrpc.Result, *jsonrpc.ErrorDetails)
type ClientGetChainIDResult ¶ added in v0.58.0
type ClientGetChainIDResult struct {
ChainID string `json:"chainID"`
}
type ClientListKeys ¶ added in v0.58.0
type ClientListKeys struct {
// contains filtered or unexported fields
}
func NewListKeys ¶
func NewListKeys(walletStore WalletStore, interactor Interactor) *ClientListKeys
func (*ClientListKeys) Handle ¶ added in v0.58.0
func (h *ClientListKeys) Handle(ctx context.Context, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
Handle returns the public keys the third-party application has access to.
This requires a "read" access on "public_keys".
type ClientListKeysResult ¶ added in v0.58.0
type ClientListKeysResult struct {
Keys []ClientNamedPublicKey `json:"keys"`
}
type ClientNamedPublicKey ¶ added in v0.58.0
type ClientParsedCheckTransactionParams ¶ added in v0.69.0
type ClientParsedSendTransactionParams ¶ added in v0.58.0
type ClientParsedSendTransactionParams struct { PublicKey string SendingMode apipb.SubmitTransactionRequest_Type RawTransaction string }
type ClientParsedSignTransactionParams ¶ added in v0.58.0
type ClientSendTransaction ¶ added in v0.58.0
type ClientSendTransaction struct {
// contains filtered or unexported fields
}
func NewClientSendTransaction ¶ added in v0.67.0
func NewClientSendTransaction(walletStore WalletStore, interactor Interactor, nodeSelector node.Selector, pow SpamHandler, requestController *RequestController) *ClientSendTransaction
func (*ClientSendTransaction) Handle ¶ added in v0.58.0
func (h *ClientSendTransaction) Handle(ctx context.Context, rawParams jsonrpc.Params, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
type ClientSendTransactionParams ¶ added in v0.58.0
type ClientSendTransactionResult ¶ added in v0.58.0
type ClientSendTransactionResult struct { ReceivedAt time.Time `json:"receivedAt"` SentAt time.Time `json:"sentAt"` TransactionHash string `json:"transactionHash"` Transaction *commandspb.Transaction `json:"transaction"` }
type ClientSignTransaction ¶ added in v0.58.0
type ClientSignTransaction struct {
// contains filtered or unexported fields
}
func NewClientSignTransaction ¶ added in v0.67.0
func NewClientSignTransaction(walletStore WalletStore, interactor Interactor, nodeSelector node.Selector, proofOfWork SpamHandler, requestController *RequestController) *ClientSignTransaction
func (*ClientSignTransaction) Handle ¶ added in v0.58.0
func (h *ClientSignTransaction) Handle(ctx context.Context, rawParams jsonrpc.Params, connectedWallet ConnectedWallet) (jsonrpc.Result, *jsonrpc.ErrorDetails)
type ClientSignTransactionParams ¶ added in v0.58.0
type ClientSignTransactionParams struct { PublicKey string `json:"publicKey"` Transaction interface{} `json:"transaction"` }
type ClientSignTransactionResult ¶ added in v0.58.0
type ClientSignTransactionResult struct {
Transaction *commandspb.Transaction `json:"transaction"`
}
type ConnectedWallet ¶
type ConnectedWallet struct {
// contains filtered or unexported fields
}
ConnectedWallet is the projection of the wallet through the permissions and authentication system. On a regular wallet, there are no restrictions on what we can call, which doesn't fit the model of having allowed access, so we wrap the "regular wallet" behind the "connected wallet".
func NewConnectedWallet ¶
func NewConnectedWallet(hostname string, w wallet.Wallet) (ConnectedWallet, error)
func NewDisconnectedWallet ¶ added in v0.72.0
func NewDisconnectedWallet(hostname, wallet string) ConnectedWallet
func NewLongLivingConnectedWallet ¶ added in v0.67.0
func NewLongLivingConnectedWallet(w wallet.Wallet) ConnectedWallet
func (*ConnectedWallet) AllowedKeys ¶ added in v0.67.0
func (s *ConnectedWallet) AllowedKeys() []AllowedKey
AllowedKeys returns the keys a connection has access to. If a third-party application tries to use a keys that does not belong to this set, then the request should fail.
func (*ConnectedWallet) CanListKeys ¶ added in v0.67.0
func (s *ConnectedWallet) CanListKeys() bool
func (*ConnectedWallet) CanUseKey ¶ added in v0.56.0
func (s *ConnectedWallet) CanUseKey(publicKeyToUse string) bool
CanUseKey determines if the permissions allow the specified key to be used.
func (*ConnectedWallet) Hostname ¶
func (s *ConnectedWallet) Hostname() string
Hostname returns the hostname for which the connection has been set. For long-living connections, the hostname is empty as there is no restrictions for that type of connection.
func (*ConnectedWallet) Name ¶ added in v0.67.0
func (s *ConnectedWallet) Name() string
func (*ConnectedWallet) RefreshFromWallet ¶ added in v0.67.0
func (s *ConnectedWallet) RefreshFromWallet(freshWallet wallet.Wallet) error
func (*ConnectedWallet) RequireInteraction ¶ added in v0.67.0
func (s *ConnectedWallet) RequireInteraction() bool
RequireInteraction tells if an interaction with the user is needed for supervision is required or not. It is related to the type of API token that is used for this connection. If it's a long-living token, then no interaction is required.
type Connection ¶ added in v0.67.0
type ConnectionsManager ¶ added in v0.67.0
type ConnectionsManager interface { EndSessionConnection(hostname, wallet string) ListSessionConnections() []Connection }
type ErrorType ¶
type ErrorType string
ErrorType defines the type of error that is sent to the user, for fine grain error management and reporting.
var ( // InternalErrorType defines an unexpected technical error upon which the user // can't act. // The wallet front-end should report it to the user and automatically // abort the processing of the ongoing request. // It can be raised if a file is not accessible or corrupt, for example. InternalErrorType ErrorType = "Internal error" // ServerErrorType defines a programmatic error threw by the server, such as // a request cancellation. The server error targets error that happens in // the communication layer. It's different form application error. // It's a type of error that should be expected and handled. ServerErrorType ErrorType = "Server error" // NetworkErrorType defines an error that comes from the network and its nodes. NetworkErrorType ErrorType = "Network error" // ApplicationErrorType defines a programmatic error threw by the application // core, also called "business logic". ApplicationErrorType ErrorType = "Application error" // UserErrorType defines an error that originated from the user and that // requires its intervention to correct it. // It can be raised if a passphrase is invalid, for example. UserErrorType ErrorType = "User error" )
type Interactor ¶ added in v0.58.0
type Interactor interface { // NotifyInteractionSessionBegan notifies the beginning of an interaction // session. // A session is scoped to a request. NotifyInteractionSessionBegan(ctx context.Context, traceID string, workflow WorkflowType, numberOfSteps uint8) error // NotifyInteractionSessionEnded notifies the end of an interaction // session. // A session is scoped to a request. NotifyInteractionSessionEnded(ctx context.Context, traceID string) // NotifySuccessfulTransaction is used to report a successful transaction. NotifySuccessfulTransaction(ctx context.Context, traceID string, stepNumber uint8, txHash, deserializedInputData, tx string, sentAt time.Time, host string) // NotifyFailedTransaction is used to report a failed transaction. NotifyFailedTransaction(ctx context.Context, traceID string, stepNumber uint8, deserializedInputData, tx string, err error, sentAt time.Time, host string) // NotifySuccessfulRequest is used to notify the user the request is // successful. NotifySuccessfulRequest(ctx context.Context, traceID string, stepNumber uint8, message string) // NotifyError is used to report errors to the user. NotifyError(ctx context.Context, traceID string, t ErrorType, err error) // Log is used to report information of any kind to the user. This is used // to log internal activities and provide feedback to the wallet front-ends. // It's purely for informational purpose. // Receiving logs should be expected at any point during an interaction // session. Log(ctx context.Context, traceID string, t LogType, msg string) // RequestWalletConnectionReview is used to trigger a user review of // the wallet connection requested by the specified hostname. // It returns the type of connection approval chosen by the user. RequestWalletConnectionReview(ctx context.Context, traceID string, stepNumber uint8, hostname string) (string, error) // RequestWalletSelection is used to trigger the selection of the wallet the // user wants to use for the specified hostname. RequestWalletSelection(ctx context.Context, traceID string, stepNumber uint8, hostname string, availableWallets []string) (string, error) // RequestPassphrase is used to request to the user the passphrase of a wallet. // It's primarily used by requests that update the wallet. RequestPassphrase(ctx context.Context, traceID string, stepNumber uint8, wallet, reason string) (string, error) // RequestPermissionsReview is used to trigger a user review of the permissions // requested by the specified hostname. // It returns true if the user approved the requested permissions, false // otherwise. RequestPermissionsReview(ctx context.Context, traceID string, stepNumber uint8, hostname, wallet string, perms map[string]string) (bool, error) // RequestTransactionReviewForSending is used to trigger a user review of the // transaction a third-party application wants to send. // It returns true if the user approved the sending of the transaction, // false otherwise. RequestTransactionReviewForSending(ctx context.Context, traceID string, stepNumber uint8, hostname, wallet, pubKey, transaction string, receivedAt time.Time) (bool, error) // RequestTransactionReviewForSigning is used to trigger a user review of the // transaction a third-party application wants to sign. The wallet doesn't // send the transaction. // It returns true if the user approved the signing of the transaction, // false otherwise. RequestTransactionReviewForSigning(ctx context.Context, traceID string, stepNumber uint8, hostname, wallet, pubKey, transaction string, receivedAt time.Time) (bool, error) // RequestTransactionReviewForChecking is used to prompt the user to check of the // transaction a third-party application wants to receive. The wallet doesn't // check the transaction. // It returns true if the user approved the transaction, // false otherwise. RequestTransactionReviewForChecking(ctx context.Context, traceID string, stepNumber uint8, hostname, wallet, pubKey, transaction string, receivedAt time.Time) (bool, error) }
Interactor is the component in charge of delegating the JSON-RPC API requests, notifications and logs to the wallet front-end. Convention:
- Notify* calls do not expect a response from the user.
- Request* calls are expecting a response from the user.
- Log function is just information logging and does not expect a response.
type LogType ¶ added in v0.56.0
type LogType string
LogType defines the type of log that is sent to the user.
type NetworkStore ¶ added in v0.55.0
type NetworkStore interface { NetworkExists(string) (bool, error) GetNetwork(string) (*network.Network, error) SaveNetwork(*network.Network) error ListNetworks() ([]string, error) GetNetworkPath(string) string DeleteNetwork(string) error RenameNetwork(currentName, newName string) error }
NetworkStore is the component used to retrieve and update the networks from the computer.
type NodeSelectorBuilder ¶ added in v0.56.0
type ParsedAdminCheckTransactionParams ¶ added in v0.69.0
type ParsedAdminSendRawTransactionParams ¶ added in v0.63.0
type ParsedAdminSendTransactionParams ¶ added in v0.56.0
type ParsedAdminSignTransactionParams ¶ added in v0.56.0
type Readers ¶ added in v0.55.0
func NewReaders ¶ added in v0.55.0
func NewReaders() Readers
type RequestController ¶ added in v0.72.0
type RequestController struct {
// contains filtered or unexported fields
}
func DefaultRequestController ¶ added in v0.72.0
func DefaultRequestController() *RequestController
func NewRequestController ¶ added in v0.72.0
func NewRequestController(opts ...RequestControllerOptionFn) *RequestController
func (*RequestController) IsPublicKeyAlreadyInUse ¶ added in v0.72.0
func (c *RequestController) IsPublicKeyAlreadyInUse(publicKey string) (func(), error)
type RequestControllerOptionFn ¶ added in v0.72.0
type RequestControllerOptionFn func(rq *RequestController)
func WithIntervalDelayBetweenRetries ¶ added in v0.72.0
func WithIntervalDelayBetweenRetries(duration time.Duration) RequestControllerOptionFn
func WithMaximumAttempt ¶ added in v0.72.0
func WithMaximumAttempt(max uint) RequestControllerOptionFn
type SpamHandler ¶ added in v0.68.0
type SpamHandler interface { GenerateProofOfWork(pubKey string, blockData *nodetypes.SpamStatistics) (*commandspb.ProofOfWork, error) CheckSubmission(req *walletpb.SubmitTransactionRequest, latest *nodetypes.SpamStatistics) error }
type WalletStore ¶
type WalletStore interface { UnlockWallet(ctx context.Context, name, passphrase string) error LockWallet(ctx context.Context, name string) error WalletExists(ctx context.Context, name string) (bool, error) GetWallet(ctx context.Context, name string) (wallet.Wallet, error) ListWallets(ctx context.Context) ([]string, error) CreateWallet(ctx context.Context, w wallet.Wallet, passphrase string) error UpdateWallet(ctx context.Context, w wallet.Wallet) error UpdatePassphrase(ctx context.Context, name, newPassphrase string) error DeleteWallet(ctx context.Context, name string) error RenameWallet(ctx context.Context, currentName, newName string) error GetWalletPath(name string) string IsWalletAlreadyUnlocked(ctx context.Context, name string) (bool, error) }
WalletStore is the component used to retrieve and update wallets from the computer.
type WorkflowType ¶ added in v0.69.0
type WorkflowType string
WorkflowType defines the type of interaction workflow that started by a method.
var ( WalletConnectionWorkflow WorkflowType = "WALLET_CONNECTION" TransactionReviewWorkflow WorkflowType = "TRANSACTION_REVIEW" PermissionRequestWorkflow WorkflowType = "PERMISSION_REQUEST" WalletUnlockingWorkflow WorkflowType = "WALLET_UNLOCKING" )
Source Files ¶
- admin_annotate_key.go
- admin_check_transaction.go
- admin_close_connection.go
- admin_close_connections_to_hostname.go
- admin_close_connections_to_wallet.go
- admin_create_wallet.go
- admin_describe_key.go
- admin_describe_network.go
- admin_describe_permissions.go
- admin_describe_wallet.go
- admin_generate_key.go
- admin_import_network.go
- admin_import_wallet.go
- admin_isolate_key.go
- admin_list_connections.go
- admin_list_keys.go
- admin_list_networks.go
- admin_list_permissions.go
- admin_list_wallets.go
- admin_network.go
- admin_purge_permissions.go
- admin_remove_network.go
- admin_remove_wallet.go
- admin_rename_network.go
- admin_rename_wallet.go
- admin_revoke_permissions.go
- admin_rotate_key.go
- admin_send_raw_transaction.go
- admin_send_transaction.go
- admin_sign_message.go
- admin_sign_transaction.go
- admin_taint_key.go
- admin_unlock_wallet.go
- admin_untaint_key.go
- admin_update_network.go
- admin_update_passphrase.go
- admin_update_permissions.go
- admin_verify_message.go
- api.go
- client_check_transaction.go
- client_connect_wallet.go
- client_get_chain_id.go
- client_list_keys.go
- client_send_transaction.go
- client_sign_transaction.go
- connected_wallet.go
- errors.go
- request_controller.go
- types.go