go-waku/waku/v2/node/wakuoptions_rln.go

38 lines
1.3 KiB
Go
Raw Normal View History

2023-09-12 19:14:08 +00:00
//go:build !gowaku_no_rln
// +build !gowaku_no_rln
2022-08-12 12:44:13 +00:00
package node
import (
"github.com/ethereum/go-ethereum/common"
"github.com/waku-org/go-waku/waku/v2/protocol/rln"
r "github.com/waku-org/go-zerokit-rln/rln"
2022-08-12 12:44:13 +00:00
)
2022-08-18 14:42:18 +00:00
// WithStaticRLNRelay enables the Waku V2 RLN protocol in offchain mode
func WithStaticRLNRelay(memberIndex *r.MembershipIndex, spamHandler rln.SpamHandler) WakuNodeOption {
2022-08-12 12:44:13 +00:00
return func(params *WakuNodeParameters) error {
params.enableRLN = true
params.rlnRelayDynamic = false
params.rlnRelayMemIndex = memberIndex
params.rlnSpamHandler = spamHandler
return nil
}
}
2023-04-05 19:44:46 +00:00
// WithDynamicRLNRelay enables the Waku V2 RLN protocol in onchain mode.
func WithDynamicRLNRelay(keystorePath string, keystorePassword string, treePath string, membershipContract common.Address, membershipIndex *uint, spamHandler rln.SpamHandler, ethClientAddress string) WakuNodeOption {
2022-08-12 12:44:13 +00:00
return func(params *WakuNodeParameters) error {
params.enableRLN = true
params.rlnRelayDynamic = true
2023-04-05 19:44:46 +00:00
params.keystorePassword = keystorePassword
params.keystorePath = keystorePath
2022-08-12 12:44:13 +00:00
params.rlnSpamHandler = spamHandler
params.rlnETHClientAddress = ethClientAddress
2023-04-05 19:44:46 +00:00
params.rlnMembershipContractAddress = membershipContract
params.rlnRelayMemIndex = membershipIndex
params.rlnTreePath = treePath
2022-08-12 12:44:13 +00:00
return nil
}
}