Files
hash-wallet/cw_mweb/go/mweb.go
T
cyanandGitHub 98babacce0 fix: ltc wallets not syncing (address generation issue) (#2676)
* fix: ltc freezing and address generation

* revert: go back to network (fixme), feeRatePerKb
2025-11-25 17:59:55 +01:00

62 lines
1.3 KiB
Go

package main
import (
"C"
"unsafe"
"github.com/ltcmweb/mwebd"
)
var server *mwebd.Server
//export StartServer
func StartServer(chain *C.char, dataDir *C.char, nodeUri *C.char, errMsg **C.char) C.int {
if server != nil {
server.Stop()
}
goChain := C.GoString(chain)
goDataDir := C.GoString(dataDir)
goNodeUri := C.GoString(nodeUri)
var err error
server, err = mwebd.NewServer(goChain, goDataDir, goNodeUri)
if err != nil {
*errMsg = C.CString(err.Error())
return 0
}
// err = server.StartUnix(goDataDir + "/mwebd.sock")
start, err := server.Start(0)
if err != nil {
*errMsg = C.CString(err.Error())
return 0
}
return C.int(start)
}
//export StopServer
func StopServer() {
if server == nil {
return
}
server.Stop()
server = nil
}
//export Addresses
func Addresses(scanSecret *C.char, scanSecretLen C.int, spendPubKey *C.char, spendPubKeyLen C.int, i C.int, j C.int) *C.char {
// Convert C pointers to Go byte slices
goScanSecret := C.GoBytes(unsafe.Pointer(scanSecret), scanSecretLen)
goSpendPubKey := C.GoBytes(unsafe.Pointer(spendPubKey), spendPubKeyLen)
// Call the original Go function
addr := mwebd.Addresses(goScanSecret, goSpendPubKey, int32(i), int32(j))
// Convert the resulting Go string to a C string
// The C code must free this memory
return C.CString(addr)
}
func main() {}