mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-08-20 10:52:25 +00:00
les: more lespay API calls
This commit is contained in:
parent
936328ff68
commit
c52605cac9
2 changed files with 80 additions and 4 deletions
59
les/api.go
59
les/api.go
|
|
@ -453,13 +453,66 @@ func (api *PrivateLespayAPI) Connection(ctx context.Context, remote bool, node s
|
||||||
params := tsConnectionParams{requestedCapacity, stayConnected, paymentModule, setCap}
|
params := tsConnectionParams{requestedCapacity, stayConnected, paymentModule, setCap}
|
||||||
enc, _ := rlp.EncodeToBytes(¶ms)
|
enc, _ := rlp.EncodeToBytes(¶ms)
|
||||||
var resEnc []byte
|
var resEnc []byte
|
||||||
fmt.Println("makeCall", remote, node, enc)
|
|
||||||
resEnc, err = api.makeCall(ctx, remote, node, append([]byte{tsConnection}, enc...))
|
resEnc, err = api.makeCall(ctx, remote, node, append([]byte{tsConnection}, enc...))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("makeCall err", err)
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
err = rlp.DecodeBytes(resEnc, &results)
|
err = rlp.DecodeBytes(resEnc, &results)
|
||||||
fmt.Println("decode err", err)
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (api *PrivateLespayAPI) Deposit(ctx context.Context, remote bool, node string, paymentModule string, proofOfPayment []byte) (results tsDepositResults, err error) {
|
||||||
|
params := tsDepositParams{paymentModule, proofOfPayment}
|
||||||
|
enc, _ := rlp.EncodeToBytes(¶ms)
|
||||||
|
var resEnc []byte
|
||||||
|
resEnc, err = api.makeCall(ctx, remote, node, append([]byte{tsDeposit}, enc...))
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = rlp.DecodeBytes(resEnc, &results)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (api *PrivateLespayAPI) BuyTokens(ctx context.Context, remote bool, node string, maxSpend, minReceive uint64, spendAll bool) (results tsBuyTokensResults, err error) {
|
||||||
|
params := tsBuyTokensParams{maxSpend, minReceive, spendAll}
|
||||||
|
enc, _ := rlp.EncodeToBytes(¶ms)
|
||||||
|
var resEnc []byte
|
||||||
|
resEnc, err = api.makeCall(ctx, remote, node, append([]byte{tsBuyTokens}, enc...))
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = rlp.DecodeBytes(resEnc, &results)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (api *PrivateLespayAPI) GetBalance(ctx context.Context, remote bool, node string) (results tsGetBalanceResults, err error) {
|
||||||
|
var resEnc []byte
|
||||||
|
resEnc, err = api.makeCall(ctx, remote, node, []byte{tsGetBalance})
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = rlp.DecodeBytes(resEnc, &results)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (api *PrivateLespayAPI) Info(ctx context.Context, remote bool, node string) (results tsInfoResults, err error) {
|
||||||
|
var resEnc []byte
|
||||||
|
resEnc, err = api.makeCall(ctx, remote, node, []byte{tsInfo})
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = rlp.DecodeBytes(resEnc, &results)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
func (api *PrivateLespayAPI) ReceiverInfo(ctx context.Context, remote bool, node string, receiverIDs []string) (results tsReceiverInfoResults, err error) {
|
||||||
|
params := tsReceiverInfoParams(receiverIDs)
|
||||||
|
enc, _ := rlp.EncodeToBytes(¶ms)
|
||||||
|
var resEnc []byte
|
||||||
|
resEnc, err = api.makeCall(ctx, remote, node, append([]byte{tsReceiverInfo}, enc...))
|
||||||
|
if err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
err = rlp.DecodeBytes(resEnc, &results)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -363,6 +363,19 @@ func (t *tokenSale) buyTokens(id enode.ID, maxSpend, minReceive uint64, spendAll
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func (t *tokenSale) getBalance(id enode.ID) (pcBalance, tokenBalance uint64) {
|
||||||
|
t.lock.Lock()
|
||||||
|
defer t.lock.Unlock()
|
||||||
|
|
||||||
|
pb := t.clientPool.getPosBalance(id)
|
||||||
|
tokenBalance = pb.value
|
||||||
|
var meta tokenSaleMeta
|
||||||
|
if err := rlp.DecodeBytes([]byte(pb.meta), &meta); err == nil {
|
||||||
|
pcBalance = meta.pcBalance
|
||||||
|
}
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
func (t *tokenSale) info() (version, compatible uint, info keyValueList, receivers []string) {
|
func (t *tokenSale) info() (version, compatible uint, info keyValueList, receivers []string) {
|
||||||
t.lock.Lock()
|
t.lock.Lock()
|
||||||
defer t.lock.Unlock()
|
defer t.lock.Unlock()
|
||||||
|
|
@ -436,6 +449,7 @@ func (t *tokenSaleMeta) DecodeRLP(s *rlp.Stream) error {
|
||||||
const (
|
const (
|
||||||
tsInfo = iota
|
tsInfo = iota
|
||||||
tsReceiverInfo
|
tsReceiverInfo
|
||||||
|
tsGetBalance
|
||||||
tsDeposit
|
tsDeposit
|
||||||
tsBuyTokens
|
tsBuyTokens
|
||||||
tsConnection
|
tsConnection
|
||||||
|
|
@ -449,6 +463,9 @@ type (
|
||||||
}
|
}
|
||||||
tsReceiverInfoParams []string
|
tsReceiverInfoParams []string
|
||||||
tsReceiverInfoResults []keyValueList
|
tsReceiverInfoResults []keyValueList
|
||||||
|
tsGetBalanceResults struct {
|
||||||
|
PcBalance, TokenBalance uint64
|
||||||
|
}
|
||||||
tsDepositParams struct {
|
tsDepositParams struct {
|
||||||
PaymentModule string
|
PaymentModule string
|
||||||
ProofOfPayment []byte
|
ProofOfPayment []byte
|
||||||
|
|
@ -495,6 +512,12 @@ func (t *tokenSale) runCommand(cmd []byte, id enode.ID, freeID string) []byte {
|
||||||
results = t.receiverInfo(params)
|
results = t.receiverInfo(params)
|
||||||
res, _ = rlp.EncodeToBytes(&results)
|
res, _ = rlp.EncodeToBytes(&results)
|
||||||
}
|
}
|
||||||
|
case tsGetBalance:
|
||||||
|
var results tsGetBalanceResults
|
||||||
|
if len(cmd) == 1 {
|
||||||
|
results.PcBalance, results.TokenBalance = t.getBalance(id)
|
||||||
|
res, _ = rlp.EncodeToBytes(&results)
|
||||||
|
}
|
||||||
case tsDeposit:
|
case tsDeposit:
|
||||||
var (
|
var (
|
||||||
params tsDepositParams
|
params tsDepositParams
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue