get_available_addresses

 1#!/usr/bin/ruby
 2# frozen_string_literal: true
 3
 4require "redis"
 5require "dhall"
 6require "set"
 7require_relative "../lib/redis_addresses"
 8require_relative "../lib/electrum"
 9
10config =
11	Dhall::Coder
12	.new(safe: Dhall::Coder::JSON_LIKE + [Symbol, Proc])
13	.load(ARGV[0], transform_keys: :to_sym)
14
15redis = Redis.new
16electrum = Electrum.new(**config)
17
18addresses = Set.new(electrum.listaddresses)
19
20RedisAddresses.new(redis, config[:currency]).each_user do |_, addrs|
21	addresses.subtract(addrs)
22end
23
24unless addresses.empty?
25	redis.sadd("jmp_available_btc_addresses", addresses.to_a)
26end