mirror of
https://github.com/getAlby/hub.git
synced 2026-08-13 12:33:39 +02:00
* feat: just in time channels with lsps2 * fix: clarify JIT receive channel fee * fix: fees * fix: fees 2 * fix: don't show low inbound when LSPS2 is active * fix: remove the receive limit below the input if LSPS2 is being used * fix: simplify * fix: bring back fee % for outgoing * fix: remove unneeded changes * fix: typo * fix: unneeded * fix: don't show open first channel is LSPS2 * feat: clearer JIT channel fee copy on receive screen * fix: add LSPS2 var info * fix: don't duplicate JIT fee hint on create invoice form * fix: make paymentDone a standard boolean * fix: update to golang:1.26 in Dockerfile * feat: read LSPS2 sources from channel suggestions, set minimum receive amount, update guide link * docs: update LDK_LSPS2_ADDRESSES to be used as an override * fix: only show minimum jit receive amount on validation error * fix: add more detail to receive error when receiving low amounts with jit * fix: do not use JIT when user has public channels * feat: add option to disable JIT * fix: isTrusted check, add jit property to event * fix: do not require node restart for toggling JIT * chore: simplify JIT alert * chore: add guide link on node settings JIT description * feat: fetch the lsp2info to have access to params like minimum/maximum payment size * refactor: share single learn-more link across JIT fee hint branches * fix: remove variable amount invoice support * fix: use lsps2info for min payment size and remove channelPeerSuggestion usage of minimumChannelSize * fix: only do amount validation according to lsps2Info values if jit is enabled in settings * feat: add jit first payment fee alert on receive via lightning address * fix: remove unnecessary conditional * fix: ensure at least one sat is left over when opening JIT channel * chore: remove hardcoded suggestions * chore: rename JIT enabled config variable * fix: ui checks when JIT is disabled * fix: amount input validation message * fix: formatting --------- Co-authored-by: anon <anon@anon.com> Co-authored-by: saunter <68239231+stackingsaunter@users.noreply.github.com> Co-authored-by: fmar <fmar@fmar> Co-authored-by: René Aaron <rene@twentyuno.net> Co-authored-by: Roland Bewick <roland.bewick@gmail.com>
105 lines
5.8 KiB
Go
105 lines
5.8 KiB
Go
package config
|
|
|
|
const (
|
|
LNDBackendType = "LND"
|
|
LDKBackendType = "LDK"
|
|
PhoenixBackendType = "PHOENIX"
|
|
CashuBackendType = "CASHU"
|
|
CLNBackendType = "CLN"
|
|
BarkBackendType = "BARK"
|
|
)
|
|
|
|
const (
|
|
OnchainAddressKey = "OnchainAddress"
|
|
AutoSwapBalanceThresholdKey = "AutoSwapBalanceThreshold"
|
|
AutoSwapAmountKey = "AutoSwapAmount"
|
|
AutoSwapDestinationKey = "AutoSwapDestination"
|
|
AutoSwapXpubIndexStart = "AutoSwapXpubIndexStart"
|
|
)
|
|
|
|
type AppConfig struct {
|
|
Relay string `envconfig:"RELAY" default:"wss://relay.getalby.com,wss://relay2.getalby.com"`
|
|
LNBackendType string `envconfig:"LN_BACKEND_TYPE"`
|
|
LNDAddress string `envconfig:"LND_ADDRESS"`
|
|
LNDCertFile string `envconfig:"LND_CERT_FILE"`
|
|
LNDMacaroonFile string `envconfig:"LND_MACAROON_FILE"`
|
|
Workdir string `envconfig:"WORK_DIR"`
|
|
Port string `envconfig:"PORT" default:"8080"`
|
|
DatabaseUri string `envconfig:"DATABASE_URI" default:"nwc.db"`
|
|
LogLevel string `envconfig:"LOG_LEVEL" default:"4"`
|
|
LogToFile bool `envconfig:"LOG_TO_FILE" default:"true"`
|
|
Network string `envconfig:"NETWORK"`
|
|
LDKNetwork string `envconfig:"LDK_NETWORK"`
|
|
LDKEsploraServer string `envconfig:"LDK_ESPLORA_SERVER" default:"https://electrs.getalbypro.com"` // TODO: remove LDK prefix
|
|
LDKElectrumServer string `envconfig:"LDK_ELECTRUM_SERVER"`
|
|
LDKGossipSource string `envconfig:"LDK_GOSSIP_SOURCE"`
|
|
LDKLogLevel string `envconfig:"LDK_LOG_LEVEL" default:"3"`
|
|
LDKMaxChannelSaturationPowerOfHalf uint8 `envconfig:"LDK_MAX_CHANNEL_SATURATION" default:"2"`
|
|
LDKMaxPathCount uint8 `envconfig:"LDK_MAX_PATH_COUNT" default:"5"`
|
|
LDKChannelMonitorWarningSizeBytes uint64 `envconfig:"LDK_CHANNEL_MONITOR_WARNING_SIZE_BYTES" default:"5000000"`
|
|
LDKVssUrl string `envconfig:"LDK_VSS_URL" default:"https://vss.getalbypro.com/vss"`
|
|
LDKLiquiditySourceLsps2 string `envconfig:"LDK_LSPS2_ADDRESSES"`
|
|
LDKListeningAddresses string `envconfig:"LDK_LISTENING_ADDRESSES" default:"[::]:9735"`
|
|
LDKAnnouncementAddresses string `envconfig:"LDK_ANNOUNCEMENT_ADDRESSES"`
|
|
LDKTransientNetworkGraph bool `envconfig:"LDK_TRANSIENT_NETWORK_GRAPH" default:"false"`
|
|
RebalanceServiceUrl string `envconfig:"REBALANCE_SERVICE_URL" default:"https://megalithic.me"`
|
|
LDKBitcoindRpcHost string `envconfig:"LDK_BITCOIND_RPC_HOST"`
|
|
LDKBitcoindRpcPort string `envconfig:"LDK_BITCOIND_RPC_PORT"`
|
|
LDKBitcoindRpcUser string `envconfig:"LDK_BITCOIND_RPC_USER"`
|
|
LDKBitcoindRpcPassword string `envconfig:"LDK_BITCOIND_RPC_PASSWORD"`
|
|
MempoolApi string `envconfig:"MEMPOOL_API" default:"https://mempool.space/api"`
|
|
AlbyClientId string `envconfig:"ALBY_OAUTH_CLIENT_ID" default:"J2PbXS1yOf"`
|
|
AlbyClientSecret string `envconfig:"ALBY_OAUTH_CLIENT_SECRET" default:"rABK2n16IWjLTZ9M1uKU"`
|
|
BaseUrl string `envconfig:"BASE_URL"`
|
|
FrontendUrl string `envconfig:"FRONTEND_URL"`
|
|
SendEventsToAlby bool `envconfig:"SEND_EVENTS_TO_ALBY" default:"true"`
|
|
AutoLinkAlbyAccount bool `envconfig:"AUTO_LINK_ALBY_ACCOUNT" default:"true"`
|
|
PhoenixdAddress string `envconfig:"PHOENIXD_ADDRESS"`
|
|
PhoenixdAuthorization string `envconfig:"PHOENIXD_AUTHORIZATION"`
|
|
GoProfilerAddr string `envconfig:"GO_PROFILER_ADDR"`
|
|
EnableAdvancedSetup bool `envconfig:"ENABLE_ADVANCED_SETUP" default:"true"`
|
|
AutoUnlockPassword string `envconfig:"AUTO_UNLOCK_PASSWORD"`
|
|
LogDBQueries bool `envconfig:"LOG_DB_QUERIES" default:"false"`
|
|
BoltzApi string `envconfig:"BOLTZ_API" default:"https://api.boltz.exchange"`
|
|
HideUpdateBanner bool `envconfig:"HIDE_UPDATE_BANNER" default:"false"`
|
|
CLNAddress string `envconfig:"CLN_ADDRESS"`
|
|
CLNLightningDir string `envconfig:"CLN_LIGHTNING_DIR"`
|
|
CLNAddressHold string `envconfig:"CLN_ADDRESS_HOLD"`
|
|
BarkServer string `envconfig:"BARK_SERVER" default:"https://ark.second.tech"`
|
|
BarkEsploraServer string `envconfig:"BARK_ESPLORA_SERVER" default:"https://mempool.second.tech/api"`
|
|
BarkServerAccessToken string `envconfig:"BARK_SERVER_ACCESS_TOKEN"`
|
|
BarkLogLevel string `envconfig:"BARK_LOG_LEVEL" default:"3"`
|
|
}
|
|
|
|
func (c *AppConfig) IsDefaultClientId() bool {
|
|
return c.AlbyClientId == "J2PbXS1yOf"
|
|
}
|
|
|
|
func (c *AppConfig) GetBaseFrontendUrl() string {
|
|
url := c.FrontendUrl
|
|
if url == "" {
|
|
url = c.BaseUrl
|
|
}
|
|
return url
|
|
}
|
|
|
|
type Config interface {
|
|
Get(key string, encryptionKey string) (string, error)
|
|
SetIgnore(key string, value string, encryptionKey string) error
|
|
SetUpdate(key string, value string, encryptionKey string) error
|
|
LoadJWTSecret(encryptionKey string) error
|
|
GetJWTSecret() (string, error)
|
|
GetRelayUrls() []string
|
|
GetNetwork() string
|
|
GetMempoolUrl() string
|
|
GetEnv() *AppConfig
|
|
CheckUnlockPassword(password string) bool
|
|
ChangeUnlockPassword(currentUnlockPassword string, newUnlockPassword string) error
|
|
SetAutoUnlockPassword(unlockPassword string) error
|
|
SaveUnlockPasswordCheck(encryptionKey string) error
|
|
SetupCompleted() (bool, error)
|
|
GetCurrency() string
|
|
SetCurrency(value string) error
|
|
GetBitcoinDisplayFormat() string
|
|
SetBitcoinDisplayFormat(value string) error
|
|
}
|