case class DLCOracleAppConfig(baseDatadir: Path, configOverrides: Vector[Config])(implicit ec: ExecutionContext) extends DbAppConfig with DbManagement with JdbcProfileComponent[DLCOracleAppConfig] with DBMasterXPubApi with Product with Serializable
- Alphabetic
- By Inheritance
- DLCOracleAppConfig
- Serializable
- Product
- Equals
- DBMasterXPubApi
- MasterXPubApi
- JdbcProfileComponent
- DbManagement
- DbAppConfig
- AppConfig
- BitcoinSLogger
- StartStopAsync
- StartStop
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new DLCOracleAppConfig(baseDatadir: Path, configOverrides: Vector[Config])(implicit ec: ExecutionContext)
Type Members
- type ConfigType = DLCOracleAppConfig
Sub members of AppConfig should override this type with the type of themselves, ensuring
withOverrides
return the correct typeSub members of AppConfig should override this type with the type of themselves, ensuring
withOverrides
return the correct type- Definition Classes
- DLCOracleAppConfig → AppConfig
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- lazy val aesPasswordOpt: Option[AesPassword]
- def allTables: List[slick.jdbc.JdbcProfile.JdbcAPI.TableQuery[slick.jdbc.JdbcProfile.JdbcAPI.Table[_]]]
- Definition Classes
- DLCOracleAppConfig → DbManagement
- def appConfig: DLCOracleAppConfig
- Definition Classes
- DLCOracleAppConfig → JdbcProfileComponent
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- val baseDatadir: Path
The base data directory.
The base data directory. This is where we look for a configuration file
- Definition Classes
- DLCOracleAppConfig → AppConfig
- lazy val bip39PasswordOpt: Option[String]
- final lazy val chain: BitcoinChainParams
DLC oracles are not network specific, so just hard code the testnet chain params
DLC oracles are not network specific, so just hard code the testnet chain params
- Definition Classes
- DLCOracleAppConfig → AppConfig
- def clean(): CleanResult
Runs flyway clean
Runs flyway clean
WARNING: THIS DELETES ALL DATA IN THE DATABASE, YOU PROBABLY DON'T WANT THIS UNLESS YOU ARE USING TESTS
- Definition Classes
- DbManagement
- See also
https://flywaydb.org/documentation/command/clean
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- lazy val config: Config
- Attributes
- protected
- Definition Classes
- AppConfig
- def configFileName: String
- Definition Classes
- AppConfig
- val configOverrides: Vector[Config]
List of user-provided configs that should override defaults
List of user-provided configs that should override defaults
- Definition Classes
- DLCOracleAppConfig → AppConfig
- def createSchema(createIfNotExists: Boolean = true)(implicit ec: ExecutionContext): Future[Unit]
- Definition Classes
- DbManagement
- def createTable(table: slick.jdbc.JdbcProfile.JdbcAPI.TableQuery[_ <: slick.jdbc.JdbcProfile.JdbcAPI.Table[_]], createIfNotExists: Boolean = true)(implicit ec: ExecutionContext): Future[Unit]
Creates the given table
Creates the given table
- Definition Classes
- DbManagement
- lazy val database: JdbcDatabaseDef
The database we are connecting to
The database we are connecting to
- Definition Classes
- JdbcProfileComponent
- lazy val datadir: Path
The network specific data directory.
The network specific data directory.
- Definition Classes
- DLCOracleAppConfig → AppConfig
- lazy val dbConfig: DatabaseConfig[JdbcProfile]
The configuration details for connecting/using the database for our projects that require database connections
The configuration details for connecting/using the database for our projects that require database connections
- Definition Classes
- JdbcProfileComponent
- lazy val dbHost: String
The host of our postgresql database
The host of our postgresql database
- Definition Classes
- DbAppConfig
- lazy val dbName: String
The name of our database
The name of our database
- Definition Classes
- DbAppConfig
- lazy val dbPassword: String
- Definition Classes
- DbAppConfig
- lazy val dbPath: Path
The path where our DB is located
The path where our DB is located
- Definition Classes
- DbAppConfig
- lazy val dbPort: Int
The port number of our postgresql database
The port number of our postgresql database
- Definition Classes
- DbAppConfig
- lazy val dbUsername: String
- Definition Classes
- DbAppConfig
- lazy val driver: DatabaseDriver
- Definition Classes
- DbAppConfig
- def dropAll()(implicit ec: ExecutionContext): Future[Unit]
- Definition Classes
- DbManagement
- def dropTable(tableName: String)(implicit ec: ExecutionContext): Future[Int]
- Definition Classes
- DbManagement
- def dropTable(table: slick.jdbc.JdbcProfile.JdbcAPI.TableQuery[slick.jdbc.JdbcProfile.JdbcAPI.Table[_]]): Future[Unit]
- Definition Classes
- DbManagement
- implicit val ec: ExecutionContext
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def exists(): Future[Boolean]
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- lazy val flyway: Flyway
- Attributes
- protected
- Definition Classes
- DbManagement
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def getConfigString(path: String): String
- Definition Classes
- AppConfig
- def getConfigStringOpt(path: String): Option[String]
- Definition Classes
- AppConfig
- lazy val hikariLoggingInterval: Option[Duration]
Gets how often we should log hikari connection pool stats if None, this means isHikariLoggingEnabled is not enabled
Gets how often we should log hikari connection pool stats if None, this means isHikariLoggingEnabled is not enabled
- Definition Classes
- DbAppConfig
- def info(): MigrationInfoService
Returns flyway information about the state of migrations
Returns flyway information about the state of migrations
- Definition Classes
- DbManagement
- See also
https://flywaydb.org/documentation/command/info
- lazy val isHikariLoggingEnabled: Boolean
- Definition Classes
- DbAppConfig
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- lazy val jdbcUrl: String
- Definition Classes
- DbAppConfig
- lazy val kmConf: KeyManagerAppConfig
- lazy val kmParams: KeyManagerParams
- def logger: Logger
- Definition Classes
- BitcoinSLogger
- def migrate(): MigrateResult
Executes migrations related to this database
Executes migrations related to this database
- Definition Classes
- DbManagement
- See also
https://flywaydb.org/documentation/api/#programmatic-configuration-java
- def migrationsApplied(): Int
- Definition Classes
- DbManagement
- def moduleName: String
Name of the module.
Name of the module.
chain
,wallet
,node
etc.- Definition Classes
- DLCOracleAppConfig → AppConfig
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final lazy val network: BitcoinNetwork
DLC oracles are not network specific, so just hard code the network
DLC oracles are not network specific, so just hard code the network
- Definition Classes
- DLCOracleAppConfig → AppConfig
- def newConfigOfType(configs: Vector[Config]): DLCOracleAppConfig
Constructor to make a new instance of this config type
Constructor to make a new instance of this config type
- Definition Classes
- DLCOracleAppConfig → AppConfig
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- lazy val numThreads: Int
- Definition Classes
- JdbcProfileComponent
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- lazy val profile: JdbcProfile
- Definition Classes
- JdbcProfileComponent
- def rpcBindOpt: Option[String]
- def rpcPassword: String
- def rpcPort: Int
- lazy val schemaName: Option[String]
- Definition Classes
- DbAppConfig
- def seedExists()(implicit ec: ExecutionContext): Future[Boolean]
Determines if the seed exists
Determines if the seed exists
- Definition Classes
- DBMasterXPubApi → MasterXPubApi
- lazy val seedPath: Path
The path to our encrypted mnemonic seed
The path to our encrypted mnemonic seed
- Definition Classes
- DLCOracleAppConfig → DBMasterXPubApi
- lazy val slickDbConfig: DatabaseConfig[JdbcProfile]
- Definition Classes
- DbAppConfig
- def start(): Future[Unit]
Starts this project.
Starts this project. After this future resolves, all operations should be able to be performed correctly.
Starting may include creating database tables, making directories or files needed later or something else entirely.
- Definition Classes
- DLCOracleAppConfig → AppConfig → StartStop
- def startHikariLogger(interval: Duration): HikariLogging
Starts the background logger for hikari
Starts the background logger for hikari
- interval
\- how often hikari logs database connection pool information
- Attributes
- protected
- Definition Classes
- JdbcProfileComponent
- def stop(): Future[Unit]
Releases the thread pool associated with this AppConfig's DB
Releases the thread pool associated with this AppConfig's DB
- Definition Classes
- DbAppConfig → StartStop
- def stopHikariLogger(): Unit
- Attributes
- protected
- Definition Classes
- JdbcProfileComponent
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- implicit def tableQueryToWithSchema(tableQuery: slick.jdbc.JdbcProfile.JdbcAPI.TableQuery[_]): slick.jdbc.JdbcProfile.JdbcAPI.TableQuery[slick.jdbc.JdbcProfile.JdbcAPI.Table[_]]
Internally, slick defines the schema member as
Internally, slick defines the schema member as
def schema: SchemaDescription = buildTableSchemaDescription(q.shaped.value.asInstanceOf[Table[_]])
we need to cast between TableQuery's of specific table types to the more generic TableQuery[Table[_]] to get methods in this trait working as they require schema (which essentially does this cast anyway)
This cast is needed because TableQuery is not covariant in its type parameter. However, since Query is covariant in its first type parameter, I believe the cast from TableQuery[T1] to TableQuery[T2] will always be safe so long as T1 is a subtype of T2 AND T1#TableElementType is equal to T2#TableElementType.
The above conditions are always the case when this is called in the current code base and will stay that way so long as no one tries anything too fancy.
- Attributes
- protected
- Definition Classes
- DbManagement
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- def withOverrides(configOverrides: Vector[Config]): ConfigType
This method returns a new
AppConfig
, where every key underbitcoin-s
overrides the configuration picked up by other means (thereference.conf
provided by bitcoin-s and theapplication.conf
provided by the user).This method returns a new
AppConfig
, where every key underbitcoin-s
overrides the configuration picked up by other means (thereference.conf
provided by bitcoin-s and theapplication.conf
provided by the user). If you pass in configs with overlapping keys (e.g. several configs with the keybitcoin-s.network
), the latter config overrides the first.- Definition Classes
- AppConfig
- def withOverrides(configOverrides: Config): ConfigType
- Definition Classes
- AppConfig