mirror of
https://github.com/urbit/shrub.git
synced 2024-12-24 20:47:27 +03:00
f6ff4f108b
This adds support for handling cases where the send-batch thread failed, mainly among them, a thread crash. One of the events that causes this behavior is a ver low gas price for this L1 transaction. Here we add support for manually bumping the price for such transaction, and for increasing the default fallback gas-price, together with discarding any malformed batch from the sending queue.
111 lines
2.2 KiB
Plaintext
111 lines
2.2 KiB
Plaintext
:: dice: structures for Azimuth L2 rollers
|
|
::
|
|
/+ naive, ethereum
|
|
::
|
|
|%
|
|
+$ owner [=proxy:naive =address:naive]
|
|
+$ owners (jug owner ship)
|
|
+$ sponsors (map ship [residents=(set ship) requests=(set ship)])
|
|
+$ history (map address:ethereum (tree hist-tx))
|
|
+$ net ?(%mainnet %ropsten %local %default)
|
|
+$ snap-state [%0 =id:block:jael nas=^state:naive =owners =sponsors]
|
|
::
|
|
+$ config
|
|
$% [%frequency frequency=@dr]
|
|
[%fallback gas=@ud]
|
|
[%setkey pk=@]
|
|
[%endpoint endpoint=@t =net]
|
|
[%resend-time time=@dr]
|
|
[%update-rate rate=@dr]
|
|
[%slice slice=@dr]
|
|
[%quota quota=@ud]
|
|
==
|
|
::
|
|
+$ indices
|
|
$: own=owners
|
|
spo=sponsors
|
|
==
|
|
::
|
|
+$ azimuth-config
|
|
$: refresh-rate=@dr
|
|
==
|
|
::
|
|
+$ roller-config
|
|
$: next-batch=time
|
|
frequency=@dr
|
|
resend-time=@dr
|
|
update-rate=@dr
|
|
contract=@ux
|
|
chain-id=@
|
|
slice=@dr
|
|
quota=@ud
|
|
==
|
|
::
|
|
+$ keccak @ux
|
|
::
|
|
+$ status
|
|
?(%unknown %pending %sending %confirmed %failed %cancelled)
|
|
::
|
|
+$ tx-status
|
|
$: =status
|
|
pointer=(unit l1-tx-pointer)
|
|
==
|
|
::
|
|
+$ l1-tx-pointer
|
|
$: =address:ethereum
|
|
nonce=@ud
|
|
==
|
|
::
|
|
+$ l2-tx
|
|
$? %transfer-point
|
|
%spawn
|
|
%configure-keys
|
|
%escape
|
|
%cancel-escape
|
|
%adopt
|
|
%reject
|
|
%detach
|
|
%set-management-proxy
|
|
%set-spawn-proxy
|
|
%set-transfer-proxy
|
|
==
|
|
::
|
|
+$ update
|
|
$% [%tx =pend-tx =status]
|
|
::
|
|
$: %point
|
|
=diff:naive
|
|
=ship
|
|
new=point:naive
|
|
old=(unit point:naive)
|
|
to=owner
|
|
from=(unit owner)
|
|
== ==
|
|
::
|
|
+$ hist-tx [p=time q=roll-tx]
|
|
+$ roll-tx [=ship =status hash=keccak type=l2-tx]
|
|
+$ pend-tx [force=? =address:naive =time =raw-tx:naive]
|
|
+$ send-tx [next-gas-price=@ud sent=? txs=(list raw-tx:naive)]
|
|
+$ part-tx
|
|
$% [%raw raw=octs]
|
|
[%don =tx:naive]
|
|
[%ful raw=octs =tx:naive] ::TODO redundant?
|
|
==
|
|
::
|
|
+$ rpc-send-roll
|
|
$: endpoint=@t
|
|
contract=address:ethereum
|
|
chain-id=@
|
|
pk=@
|
|
::
|
|
nonce=@ud
|
|
fallback-gas-price=@ud
|
|
next-gas-price=@ud
|
|
txs=(list raw-tx:naive)
|
|
==
|
|
::
|
|
+$ roller-data
|
|
[chain-id=@ =points:naive history=(tree hist-tx) =owners =sponsors]
|
|
::
|
|
--
|