hey! it's magically in front of me! some dissocaited part of me helped me out. t's 16:43 . i wonder what file this is. ooooh same file. cmds.py . hey! that means i can add it as a cli command again! 16:44 . -> we'll need whatever is passed as setup_bitcoin to the bitcoin func. 16:47 OMIGOD I IMPLEMENTED THE COMMAND FUNCTION omigod. now: to make it callable. also everything i make has about 7-12x as many bugs as expected these months. i think i might have palsy. dunno. new doctor this week. 16:48 -> looks like command is spawned from args.py 16:51 i'm handling a strong inhibition around lookiing up documentation on something. i've now forgotten what it is. haven't started looking up yet. argparse: if there is a bytes metavar type, or if i'll be doing string conversion myself 16:51 16:52 looks like it makes the most sense to load a str and parse it myself 16:58 yay! i made mutations, stuff. i have a draft. i have left bits unimplemented to handly my dwindling working memory. yay saved! i want to review briefly to see if something i left unimplemented is obvious. 16:59. it was good i did that. the command wasn't being handed off and it would have been hard to find. 17:00 i'm gonna try passing --help to it and see if it spews my options out! i like to install dev packages with `pip3 install .` from the dev directory, but i want to learn to stop because pip always contacts the internet needlessly. 17:01 i checked ls -lrt ~/.local/bin and it looks like its binary is called `ots` NOOO BUGS. Bugs are our friends. We learn from and protect them. How can I honor the life in this bug? IndentationError: unexpected indent the bug is saying that i am not paying enough attention to how my hands move and what i see after they do, maybe. dunno =/ `python3 setup.py install --user` 17:02 same error somewhere else. did not give the bug sufficient honor. 17:03 oh no it's the same place. ummm k setup.py install --user didn't overwrite pip's /bin/ file. 17:04 mutually exclusive arguments must be optional. blargdyblargdyblarg y'know i've read about argparse many itmes over the years. i should invest some time in making cliff notes of my own experiences. sometimes i chat with my therapist about how i will be an expert when i have dementia. it will just be like the same thing, i will know exactly how to handle it. you basically have to wait until something makes sense. blarg now i'm laughing again grr. 17:05 `required` is a boolean parameter passed to `add_argument`. so indeed. 17:06 yayy installing. i am still outside !!! i have not changed my name to undiscussed horrific abuse. yet ! uhhhh maybe a very bad time to share that bit unsure. 17:07 'required' is an invalid argument for positionals. it's positional. i can copy format from a non-positional argument in same file. i remembered a little :) 17:08 that you pass -- to non-positional arguments. it was familiar when i saw it ! yayyy --help confetti everywhere! fake confetti. no messes. 17:09 $ ots opreturn --help usage: ots opreturn [-h] [-8 UTF8 | -x HEX] optional arguments: -h, --help show this help message and exit -8 UTF8, --utf8 UTF8 utf8 OP_RETURN data -x HEX, --hex HEX hex OP_RETURN data yayyyy blargh. 'setup bitcoin' is not defined oh i just remembered. it outputs the block hash but not the transaction hash. tx hash is good identifier, gonna spend some time see if i can add it. 17:10 17:11 oooh it already outputs the txid while waiting for it to confirm! great! let's find the next bug 17:12 ok. for bitcoin it basically just uses a local node. maybe the calendar servers can do this too, dunno, would have to check their protocol. so, i'll save this to a github fork and work on syncing a node. i rarely sync a node to completion. oh hey maybe it oculd output the raw transaction for users to publish themselves !!! i dunno! save first. think later. 17:13 17:15 prototype opreturn code uploaded to https://github.com/xloem/opentimestamps-client in branch opreturn