rpc

package
v0.1.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 9, 2023 License: Apache-2.0, MIT Imports: 26 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func WaitForRequestNoAuth

func WaitForRequestNoAuth[T serde.RequestPayload, U serde.ResponsePayload](rc *rpcClient, method serde.RequestMethod, requestData T) (U, error)

WaitForRequestNoAuth calls waitForRequest with an empty auth token

Types

type RpcClientApi

type RpcClientApi interface {
	// Address returns the address of the nitro node
	Address() (common.Address, error)

	// CreateVoucher creates a voucher for the given channelId and amount and returns it.
	// It is the responsibility of the caller to send the voucher to the payee.
	CreateVoucher(chId types.Destination, amount uint64) (payments.Voucher, error)

	// ReceiveVoucher receives a voucher and adds it to the go-nitro store.
	// It returns the total amount received so far and the amount received from the voucher supplied.
	// It can be used to add a voucher that was sent outside of the go-nitro system.
	ReceiveVoucher(v payments.Voucher) (payments.ReceiveVoucherSummary, error)

	// GetPaymentChannel returns the payment channel information for the given channelId
	GetPaymentChannel(chId types.Destination) (query.PaymentChannelInfo, error)

	// CreatePaymentChannel creates a new virtual payment channel with the specified intermediaries, counterparty, ChallengeDuration, and outcome
	CreatePaymentChannel(intermediaries []types.Address, counterparty types.Address, ChallengeDuration uint32, outcome outcome.Exit) (virtualfund.ObjectiveResponse, error)

	// ClosePaymentChannel attempts to close the payment channel with the specified channelId
	ClosePaymentChannel(id types.Destination) (protocols.ObjectiveId, error)

	// GetLedgerChannel returns the ledger channel information for the given channelId
	GetLedgerChannel(id types.Destination) (query.LedgerChannelInfo, error)

	// GetAllLedgerChannels returns information about all ledger channels
	GetAllLedgerChannels() ([]query.LedgerChannelInfo, error)

	// GetPaymentChannelsByLedger returns all active payment channels for a given ledger channel
	GetPaymentChannelsByLedger(ledgerId types.Destination) ([]query.PaymentChannelInfo, error)

	// CreateLedgerChannel creates a new ledger channel with the specified counterparty, ChallengeDuration, and outcome
	CreateLedgerChannel(counterparty types.Address, ChallengeDuration uint32, outcome outcome.Exit) (directfund.ObjectiveResponse, error)

	// CloseLedgerChannel attempts to close the ledger channel with the specified channelId
	CloseLedgerChannel(id types.Destination) (protocols.ObjectiveId, error)

	// Pay uses the specified channel to pay the specified amount
	Pay(id types.Destination, amount uint64) (serde.PaymentRequest, error)

	// Close shuts down the RpcClient and closes the underlying transport
	Close() error

	// ObjectiveCompleteChan returns a channel that receives an empty struct when the objective with the given id is completed
	ObjectiveCompleteChan(id protocols.ObjectiveId) <-chan struct{}

	// LedgerChannelUpdatesChan returns a channel that receives ledger channel updates for the given ledger channel id
	LedgerChannelUpdatesChan(ledgerChannelId types.Destination) <-chan query.LedgerChannelInfo

	// PaymentChannelUpdatesChan returns a channel that receives payment channel updates for the given payment channel id
	PaymentChannelUpdatesChan(paymentChannelId types.Destination) <-chan query.PaymentChannelInfo
}

RpcClientApi provides various functions to make RPC API calls to a nitro RPC server

func NewHttpRpcClient

func NewHttpRpcClient(rpcServerUrl string) (RpcClientApi, error)

NewHttpRpcClient creates a new rpcClient using an http transport

func NewRpcClient

func NewRpcClient(trans transport.Requester) (RpcClientApi, error)

NewRpcClient creates a new RpcClient

type RpcServer

type RpcServer struct {
	// contains filtered or unexported fields
}

RpcServer handles nitro rpc requests and executes them on the nitro node

func NewRpcServer

func NewRpcServer(nitroNode *nitro.Node, trans transport.Responder) (*RpcServer, error)

func (*RpcServer) Address

func (rs *RpcServer) Address() *types.Address

func (*RpcServer) Close

func (rs *RpcServer) Close() error

func (*RpcServer) Url

func (rs *RpcServer) Url() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL