summaryrefslogtreecommitdiff
path: root/app/sur/bitcoin.hoon
diff options
context:
space:
mode:
authorpolwex <polwex@sortug.com>2025-11-12 07:11:07 +0700
committerpolwex <polwex@sortug.com>2025-11-12 07:11:07 +0700
commit284ce9ce7d9f81e54e91f917329d48926487fbf4 (patch)
tree7a156986323fd799e1457c8b7663806e32b2af7d /app/sur/bitcoin.hoon
parent7305d67ff7f9e78b73326ef0e1f68a9613d34205 (diff)
fixes to engagement handling
Diffstat (limited to 'app/sur/bitcoin.hoon')
-rw-r--r--app/sur/bitcoin.hoon84
1 files changed, 84 insertions, 0 deletions
diff --git a/app/sur/bitcoin.hoon b/app/sur/bitcoin.hoon
new file mode 100644
index 0000000..4b83b5b
--- /dev/null
+++ b/app/sur/bitcoin.hoon
@@ -0,0 +1,84 @@
+:: sur/btc.hoon
+:: Utilities for working with BTC data types and transactions
+::
+:: chyg: whether account is (non-)change. 0 or 1
+:: bytc: "btc-byts" with dat cast to @ux
+|%
++$ network ?(%main %testnet %regtest)
++$ hexb [wid=@ dat=@ux] :: hex byts
++$ bits [wid=@ dat=@ub]
++$ xpub @ta
++$ address
+ $% [%base58 @uc]
+ [%bech32 cord]
+ ==
++$ fprint hexb
++$ bipt $?(%44 %49 %84)
++$ chyg $?(%0 %1)
++$ idx @ud
++$ hdkey [=fprint pubkey=hexb =network =bipt =chyg =idx]
++$ sats @ud
++$ vbytes @ud
++$ txid hexb
++$ utxo [pos=@ =txid height=@ value=sats recvd=(unit @da)]
+++ address-info
+ $: =address
+ confirmed-value=sats
+ unconfirmed-value=sats
+ utxos=(set utxo)
+ ==
+++ tx
+ |%
+ +$ data
+ $: is=(list input)
+ os=(list output)
+ locktime=@ud
+ nversion=@ud
+ segwit=(unit @ud)
+ ==
+ +$ val
+ $: =txid
+ pos=@ud
+ =address
+ value=sats
+ ==
+ :: included: whether tx is in the mempool or blockchain
+ ::
+ +$ info
+ $: included=?
+ =txid
+ confs=@ud
+ recvd=(unit @da)
+ inputs=(list val)
+ outputs=(list val)
+ ==
+ +$ input
+ $: =txid
+ pos=@ud
+ sequence=hexb
+ script-sig=(unit hexb)
+ pubkey=(unit hexb)
+ value=sats
+ ==
+ +$ output
+ $: script-pubkey=hexb
+ value=sats
+ ==
+ --
+++ psbt
+ |%
+ +$ base64 cord
+ +$ in [=utxo rawtx=hexb =hdkey]
+ +$ out [=address hk=(unit hdkey)]
+ +$ target $?(%input %output)
+ +$ keyval [key=hexb val=hexb]
+ +$ map (list keyval)
+ --
+++ ops
+ |%
+ ++ op-dup 118
+ ++ op-equalverify 136
+ ++ op-hash160 169
+ ++ op-checksig 172
+ --
+--