status-im/status-go

View on GitHub
signal/events_connector.go

Summary

Maintainability
A
0 mins
Test Coverage
A
100%
package signal

const (
    EventConnectorSendRequestAccounts   = "connector.sendRequestAccounts"
    EventConnectorSendTransaction       = "connector.sendTransaction"
    EventConnectorPersonalSign          = "connector.personalSign"
    EventConnectorDAppPermissionGranted = "connector.dAppPermissionGranted"
    EventConnectorDAppPermissionRevoked = "connector.dAppPermissionRevoked"
    EventConnectorDAppChainIdSwitched   = "connector.dAppChainIdSwitched"
)

type ConnectorDApp struct {
    URL     string `json:"url"`
    Name    string `json:"name"`
    IconURL string `json:"iconUrl"`
}

// ConnectorSendRequestAccountsSignal is triggered when a request for accounts is sent.
type ConnectorSendRequestAccountsSignal struct {
    ConnectorDApp
    RequestID string `json:"requestId"`
}

// ConnectorSendTransactionSignal is triggered when a transaction is requested to be sent.
type ConnectorSendTransactionSignal struct {
    ConnectorDApp
    RequestID string `json:"requestId"`
    ChainID   uint64 `json:"chainId"`
    TxArgs    string `json:"txArgs"`
}

type ConnectorPersonalSignSignal struct {
    ConnectorDApp
    RequestID string `json:"requestId"`
    Challenge string `json:"challenge"`
    Address   string `json:"address"`
}

type ConnectorDAppChainIdSwitchedSignal struct {
    URL     string `json:"url"`
    ChainId string `json:"chainId"`
}

func SendConnectorSendRequestAccounts(dApp ConnectorDApp, requestID string) {
    send(EventConnectorSendRequestAccounts, ConnectorSendRequestAccountsSignal{
        ConnectorDApp: dApp,
        RequestID:     requestID,
    })
}

func SendConnectorSendTransaction(dApp ConnectorDApp, chainID uint64, txArgs string, requestID string) {
    send(EventConnectorSendTransaction, ConnectorSendTransactionSignal{
        ConnectorDApp: dApp,
        RequestID:     requestID,
        ChainID:       chainID,
        TxArgs:        txArgs,
    })
}

func SendConnectorPersonalSign(dApp ConnectorDApp, requestID, challenge, address string) {
    send(EventConnectorPersonalSign, ConnectorPersonalSignSignal{
        ConnectorDApp: dApp,
        RequestID:     requestID,
        Challenge:     challenge,
        Address:       address,
    })
}

func SendConnectorDAppPermissionGranted(dApp ConnectorDApp) {
    send(EventConnectorDAppPermissionGranted, dApp)
}

func SendConnectorDAppPermissionRevoked(dApp ConnectorDApp) {
    send(EventConnectorDAppPermissionRevoked, dApp)
}

func SendConnectorDAppChainIdSwitched(payload ConnectorDAppChainIdSwitchedSignal) {
    send(EventConnectorDAppChainIdSwitched, payload)
}