44 lines
905 B
Go
44 lines
905 B
Go
|
package geth
|
||
|
|
||
|
/*
|
||
|
#include <stddef.h>
|
||
|
#include <stdbool.h>
|
||
|
extern bool StatusServiceSignalEvent( const char *jsonEvent );
|
||
|
*/
|
||
|
import "C"
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
|
||
|
"github.com/ethereum/go-ethereum/common"
|
||
|
"github.com/ethereum/go-ethereum/les/status"
|
||
|
)
|
||
|
|
||
|
const (
|
||
|
EventTransactionQueued = "transaction.queued"
|
||
|
)
|
||
|
|
||
|
func onSendTransactionRequest(queuedTx status.QueuedTx) {
|
||
|
event := GethEvent{
|
||
|
Type: EventTransactionQueued,
|
||
|
Event: SendTransactionEvent{
|
||
|
Id: string(queuedTx.Id),
|
||
|
Args: queuedTx.Args,
|
||
|
},
|
||
|
}
|
||
|
|
||
|
body, _ := json.Marshal(&event)
|
||
|
C.StatusServiceSignalEvent(C.CString(string(body)))
|
||
|
}
|
||
|
|
||
|
func CompleteTransaction(id, password string) (common.Hash, error) {
|
||
|
lightEthereum, err := GetNodeManager().LightEthereumService()
|
||
|
if err != nil {
|
||
|
return common.Hash{}, err
|
||
|
}
|
||
|
|
||
|
backend := lightEthereum.StatusBackend
|
||
|
|
||
|
return backend.CompleteQueuedTransaction(status.QueuedTxId(id), password)
|
||
|
}
|