test-electrum:
name: Test electrum
runs-on: ubuntu-16.04
- container: bitcoindevkit/electrs
+ container: bitcoindevkit/electrs:0.2.0
env:
- MAGICAL_RPC_AUTH: USER_PASS
- MAGICAL_RPC_USER: admin
- MAGICAL_RPC_PASS: passw
- MAGICAL_RPC_URL: 127.0.0.1:18443
- MAGICAL_ELECTRUM_URL: tcp://127.0.0.1:60401
+ BDK_RPC_AUTH: USER_PASS
+ BDK_RPC_USER: admin
+ BDK_RPC_PASS: passw
+ BDK_RPC_URL: 127.0.0.1:18443
+ BDK_RPC_WALLET: bdk-test
+ BDK_ELECTRUM_URL: tcp://127.0.0.1:60401
steps:
- name: Checkout
uses: actions/checkout@v2
test-md-docs = ["electrum"]
[dev-dependencies]
-bdk-testutils = "^0.3"
-bdk-testutils-macros = "^0.3"
+bdk-testutils = { path = "./testutils"}
+bdk-testutils-macros = { path = "./testutils-macros"}
serial_test = "0.4"
lazy_static = "1.4"
env_logger = "0.7"
#!/usr/bin/env sh
echo "Starting bitcoin node."
-/root/bitcoind -regtest -server -daemon -fallbackfee=0.0002 -rpcuser=admin -rpcpassword=passw -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0 -blockfilterindex=1 -peerblockfilters=1
+/root/bitcoind -regtest -server -daemon -fallbackfee=0.0002 -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0 -blockfilterindex=1 -peerblockfilters=1
echo "Waiting for bitcoin node."
-until /root/bitcoin-cli -regtest -rpcuser=admin -rpcpassword=passw getblockchaininfo; do
+until /root/bitcoin-cli -regtest -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS getblockchaininfo; do
sleep 1
done
-/root/bitcoind -regtest -rpcuser=admin -rpcpassword=passw createwallet bdk-test
+/root/bitcoin-cli -regtest -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS createwallet $BDK_RPC_WALLET
echo "Generating 150 bitcoin blocks."
-ADDR=$(/root/bitcoin-cli -regtest -rpcuser=admin -rpcpassword=passw getnewaddress)
-/root/bitcoin-cli -regtest -rpcuser=admin -rpcpassword=passw generatetoaddress 150 $ADDR
+ADDR=$(/root/bitcoin-cli -regtest -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS -rpcwallet=$BDK_RPC_WALLET getnewaddress)
+/root/bitcoin-cli -regtest -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS generatetoaddress 150 $ADDR
echo "Starting electrs node."
nohup /root/electrs --network regtest --jsonrpc-import &
// TODO: we currently only support env vars, we could also parse a toml file
fn get_auth() -> Auth {
- match env::var("MAGICAL_RPC_AUTH").as_ref().map(String::as_ref) {
+ match env::var("BDK_RPC_AUTH").as_ref().map(String::as_ref) {
Ok("USER_PASS") => Auth::UserPass(
- env::var("MAGICAL_RPC_USER").unwrap(),
- env::var("MAGICAL_RPC_PASS").unwrap(),
+ env::var("BDK_RPC_USER").unwrap(),
+ env::var("BDK_RPC_PASS").unwrap(),
),
_ => Auth::CookieFile(PathBuf::from(
- env::var("MAGICAL_RPC_COOKIEFILE")
+ env::var("BDK_RPC_COOKIEFILE")
.unwrap_or("/home/user/.bitcoin/regtest/.cookie".to_string()),
)),
}
}
pub fn get_electrum_url() -> String {
- env::var("MAGICAL_ELECTRUM_URL").unwrap_or("tcp://127.0.0.1:50001".to_string())
+ env::var("BDK_ELECTRUM_URL").unwrap_or("tcp://127.0.0.1:50001".to_string())
}
pub struct TestClient {
impl TestClient {
pub fn new() -> Self {
- let url = env::var("MAGICAL_RPC_URL").unwrap_or("127.0.0.1:18443".to_string());
- let client = RpcClient::new(format!("http://{}", url), get_auth()).unwrap();
+ let url = env::var("BDK_RPC_URL").unwrap_or("127.0.0.1:18443".to_string());
+ let wallet = env::var("BDK_RPC_WALLET").unwrap_or("bdk-test".to_string());
+ let client =
+ RpcClient::new(format!("http://{}/wallet/{}", url, wallet), get_auth()).unwrap();
let electrum = ElectrumClient::new(&get_electrum_url()).unwrap();
TestClient { client, electrum }