Created
April 17, 2023 07:02
-
-
Save postspectacular/3d970e02570b7dfd32d03d43e1e7e3e0 to your computer and use it in GitHub Desktop.
Bubblemania lottery script
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import { parseCSVSimple } from "@thi.ng/csv"; | |
import { readText } from "@thi.ng/file-io"; | |
import { XsAdd, pickRandom } from "@thi.ng/random"; | |
import { split } from "@thi.ng/strings"; | |
import { | |
comp, | |
distinct, | |
map, | |
mapcat, | |
push, | |
repeatedly, | |
run, | |
take, | |
trace, | |
transduce, | |
} from "@thi.ng/transducers"; | |
const BASE_DIR = "bubblemania/dev"; | |
const RND = new XsAdd(0xdecafbad); | |
const NUM = 108; | |
// CSV row format: address,numtokens | |
const addresses = transduce( | |
comp( | |
mapcat((file) => split(readText(`${BASE_DIR}/${file}`))), | |
parseCSVSimple({ header: false, cols: [true] }), | |
map(([addr]) => addr) | |
), | |
push(), | |
// CSV files from: https://fxcollectors.xyz/ as of 2023-04-16T13:55Z | |
[ | |
"ascii-scape.csv", | |
"c-scape.csv", | |
"defrag1.csv", | |
"defrag2.csv", | |
"defrag3.csv", | |
"quasiflock.csv", | |
] | |
); | |
console.log(`loaded ${addresses.length} addresses...`); | |
console.log(`choosing ${NUM} unique:`); | |
// pick unique winners | |
run( | |
// composed transducer: | |
comp( | |
// distinct/unique values only | |
distinct(), | |
// max number of results | |
take(NUM), | |
// side effect: output to console | |
trace() | |
), | |
// an infinite sequence of random samples using seeded PRNG | |
repeatedly(() => pickRandom(addresses, RND)) | |
); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
loaded 1435 addresses... | |
choosing 108 unique: | |
tz1XmqF5gnTjgE6Cxu5CzaT5H7vXiFfihe95 | |
tz1VY543f4YJvbCp2QpgvspvRtP5ucQJi4oZ | |
tz1c7zSkZF4rJg6xtjhVJ49WQYFpRpGxWkJV | |
tz1aCn4HgS1s1MkdBpN644RLQbZdSqSbNu3P | |
tz1dWBh6nhVvEeica4rNhPENSXCuaxuD9LXh | |
tz2Pkr3QLWYxmJDk4EdpYqhPoUHvMaN25MXp | |
tz1Y9XuoJJqQgNxVVesix1RLvn2k94JxD92Q | |
tz1XEVbUyNd5RWZxJHSwVvcvnKbJVRay7zdB | |
tz1MFmLEzepEwK8Pbxtcyqz6BtBiM7b6jzQH | |
tz1Z1pDsbfuF7t6fHfbVxhjhouRemXuREpH5 | |
tz1NMvVB48fNzrG3rPZS58Eo1nSJ6p3RjRyz | |
tz1ikMAhZYa5yon9CTwPQQrcPCPfES2d8u7N | |
tz1hEuD8ecu6iDUQgW5wqHkqnroHZJJne4UT | |
tz1feMcGwjomdn1mRCpZh9pgjMkBZkRy7jEZ | |
tz1TndYkrigS6mQYV6nwRn42Ew9rZqqdVYK7 | |
tz1gigsw3HPNSjpRdaZ6QzTUckg48fopSAGj | |
tz1LBs6MJLsU38oDLjnmiTCBCA5bpnh17vEr | |
tz1PE415ckPNF9SD9VrxT2MgL8fpwXSk9F1k | |
tz1hSXo1U3DMHkPcG86BHKVSXDk9VTAPkzrf | |
tz1X4sxpgg5X6aag4Mf1TmdWTrDbx3jBFwyT | |
tz1TJeLZPhHFPfZqSFcxQrpbjU8C2SjwYnqF | |
tz1ZEoCxEKW6fPZv8LZrpu2N6DBZcCCqMS6v | |
tz1PaRsvHbYqW82KfH5YSVHuZmZRpJag1Xyg | |
tz1QSZmv3FkzeK89VuomzxSsb1B8FAseVNb6 | |
tz1g8NW3j9Dy7kyPBA2ZdKUictAcJHCETvV8 | |
tz1Zzbvo3oYCCn9AnMZ4S8ap3FKrSuUj1y55 | |
tz1PYVjdNTcb7i3vGjf3G2eKzG91rKyYmhGp | |
tz1dDSuGcw1YeARWpKaXt3Vp4htD8szbPCdY | |
tz1cULHeKAcfTUfwGRgrvyXvZyW3kRayfLg5 | |
tz1Xwa4QkJhg89GWeXP3Z67gDLvYe4DzCK8J | |
tz2UpRogzuwpqwAeUxsG8hFh2Wfj6JRmfTxv | |
tz1VrXfxvKDt6r59p4jDBTGavQt1XCgi9a6Y | |
tz1gBXG9fg8RMDH69KfKqwoTH5sFDmzt5yzm | |
tz1W4KDcPF9QUWow7jUD7v1TeyC2Sq9HRkQm | |
tz1cbhmVZuFTKHcACSFpg5ER1bGVGkanhrbW | |
tz1MwgPYtc8uccvYgEH4gixazzLLgayRipze | |
tz1Vd1H2BP3pg65KM6cgWzNSgWJK4eYqaTpP | |
tz1QSxDeUy6YQZj9Q9HZ5couvThGX8Qu7RzY | |
tz1cWmjFkZzKWsuxKvrkLeS2tEVgzfVVC73b | |
tz1bGbwHUDw5JF16scd8xavRuhVocxDeVN8V | |
tz1QQSsCrVfUC2MvMnkMqP847YaHiXfj9Q4q | |
tz1iCi9BdMEE36L8DjaD9dQjwqLnXFALHXeZ | |
tz1ZVFxUi2J2YitdsaH2VWJkoG9ZieCEzKxf | |
tz1iCG8Q6HdpoFhpRvHKkRqFJte9Fn5Bm7gY | |
tz1N41FtehodrnPFjHPp2iFpCa7tSPFAquS5 | |
tz1YxAN3rn85UQxevF7w78v66xHnSQQByo2j | |
tz1bVngQWmvDEaWUbmaNkYqxk4fgeDSfm25H | |
tz1ix73da1BjjkwVEDLw5eonwbsvQ2LmVkL7 | |
tz1Ty8m4fYPwP5F6RKdEm6KjvnDb7GGHoFZY | |
tz1MiouwFnmidkyQfWJhn4LfQjU8WtaVkXBz | |
tz1MeHjxmikZDV5JDUjrrr8NTnpKDYMiCZ22 | |
tz1U9ZoiU5HRvQD29kjK1roSUiLDamMrjDJ9 | |
tz1ZR5JKcHzU8Xn5m3w3pMGHiYnHwQNPDkSm | |
tz1Trg6npgauME1Nb8zkkv7xv7sBdboNUFPP | |
tz1fNGnLA9icwx1GRMfxnNku6F1RNpt8Vdeq | |
tz1WpEc471abF9hJHxhZ6YMEYaEysKsvenJD | |
tz1gQyvkV8ofzcRjUhancM47wK8MuHz6Thzf | |
tz2VD9n4epuHvd1QH46iwBACyPnvHtUqAJG7 | |
tz1hzYoD8rdHurkCqJ1mHre1EN7DDZw7XecH | |
tz1TtjfHvauZqR5BexqbvVSVvc9XSULsCqds | |
tz1cyfd8YLyDRBAS7uWYZHXLKnLwpPzoYbmY | |
tz1d9YQsTwYGwjp7eaL98TJpR5SDunDcGszo | |
tz1cS7jMUDbHGjzeyJ9tQMkXjWoYvc3qK555 | |
tz1hbMfZUp8rXXcc82a2aB962JoiGJCebNdF | |
tz1PeYqYxGSWHFTkoJfJ2gBe9Z35D2826QMN | |
tz1UFjMLHAxZuBWwUq1Y5PM8fmYrJHNSgNMw | |
tz1UcXyKMh5CB561T7KVVW5HsSfrRGj1DQmT | |
tz1Roq6end2LFtkpGrmuyRZH82xsWfaRCat1 | |
tz1RxdMQhHoQKxmtwqEC8h5yLHVghHdEPqEk | |
tz1c9vgUPbLW7Hgw3GE1Hshh5VGtRBJ24vCY | |
tz1X4WNCUDbNpLv1bkATcrLUUNDhkVRXAuyh | |
tz1fGiwg6RdPFw4MCo5MJxn3VMBjJd3xXhmS | |
tz1PZ5ahr8JFLmuvMFzNj72odJ4Ei462ZUip | |
tz1Z9s59QUmYTs4NKf48uHhcgeY5wimpFWiX | |
tz1XBCXNbnBXXqk6tfjqrXoHeMZ922vztNr3 | |
tz1bmPatnVaBa8brRzQ15i4vWzcBtdwJAkbn | |
tz1cujPvmYdXLoB3JavH88Ypo5X9HPu6Dxfn | |
tz1LtqGNYcjALxQjDRFAT8cMZHQBrDHxNjFo | |
tz1Sqhrj49cW9aTuwQrDa4mycnA7n5dDd7rF | |
tz1MxbRDWkwrkkkUDqSbLDKQfB5sbUVoSEnp | |
tz1VYfWeGazFmBjtAqcfEnRRs5qp8R8YviS6 | |
tz1TLASCmuA2j9QetwZrXoS3H85WHvNNfXJL | |
tz1WueXAN4aYR1HjZDpEVCVmVcwVaF7pZPw8 | |
tz1fiKY8mPZipHUvxtaHHNGEtVTCJyhWoRE9 | |
tz1ehhHuAQXrdXukswG2PP7TnptsEfHDxbZK | |
tz1M2BxFFs3mqQecHE576Xy1mJaMAqSaNFn7 | |
tz1Ruop15fjNSfKQx8APjKJgU3ZiEM6887me | |
tz1X1ZGcEHn57qnTi3YmAZ2LF5XwZm7qQPwT | |
tz1fo6yuwzjLDnRh5j4bhC9rPMoFWKJTs8ta | |
tz1TC4jHjVn5M2rwtrxYJJ91i9A3Uou3d5Bi | |
tz1PoDdN2oyRyF6DA73zTWAWYhNL4UGr3Egj | |
tz1RpeazvHnwwzny1LsQXd23bZgWqKR9cGdS | |
tz1bPMztWzs449CuEmVTY3BprhHMtm4NUQPJ | |
tz1QgjmhrUD3X7kgS9mMHbUz4cS6uDiFGhAU | |
tz1YHaPUA5eTJq9NAJcDrZRsXhaDxuGsDNYd | |
tz1WAVHAc2SP6MSTP5UEPv9J2jwLHjwNpLQe | |
tz1eeATpjgjcoVcAL9dpjUed94tzmnHyiDHT | |
tz1eiigTzhNQx4LCC11ced993eQS7kDW13gc | |
tz1SR5dqLZLUTWVtRMEhE2hovoos2Gb7bmPh | |
tz1hkF3v99zVxna9ChZzcPdG2iaFGbBESym8 | |
tz1VQVTRYijbXCZQ9dukcRhHbVFYepKZwhAR | |
tz1cdowmr8kiWZpN5cESMw19bx3Gamupvkji | |
tz1aXGyiGrRMBsax1aTEid7wBCce1YFvvp1q | |
tz1Zn99fL2u22sdioKZs3GbV2YRP12ktsiDE | |
tz1VZrkBPdGjdS1mBHnr6Msu61GszRMGXFYf | |
tz1URh4MsE1Ld6uvM5ADTbB5n2kXxJwx1BGx | |
tz1PkLH6efZifS8NtKiZBWFWgDoHDmDwN9f1 | |
tz1X3YaY6TW2s34Gao1jQdcEc7LRqyqfDtzf |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment