shrub/sur/btc-wallet-hook.hoon

79 lines
2.5 KiB
Plaintext
Raw Normal View History

2020-11-09 15:29:30 +03:00
/- *btc, bws=btc-wallet-store, bp=btc-provider
2020-10-24 19:13:36 +03:00
|%
2020-11-28 10:25:32 +03:00
:: btc-state: state from the provider; t is last update time
2020-11-04 16:55:47 +03:00
:: req-id: hash of [xpub chyg idx]
2020-11-28 10:25:32 +03:00
:: reqs: lookup of req-id -> requests from wallet-store+blockcount
:: blockcount included so that we only request address info when
:: there's a newer block, in the case of addresses we are cooking
2020-11-17 11:25:50 +03:00
::
2020-12-07 11:59:30 +03:00
:: payment: a payment expected from another ship
2020-11-17 11:25:50 +03:00
:: - address: address generated for this payment
2020-11-20 14:58:27 +03:00
:: piym: incoming payments. Stores all ship moons under their planet.
2020-12-07 11:59:30 +03:00
:: - num-fam: total payments (addresses) outstanding for ship and its moons
:: pend-piym: incoming payment txs that peer says they have broadcast
2020-12-06 14:46:32 +03:00
:: poym: outgoing payments. One at a time: new replaces old
2020-11-04 16:55:47 +03:00
::
2020-12-03 12:47:54 +03:00
+$ btc-state [block=@ud fee=sats t=@da]
+$ reqs (map req-id:bp req=request:bws)
2020-11-17 11:25:50 +03:00
::
2020-12-16 15:40:24 +03:00
+$ payment [pend=(unit txid) =xpub =address payer=ship value=sats]
2020-12-07 11:59:30 +03:00
+$ piym [ps=(map ship payment) num-fam=(map ship @ud)]
2020-12-16 15:40:24 +03:00
+$ pend-piym (map txid payment)
2020-12-06 14:46:32 +03:00
+$ poym (unit txbu:bws)
2020-11-26 12:38:30 +03:00
:: req-pay-address: request a payment address from another ship
2020-12-07 11:59:30 +03:00
:: - target of action is local ship
2020-11-26 12:38:30 +03:00
:: gen-pay-address: generate a payment address from our ship to another
2020-12-06 14:46:32 +03:00
:: ret-pay-address: give an address to a payer who requested it
2020-12-07 16:27:26 +03:00
:: broadcast-tx: broadcast a signed-psbt, must be current poym
:: expect-payment: tell another ship that we're paying a previously requested address
2020-12-07 23:31:09 +03:00
:: - vout-n is the index of the output that has value
2020-11-16 20:47:00 +03:00
::
2020-10-24 19:13:36 +03:00
+$ action
2020-12-21 12:50:33 +03:00
$% settings
local
peer
==
+$ settings
2020-11-04 16:55:47 +03:00
$% [%set-provider provider=ship]
2020-11-17 11:25:50 +03:00
[%set-default-wallet ~]
2020-11-26 12:38:30 +03:00
[%clear-poym ~]
2020-11-09 18:34:29 +03:00
[%force-retry ~]
2020-10-24 19:13:36 +03:00
==
2020-12-21 12:50:33 +03:00
+$ local
$% [%req-pay-address payee=ship value=sats feyb=(unit sats)]
[%broadcast-tx signed=rawtx]
2020-12-23 12:26:42 +03:00
:: from wallet-store %generate-address
[%add-piym =xpub =address payer=ship value=sats]
:: wallet-store %generate-txbu
[%add-poym =txbu:bws]
:: from %raw-tx
[%add-poym-txi =rawtx]
:: from %tx-info
[%finish-piym =info:tx]
[%finish-poym =info:tx]
:: from %broadcast-tx
[%fail-broadcast-tx =txid] :: clear poym; remove from wallet-history?
[%succeed-broadcast-tx =txid] :: p
2020-12-21 12:50:33 +03:00
==
+$ peer
$% [%gen-pay-address value=sats]
[%ret-pay-address =address payer=ship value=sats]
[%expect-payment =txid value=sats]
==
::
::
2020-12-15 19:05:50 +03:00
+$ update
$% request
error
==
::
2020-11-20 18:57:19 +03:00
+$ request
2020-11-22 15:57:25 +03:00
$% [%sign-tx txbu:bws]
2020-11-20 18:57:19 +03:00
==
2020-12-15 19:05:50 +03:00
::
+$ error
$% [%broadcast-tx-mismatch-poym signed=rawtx]
[%broadcast-tx-spent-utxos =txid]
==
2020-10-24 19:13:36 +03:00
--