dot.dot.dot.exampol

This commit is contained in:
Captain Nick Lucifer* 2023-03-10 23:21:16 +05:45
commit a0bc2d79de
406 changed files with 34577 additions and 0 deletions

37
node_modules/lnsocket/go/go.mod generated vendored Normal file
View file

@ -0,0 +1,37 @@
module github.com/jb55/lnsocket/go
require (
github.com/btcsuite/btcd v0.22.0-beta.0.20211005184431-e3449998be39
github.com/lightningnetwork/lnd v0.14.1-beta
)
require (
github.com/aead/siphash v1.0.1 // indirect
github.com/btcsuite/btclog v0.0.0-20170628155309-84c8d2346e9f // indirect
github.com/btcsuite/btcutil v1.0.3-0.20210527170813-e2ba6805a890 // indirect
github.com/btcsuite/btcutil/psbt v1.0.3-0.20210527170813-e2ba6805a890 // indirect
github.com/btcsuite/btcwallet v0.13.0 // indirect
github.com/btcsuite/btcwallet/wallet/txauthor v1.1.0 // indirect
github.com/btcsuite/btcwallet/wallet/txrules v1.1.0 // indirect
github.com/btcsuite/btcwallet/wallet/txsizes v1.1.0 // indirect
github.com/btcsuite/btcwallet/walletdb v1.3.6-0.20210803004036-eebed51155ec // indirect
github.com/btcsuite/btcwallet/wtxmgr v1.3.1-0.20210822222949-9b5a201c344c // indirect
github.com/btcsuite/go-socks v0.0.0-20170105172521-4720035b7bfd // indirect
github.com/btcsuite/websocket v0.0.0-20150119174127-31079b680792 // indirect
github.com/davecgh/go-spew v1.1.1 // indirect
github.com/decred/dcrd/lru v1.0.0 // indirect
github.com/go-errors/errors v1.0.1 // indirect
github.com/kkdai/bstream v1.0.0 // indirect
github.com/lightninglabs/gozmq v0.0.0-20191113021534-d20a764486bf // indirect
github.com/lightninglabs/neutrino v0.13.0 // indirect
github.com/lightningnetwork/lnd/clock v1.1.0 // indirect
github.com/lightningnetwork/lnd/queue v1.1.0 // indirect
github.com/lightningnetwork/lnd/ticker v1.1.0 // indirect
github.com/miekg/dns v1.1.43 // indirect
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519 // indirect
golang.org/x/net v0.0.0-20210913180222-943fd674d43e // indirect
golang.org/x/sys v0.0.0-20210915083310-ed5796bab164 // indirect
golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 // indirect
)
go 1.17

1009
node_modules/lnsocket/go/go.sum generated vendored Normal file

File diff suppressed because it is too large Load diff

190
node_modules/lnsocket/go/lnsocket.go generated vendored Normal file
View file

@ -0,0 +1,190 @@
package lnsocket
import (
"bytes"
"encoding/hex"
"fmt"
"io"
"net"
"github.com/btcsuite/btcd/btcec"
"github.com/lightningnetwork/lnd/brontide"
"github.com/lightningnetwork/lnd/keychain"
"github.com/lightningnetwork/lnd/lnwire"
"github.com/lightningnetwork/lnd/tor"
)
const (
COMMANDO_CMD = 0x4c4f
COMMANDO_REPLY_CONTINUES = 0x594b
COMMANDO_REPLY_TERM = 0x594d
)
type CommandoMsg struct {
Rune string
Method string
Params string
RequestId uint64
}
func NewCommandoMsg(token string, method string, params string) CommandoMsg {
return CommandoMsg{
Rune: token,
Method: method,
Params: params,
}
}
// A compile time check to ensure Init implements the lnwire.Message
// interface.
func (msg *CommandoMsg) MsgType() lnwire.MessageType {
return COMMANDO_CMD
}
func (msg *CommandoMsg) Decode(reader io.Reader, size uint32) error {
return fmt.Errorf("implememt commando decode?")
}
func (msg *CommandoMsg) Encode(buf *bytes.Buffer, pver uint32) error {
if err := lnwire.WriteUint64(buf, msg.RequestId); err != nil {
return err
}
buf.WriteString("{\"method\": \"")
buf.WriteString(msg.Method)
buf.WriteString("\",\"params\":")
buf.WriteString(msg.Params)
buf.WriteString(",\"rune\":\"")
buf.WriteString(msg.Rune)
buf.WriteString("\"}")
return nil
}
type LNSocket struct {
Conn net.Conn
PrivKeyECDH *keychain.PrivKeyECDH
}
func (ln *LNSocket) GenKey() {
remotePriv, _ := btcec.NewPrivateKey(btcec.S256())
ln.PrivKeyECDH = &keychain.PrivKeyECDH{PrivKey: remotePriv}
}
func (ln *LNSocket) ConnectWith(netAddr *lnwire.NetAddress) error {
conn, err := brontide.Dial(ln.PrivKeyECDH, netAddr, tor.DefaultConnTimeout, net.DialTimeout)
ln.Conn = conn
return err
}
func (ln *LNSocket) Connect(hostname string, pubkey string) error {
addr, err := net.ResolveTCPAddr("tcp", hostname)
if err != nil {
return err
}
bytes, err := hex.DecodeString(pubkey)
if err != nil {
return err
}
key, err := btcec.ParsePubKey(bytes, btcec.S256())
if err != nil {
return err
}
netAddr := &lnwire.NetAddress{
IdentityKey: key,
Address: addr,
}
return ln.ConnectWith(netAddr)
}
func (ln *LNSocket) PerformInit() error {
no_features := lnwire.NewRawFeatureVector()
init_reply_msg := lnwire.NewInitMessage(no_features, no_features)
var b bytes.Buffer
_, err := lnwire.WriteMessage(&b, init_reply_msg, 0)
if err != nil {
return err
}
_, err = ln.Conn.Write(b.Bytes())
// receive the first init msg
_, _, err = ln.Recv()
if err != nil {
return err
}
return nil
}
func (ln *LNSocket) Rpc(token string, method string, params string) (string, error) {
commando_msg := NewCommandoMsg(token, method, params)
var b bytes.Buffer
_, err := lnwire.WriteMessage(&b, &commando_msg, 0)
if err != nil {
return "", err
}
bs := b.Bytes()
_, err = ln.Conn.Write(bs)
if err != nil {
return "", err
}
return ln.rpcReadAll()
}
func ParseMsgType(bytes []byte) uint16 {
return uint16(bytes[0])<<8 | uint16(bytes[1])
}
func (ln *LNSocket) Recv() (uint16, []byte, error) {
res := make([]byte, 65535)
n, err := ln.Conn.Read(res)
if err != nil {
return 0, nil, err
}
if n < 2 {
return 0, nil, fmt.Errorf("read too small")
}
res = res[:n]
msgtype := ParseMsgType(res)
return msgtype, res[2:], nil
}
func (ln *LNSocket) rpcReadAll() (string, error) {
all := []byte{}
for {
msgtype, res, err := ln.Recv()
if err != nil {
return "", err
}
switch msgtype {
case COMMANDO_REPLY_CONTINUES:
all = append(all, res[8:]...)
continue
case COMMANDO_REPLY_TERM:
all = append(all, res[8:]...)
return string(all), nil
default:
continue
}
}
}
func (ln *LNSocket) Disconnect() {
ln.Conn.Close()
}
func (ln *LNSocket) ConnectAndInit(hostname string, pubkey string) error {
err := ln.Connect(hostname, pubkey)
if err != nil {
return err
}
return ln.PerformInit()
}