mirror of
https://github.com/urbit/shrub.git
synced 2024-12-19 16:51:42 +03:00
zuse installer
This commit is contained in:
parent
70d5d70689
commit
3a98672127
18
PATCH.md
Normal file
18
PATCH.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
zuze patch:
|
||||||
|
```hoon
|
||||||
|
++ decompress-point
|
||||||
|
|= dat=@
|
||||||
|
^- pont
|
||||||
|
:: ~& "custom decompress point"
|
||||||
|
=+ x=(end 3 w dat)
|
||||||
|
?> =(3 (mod ^p 4))
|
||||||
|
=+ y=(exp.p (div +(^p) 4) :(sum.p (exp.p 3 x) (pro.p a x) b))
|
||||||
|
=+ s=(rsh 3 32 dat)
|
||||||
|
~| [`@ux`s `@ux`dat]
|
||||||
|
?> |(=(2 s) =(3 s))
|
||||||
|
:: check parity
|
||||||
|
::
|
||||||
|
=? y !=((sub s 2) (mod y 2))
|
||||||
|
(sub ^p y)
|
||||||
|
[x y]
|
||||||
|
```
|
@ -100,18 +100,38 @@ Above tests w 2 outputs, total fees with 2 inputs of 27.500. Gives:
|
|||||||
2. Inputs 0 and 3
|
2. Inputs 0 and 3
|
||||||
|
|
||||||
## Make a full TXBU
|
## Make a full TXBU
|
||||||
Provider is `~zod`, `~dopzod` is a client.
|
Provider is `~zod`, `~dopzod` is a client. Use the xpub from PRIVATE.md to have a balance
|
||||||
|
|
||||||
|
### setup
|
||||||
On `~zod`:
|
On `~zod`:
|
||||||
```
|
```
|
||||||
|
|start %btc-provider
|
||||||
|
|start %btc-wallet-store
|
||||||
|
|start %btc-wallet-hook
|
||||||
:btc-provider|command [%set-credentials api-url='http://localhost:50002']
|
:btc-provider|command [%set-credentials api-url='http://localhost:50002']
|
||||||
:btc-provider|command [%whitelist-clients `(set ship)`(sy ~[~dopzod])]
|
:btc-provider|command [%whitelist-clients `(set ship)`(sy ~[~dopzod])]
|
||||||
|
=xpubzod 'zpub6rFR7y4Q2AijBEqTUquhVz398htDFrtymD9xYYfG1m4wAcvPhXNfE3EfH1r1ADqtfSdVCToUG868RvUUkgDKf31mGDtKsAYz2oz2AGutZYs'
|
||||||
|
:btc-wallet-hook|action [%set-provider ~zod]
|
||||||
|
:btc-wallet-store|action [%add-wallet xpubzod ~ [~ 20] [~ 6]]
|
||||||
```
|
```
|
||||||
|
|
||||||
on `~dopzod`:
|
on `~dopzod`:
|
||||||
```
|
```
|
||||||
|
=xpubp PRIVATE.md
|
||||||
|
|
||||||
|
|start %btc-wallet-store
|
||||||
|
|start %btc-wallet-hook
|
||||||
:btc-wallet-hook|action [%set-provider ~zod]
|
:btc-wallet-hook|action [%set-provider ~zod]
|
||||||
|
:btc-wallet-store|action [%add-wallet xpubp ~ [~ 20] [~ 6]]
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### request address
|
||||||
|
on `~dopzod`:
|
||||||
|
```
|
||||||
|
:btc-wallet-hook|action [%req-pay-address payee=~zod value=2.000 [~ 10]]
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## scrys
|
## scrys
|
||||||
```
|
```
|
||||||
.^((list @t) %gx /=btc-wallet-store=/scanned/noun)
|
.^((list @t) %gx /=btc-wallet-store=/scanned/noun)
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
==
|
==
|
||||||
:: provider: maybe ship if provider is set
|
:: provider: maybe ship if provider is set
|
||||||
:: moon-limit: how many addresses a ship and its moons can request in piym
|
:: moon-limit: how many addresses a ship and its moons can request in piym
|
||||||
|
:: feybs: fee/byte in sats for a given ship payee
|
||||||
:: piym/poym-watch: listen to btc-wallet-store for address updates; update payment info
|
:: piym/poym-watch: listen to btc-wallet-store for address updates; update payment info
|
||||||
::
|
::
|
||||||
+$ state-0
|
+$ state-0
|
||||||
@ -32,6 +33,7 @@
|
|||||||
=btc-state
|
=btc-state
|
||||||
def-wallet=(unit xpub)
|
def-wallet=(unit xpub)
|
||||||
moon-limit=@ud
|
moon-limit=@ud
|
||||||
|
feybs=(map ship sats)
|
||||||
=pend-addr
|
=pend-addr
|
||||||
=piym
|
=piym
|
||||||
poym=(unit txbu:bws)
|
poym=(unit txbu:bws)
|
||||||
@ -90,6 +92,7 @@
|
|||||||
^- (quip card _this)
|
^- (quip card _this)
|
||||||
?+ -.sign (on-agent:def wire sign)
|
?+ -.sign (on-agent:def wire sign)
|
||||||
%kick
|
%kick
|
||||||
|
~& >>> "kicked from provider {<src.bowl>}"
|
||||||
?~ provider `this
|
?~ provider `this
|
||||||
?: ?& ?=(%set-provider -.wire)
|
?: ?& ?=(%set-provider -.wire)
|
||||||
=(host.u.provider src.bowl)
|
=(host.u.provider src.bowl)
|
||||||
@ -138,28 +141,41 @@
|
|||||||
::
|
::
|
||||||
%req-pay-address
|
%req-pay-address
|
||||||
:: TODO: add whitelisting here instead of comet block
|
:: TODO: add whitelisting here instead of comet block
|
||||||
:: can't request payment address if poym already building a tx
|
:: overwrites any payment being built currently
|
||||||
:: can't pay yourself; comets can't pay (could spam requests)
|
:: can't pay yourself; comets can't pay (could spam requests)
|
||||||
:: forwards poke to payee if payee isn't us
|
:: forwards poke to payee if payee isn't us
|
||||||
:: wire is /payer/value/timestamp
|
:: wire is /payer/value/timestamp
|
||||||
::
|
::
|
||||||
~| "Can't pay ourselves; can't pay if poym full; no comets"
|
~| "Can't pay ourselves; no comets"
|
||||||
?< =(src.bowl payee.act)
|
?< =(src.bowl payee.act)
|
||||||
?< ?&(=(src.bowl our.bowl) ?=(^ poym))
|
?< ?=(%pawn (clan:title payee.act))
|
||||||
?< ?=(%pawn (clan:title src.bowl))
|
=+ feyb=?~(feyb.act fee.btc-state u.feyb.act)
|
||||||
|
=> .(poym ~, feybs (~(put by feybs) payee.act feyb))
|
||||||
:_ state
|
:_ state
|
||||||
?. =(payee.act our.bowl)
|
~[(poke-wallet-hook payee.act [%gen-pay-address value.act])]
|
||||||
~[(poke-wallet-hook payee.act act)]
|
::
|
||||||
|
%gen-pay-address
|
||||||
|
~| "Can't pay ourselves; no comets"
|
||||||
|
?< =(src.bowl our.bowl)
|
||||||
|
?< ?=(%pawn (clan:title src.bowl))
|
||||||
?~ def-wallet ~|("btc-wallet-hook: no def-wallet set" !!)
|
?~ def-wallet ~|("btc-wallet-hook: no def-wallet set" !!)
|
||||||
~[(poke-wallet-store [%generate-address u.def-wallet %0 `[src.bowl value.act]])]
|
:_ state
|
||||||
|
:~ %- poke-wallet-store
|
||||||
|
[%generate-address u.def-wallet %0 `[src.bowl value.act]]
|
||||||
|
==
|
||||||
::
|
::
|
||||||
%ret-pay-address
|
%ret-pay-address
|
||||||
|
?: =(src.bowl our.bowl) ~|("Can't pay ourselves" !!)
|
||||||
?~ def-wallet ~|("btc-wallet-hook: no def-wallet set" !!)
|
?~ def-wallet ~|("btc-wallet-hook: no def-wallet set" !!)
|
||||||
|
=+ feyb=(~(gut by feybs) src.bowl fee.btc-state)
|
||||||
?> =(payer.act our.bowl)
|
?> =(payer.act our.bowl)
|
||||||
:_ state
|
:_ state
|
||||||
:~ %- poke-wallet-store
|
:~ %- poke-wallet-store
|
||||||
[%generate-txbu u.def-wallet `src.bowl fee.btc-state ~[[address.act value.act]]]
|
[%generate-txbu u.def-wallet `src.bowl feyb ~[[address.act value.act]]]
|
||||||
==
|
==
|
||||||
|
::
|
||||||
|
%clear-poym
|
||||||
|
`state(poym ~)
|
||||||
::
|
::
|
||||||
%force-retry
|
%force-retry
|
||||||
[retry-pend-addr state]
|
[retry-pend-addr state]
|
||||||
@ -201,7 +217,7 @@
|
|||||||
==
|
==
|
||||||
::
|
::
|
||||||
%raw-tx
|
%raw-tx
|
||||||
?~ poym ~&(>> "btc-wallet-hook: %raw-tx: poym is empty" `state)
|
?~ poym `state
|
||||||
=. txis.u.poym (update-poym-txis txis.u.poym +.body.p.upd)
|
=. txis.u.poym (update-poym-txis txis.u.poym +.body.p.upd)
|
||||||
:_ state
|
:_ state
|
||||||
?:(poym-ready ~[(send-sign-tx u.poym)] ~)
|
?:(poym-ready ~[(send-sign-tx u.poym)] ~)
|
||||||
@ -217,7 +233,6 @@
|
|||||||
?~ provider ~
|
?~ provider ~
|
||||||
?: provider-connected
|
?: provider-connected
|
||||||
~[(get-address-info ri host.u.provider a.req)]
|
~[(get-address-info ri host.u.provider a.req)]
|
||||||
~& > "provider not connected"
|
|
||||||
~
|
~
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
@ -230,8 +245,8 @@
|
|||||||
::
|
::
|
||||||
?~ meta.upd ~&(> address.upd `state)
|
?~ meta.upd ~&(> address.upd `state)
|
||||||
=/ [payer=ship value=sats] u.meta.upd
|
=/ [payer=ship value=sats] u.meta.upd
|
||||||
:- ~[(poke-wallet-hook payer [%ret-pay-address address.upd payer value])]
|
:_ (update-piym address.upd u.meta.upd)
|
||||||
(update-piym address.upd u.meta.upd)
|
~[(poke-wallet-hook payer [%ret-pay-address address.upd payer value])]
|
||||||
::
|
::
|
||||||
%generate-txbu
|
%generate-txbu
|
||||||
:: txbus can potentially use the same UTXO inputs, so if another payment
|
:: txbus can potentially use the same UTXO inputs, so if another payment
|
||||||
|
@ -113,7 +113,7 @@
|
|||||||
(update-address +.act)
|
(update-address +.act)
|
||||||
::
|
::
|
||||||
%generate-address
|
%generate-address
|
||||||
=/ uw=(unit walt) (~(get by walts) xpub.act)
|
=+ uw=(~(get by walts) xpub.act)
|
||||||
?~ uw
|
?~ uw
|
||||||
~|("btc-wallet-store: non-existent xpub" !!)
|
~|("btc-wallet-store: non-existent xpub" !!)
|
||||||
=/ [a=address:btc w=walt]
|
=/ [a=address:btc w=walt]
|
||||||
@ -122,11 +122,11 @@
|
|||||||
~[(send-update [%generate-address a meta.act])]
|
~[(send-update [%generate-address a meta.act])]
|
||||||
::
|
::
|
||||||
%generate-txbu
|
%generate-txbu
|
||||||
=/ uw=(unit walt) (~(get by walts) xpub.act)
|
=+ w=(~(get by walts) xpub.act)
|
||||||
?~ uw ~&(>>> "btc-wallet-store: non-existent xpub" `state)
|
?~ w ~&(>>> "btc-wallet-store: non-existent xpub" `state)
|
||||||
=/ t=(unit txbu)
|
=/ t=(unit txbu)
|
||||||
%~ select-utxos sut
|
%~ select-utxos sut
|
||||||
[u.uw eny.bowl payee.act feyb.act txos.act]
|
[u.w eny.bowl payee.act feyb.act txos.act]
|
||||||
?~ t ~&(>>> "btc-wallet-store: insufficient balance" `state)
|
?~ t ~&(>>> "btc-wallet-store: insufficient balance" `state)
|
||||||
:_ state
|
:_ state
|
||||||
~[(send-update [%generate-txbu xpub.act u.t])]
|
~[(send-update [%generate-txbu xpub.act u.t])]
|
||||||
|
11
install-zuse.sh
Executable file
11
install-zuse.sh
Executable file
@ -0,0 +1,11 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
usage() { printf "Usage: $0 URBIT_PIER_DIRECTORY \n" 1>&2; exit 1; }
|
||||||
|
|
||||||
|
if [ $# -eq 0 ]; then
|
||||||
|
usage
|
||||||
|
exit 2
|
||||||
|
fi
|
||||||
|
PIER=$1
|
||||||
|
|
||||||
|
cp sys/zuse.hoon $PIER/
|
||||||
|
echo "zuse copied"
|
@ -13,8 +13,8 @@
|
|||||||
|= =^txbu
|
|= =^txbu
|
||||||
^- json
|
^- json
|
||||||
%- pairs
|
%- pairs
|
||||||
:~ [%inputs ~]
|
:~ :: [%inputs [%a (turn txis.txbu txi)]]
|
||||||
['associatedKeysets' s+'hi']
|
['associatedKeysets' [%a (turn txis.txbu |=(=txi (key key.txi)))]]
|
||||||
['changePath' s+'hi']
|
['changePath' s+'hi']
|
||||||
['outputScriptHex' s+'hi']
|
['outputScriptHex' s+'hi']
|
||||||
['lockTime' s+'hi']
|
['lockTime' s+'hi']
|
||||||
@ -24,7 +24,26 @@
|
|||||||
==
|
==
|
||||||
:: TODO inputs, keysets, changeppath, outputscripthex, locktime, sigHashType, segwit, initialTimestamp
|
:: TODO inputs, keysets, changeppath, outputscripthex, locktime, sigHashType, segwit, initialTimestamp
|
||||||
:: , additionals ("bech32")
|
:: , additionals ("bech32")
|
||||||
:: TODO: use 'pairs' at the top level
|
++ txi
|
||||||
|
|= =^txi ^- json
|
||||||
|
?> ?=(^ ur.txi)
|
||||||
|
:- %a
|
||||||
|
:~ s+(en:base16:mimes:html u.ur.txi)
|
||||||
|
n+pos.utxo.txi
|
||||||
|
==
|
||||||
|
++ key
|
||||||
|
|= =^key ^- json
|
||||||
|
:- %s
|
||||||
|
%^ cat 3 'm/'
|
||||||
|
%^ cat 3
|
||||||
|
?- bipt.key
|
||||||
|
%bip44 '44'
|
||||||
|
%bip49 '49'
|
||||||
|
%bip84 '84'
|
||||||
|
==
|
||||||
|
%^ cat 3 '/0\'/0\'/'
|
||||||
|
%^ cat 3 ?:(=(%0 chyg.key) '0/' '1/')
|
||||||
|
(crip ((d-co:co 0) idx.key))
|
||||||
--
|
--
|
||||||
::
|
::
|
||||||
++ defaults
|
++ defaults
|
||||||
@ -143,11 +162,11 @@
|
|||||||
::
|
::
|
||||||
++ select-utxos
|
++ select-utxos
|
||||||
|^ ^- (unit =txbu)
|
|^ ^- (unit =txbu)
|
||||||
=/ uis=(unit (list input))
|
=/ is=(unit (list input))
|
||||||
%- single-random-draw
|
%- single-random-draw
|
||||||
%- zing
|
%- zing
|
||||||
(turn ~(val by wach.w) to-inputs)
|
(turn ~(val by wach.w) to-inputs)
|
||||||
?~(uis ~ `(inputs-to-txbu u.uis))
|
?~(is ~ `(inputs-to-txbu u.is))
|
||||||
::
|
::
|
||||||
++ to-inputs
|
++ to-inputs
|
||||||
|= =addi ^- (list input)
|
|= =addi ^- (list input)
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
:: piym: incoming payments. Stores all ship moons under their planet.
|
:: piym: incoming payments. Stores all ship moons under their planet.
|
||||||
:: piym-watch/poym-watch:
|
:: piym-watch/poym-watch:
|
||||||
:: let us link an address back to its incoming/outgoing payment
|
:: let us link an address back to its incoming/outgoing payment
|
||||||
:: checked when address updates come from btc-wallet-store
|
:: checked when address updates come from btc-wallet-store
|
||||||
::
|
::
|
||||||
+$ btc-state [blockcount=@ud fee=sats t=@da]
|
+$ btc-state [blockcount=@ud fee=sats t=@da]
|
||||||
+$ pend-addr (map req-id:bp request:bws)
|
+$ pend-addr (map req-id:bp request:bws)
|
||||||
@ -18,12 +18,16 @@
|
|||||||
+$ piym (jar ship payment)
|
+$ piym (jar ship payment)
|
||||||
+$ piym-watch (map address ship)
|
+$ piym-watch (map address ship)
|
||||||
+$ poym-watch (map address ship)
|
+$ poym-watch (map address ship)
|
||||||
|
:: req-pay-address: request a payment address from another ship
|
||||||
|
:: gen-pay-address: generate a payment address from our ship to another
|
||||||
::
|
::
|
||||||
+$ action
|
+$ action
|
||||||
$% [%set-provider provider=ship]
|
$% [%set-provider provider=ship]
|
||||||
[%set-default-wallet ~]
|
[%set-default-wallet ~]
|
||||||
[%req-pay-address payee=ship value=sats]
|
[%req-pay-address payee=ship value=sats feyb=(unit sats)]
|
||||||
|
[%gen-pay-address value=sats]
|
||||||
[%ret-pay-address =address payer=ship value=sats]
|
[%ret-pay-address =address payer=ship value=sats]
|
||||||
|
[%clear-poym ~]
|
||||||
[%force-retry ~]
|
[%force-retry ~]
|
||||||
==
|
==
|
||||||
+$ request
|
+$ request
|
||||||
|
134
sys/zuse.hoon
134
sys/zuse.hoon
@ -367,7 +367,7 @@
|
|||||||
++ pairs
|
++ pairs
|
||||||
%+ cook
|
%+ cook
|
||||||
~(gas by *(map @t @t))
|
~(gas by *(map @t @t))
|
||||||
%+ more (ifix [. .]:(star ace) mic)
|
%+ most (ifix [. .]:(star ace) mic)
|
||||||
;~(plug token ;~(pose ;~(pfix tis value) (easy '')))
|
;~(plug token ;~(pose ;~(pfix tis value) (easy '')))
|
||||||
::
|
::
|
||||||
++ value
|
++ value
|
||||||
@ -378,16 +378,16 @@
|
|||||||
::NOTE this is ptok:de-purl:html, but can't access that here
|
::NOTE this is ptok:de-purl:html, but can't access that here
|
||||||
%- plus
|
%- plus
|
||||||
;~ pose
|
;~ pose
|
||||||
aln zap hax bus cen pad say tar lus
|
aln zap hax buc cen pam soq tar lus
|
||||||
hep dot ket cab tec bar sig
|
hep dot ket cab tic bar sig
|
||||||
==
|
==
|
||||||
::
|
::
|
||||||
++ quoted-string :: 7230 quoted string
|
++ quoted-string :: 7230 quoted string
|
||||||
%+ cook crip
|
%+ cook crip
|
||||||
%+ ifix [. .]:;~(less (jest '\\"') yel)
|
%+ ifix [. .]:;~(less (jest '\\"') doq)
|
||||||
%- star
|
%- star
|
||||||
;~ pose
|
;~ pose
|
||||||
;~(pfix bat ;~(pose (just '\09') ace prn))
|
;~(pfix bas ;~(pose (just '\09') ace prn))
|
||||||
;~(pose (just '\09') ;~(less (mask "\22\5c\7f") (shim 0x20 0xff)))
|
;~(pose (just '\09') ;~(less (mask "\22\5c\7f") (shim 0x20 0xff)))
|
||||||
==
|
==
|
||||||
--
|
--
|
||||||
@ -1120,6 +1120,7 @@
|
|||||||
{$boot lit/? p/*} :: weird %dill boot
|
{$boot lit/? p/*} :: weird %dill boot
|
||||||
{$crop p/@ud} :: trim kernel state
|
{$crop p/@ud} :: trim kernel state
|
||||||
$>(%crud vane-task) :: error with trace
|
$>(%crud vane-task) :: error with trace
|
||||||
|
[%flee session=~] :: unwatch session
|
||||||
{$flog p/flog} :: wrapped error
|
{$flog p/flog} :: wrapped error
|
||||||
{$flow p/@tas q/(list gill:gall)} :: terminal config
|
{$flow p/@tas q/(list gill:gall)} :: terminal config
|
||||||
{$hail ~} :: terminal refresh
|
{$hail ~} :: terminal refresh
|
||||||
@ -1134,6 +1135,7 @@
|
|||||||
{$talk p/tank} ::
|
{$talk p/tank} ::
|
||||||
{$text p/tape} ::
|
{$text p/tape} ::
|
||||||
{$veer p/@ta q/path r/@t} :: install vane
|
{$veer p/@ta q/path r/@t} :: install vane
|
||||||
|
[%view session=~] :: watch session blits
|
||||||
$>(%trim vane-task) :: trim state
|
$>(%trim vane-task) :: trim state
|
||||||
$>(%vega vane-task) :: report upgrade
|
$>(%vega vane-task) :: report upgrade
|
||||||
{$verb ~} :: verbose mode
|
{$verb ~} :: verbose mode
|
||||||
@ -1157,6 +1159,7 @@
|
|||||||
$% {$bel ~} :: make a noise
|
$% {$bel ~} :: make a noise
|
||||||
{$clr ~} :: clear the screen
|
{$clr ~} :: clear the screen
|
||||||
{$hop p/@ud} :: set cursor position
|
{$hop p/@ud} :: set cursor position
|
||||||
|
[%klr p=stub] :: set styled line
|
||||||
{$lin p/(list @c)} :: set current line
|
{$lin p/(list @c)} :: set current line
|
||||||
{$mor ~} :: newline
|
{$mor ~} :: newline
|
||||||
{$sag p/path q/*} :: save to jamfile
|
{$sag p/path q/*} :: save to jamfile
|
||||||
@ -4261,7 +4264,7 @@
|
|||||||
++ decompress-point
|
++ decompress-point
|
||||||
|= dat=@
|
|= dat=@
|
||||||
^- pont
|
^- pont
|
||||||
:: ~& "custom decompress point"
|
:: ~& "custom decompress point"
|
||||||
=+ x=(end 3 w dat)
|
=+ x=(end 3 w dat)
|
||||||
?> =(3 (mod ^p 4))
|
?> =(3 (mod ^p 4))
|
||||||
=+ y=(exp.p (div +(^p) 4) :(sum.p (exp.p 3 x) (pro.p a x) b))
|
=+ y=(exp.p (div +(^p) 4) :(sum.p (exp.p 3 x) (pro.p a x) b))
|
||||||
@ -5365,28 +5368,30 @@
|
|||||||
:: ::::
|
:: ::::
|
||||||
++ format ^?
|
++ format ^?
|
||||||
|%
|
|%
|
||||||
:: :: ++to-wain:format
|
:: 0 ending a line (invalid @t) is not preserved :: ++to-wain:format
|
||||||
++ to-wain :: atom to line list
|
++ to-wain :: cord to line list
|
||||||
~% %lore ..is ~
|
~% %leer ..is ~
|
||||||
|= lub/@
|
|= txt=cord
|
||||||
=| tez/(list @t)
|
^- wain
|
||||||
|- ^+ tez
|
=/ len=@ (met 3 txt)
|
||||||
=+ ^= wor
|
=/ cut =+(cut -(a 3, c 1, d txt))
|
||||||
=+ [meg=0 i=0]
|
=/ sub sub
|
||||||
|- ^- {meg/@ i/@ end/@f}
|
=| [i=@ out=wain]
|
||||||
=+ gam=(cut 3 [i 1] lub)
|
|- ^+ out
|
||||||
?: =(0 gam)
|
=+ |- ^- j=@
|
||||||
[meg i %.y]
|
?: ?| =(i len)
|
||||||
?: =(10 gam)
|
=(10 (cut(b i)))
|
||||||
[meg i %.n]
|
==
|
||||||
$(meg (cat 3 meg gam), i +(i))
|
i
|
||||||
?: end.wor
|
$(i +(i))
|
||||||
(flop ^+(tez [meg.wor tez]))
|
=. out :_ out
|
||||||
?: =(0 lub) (flop tez)
|
(cut(b i, c (sub j i)))
|
||||||
$(lub (rsh 3 +(i.wor) lub), tez [meg.wor tez])
|
?: =(j len)
|
||||||
|
(flop out)
|
||||||
|
$(i +(j))
|
||||||
:: :: ++of-wain:format
|
:: :: ++of-wain:format
|
||||||
++ of-wain :: line list to atom
|
++ of-wain :: line list to cord
|
||||||
|= tez/(list @t)
|
|= tez=wain ^- cord
|
||||||
(rap 3 (join '\0a' tez))
|
(rap 3 (join '\0a' tez))
|
||||||
:: :: ++of-wall:format
|
:: :: ++of-wall:format
|
||||||
++ of-wall :: line list to tape
|
++ of-wall :: line list to tape
|
||||||
@ -5639,7 +5644,7 @@
|
|||||||
[(rash a fel) b]
|
[(rash a fel) b]
|
||||||
:: :: ++pa:dejs:format
|
:: :: ++pa:dejs:format
|
||||||
++ pa :: string as path
|
++ pa :: string as path
|
||||||
(su ;~(pfix net (more net urs:ab)))
|
(su ;~(pfix fas (more fas urs:ab)))
|
||||||
:: :: ++pe:dejs:format
|
:: :: ++pe:dejs:format
|
||||||
++ pe :: prefix
|
++ pe :: prefix
|
||||||
|* {pre/* wit/fist}
|
|* {pre/* wit/fist}
|
||||||
@ -6201,7 +6206,7 @@
|
|||||||
:: :: ++abox:de-json:html
|
:: :: ++abox:de-json:html
|
||||||
++ abox :: array
|
++ abox :: array
|
||||||
%+ stag %a
|
%+ stag %a
|
||||||
(ifix [lac (wish rac)] (more (wish com) apex))
|
(ifix [sel (wish ser)] (more (wish com) apex))
|
||||||
:: :: ++apex:de-json:html
|
:: :: ++apex:de-json:html
|
||||||
++ apex :: any value
|
++ apex :: any value
|
||||||
%+ knee *json |. ~+
|
%+ knee *json |. ~+
|
||||||
@ -6233,7 +6238,7 @@
|
|||||||
=* wow `(map @t @)`(malt lip)
|
=* wow `(map @t @)`(malt lip)
|
||||||
(sear ~(get by wow) low)
|
(sear ~(get by wow) low)
|
||||||
=* tuf ;~(pfix (just 'u') (cook tuft qix:ab))
|
=* tuf ;~(pfix (just 'u') (cook tuft qix:ab))
|
||||||
;~(pose yel net say bas loo tuf)
|
;~(pose doq fas soq bas loo tuf)
|
||||||
==
|
==
|
||||||
:: :: ++expo:de-json:html
|
:: :: ++expo:de-json:html
|
||||||
++ expo :: exponent
|
++ expo :: exponent
|
||||||
@ -6247,7 +6252,7 @@
|
|||||||
;~(plug dot digs)
|
;~(plug dot digs)
|
||||||
:: :: ++jcha:de-json:html
|
:: :: ++jcha:de-json:html
|
||||||
++ jcha :: string character
|
++ jcha :: string character
|
||||||
;~(pose ;~(less yel bas prn) esca)
|
;~(pose ;~(less doq bas prn) esca)
|
||||||
:: :: ++mayb:de-json:html
|
:: :: ++mayb:de-json:html
|
||||||
++ mayb :: optional
|
++ mayb :: optional
|
||||||
|*(bus/rule ;~(pose bus (easy ~)))
|
|*(bus/rule ;~(pose bus (easy ~)))
|
||||||
@ -6264,7 +6269,7 @@
|
|||||||
==
|
==
|
||||||
:: :: ++obje:de-json:html
|
:: :: ++obje:de-json:html
|
||||||
++ obje :: object list
|
++ obje :: object list
|
||||||
%+ ifix [(wish leb) (wish reb)]
|
%+ ifix [(wish kel) (wish ker)]
|
||||||
(more (wish com) pear)
|
(more (wish com) pear)
|
||||||
:: :: ++obox:de-json:html
|
:: :: ++obox:de-json:html
|
||||||
++ obox :: object
|
++ obox :: object
|
||||||
@ -6278,7 +6283,7 @@
|
|||||||
(cook |=(a/@ [a ~]) bus)
|
(cook |=(a/@ [a ~]) bus)
|
||||||
:: :: ++stri:de-json:html
|
:: :: ++stri:de-json:html
|
||||||
++ stri :: string
|
++ stri :: string
|
||||||
(cook crip (ifix [yel yel] (star jcha)))
|
(cook crip (ifix [doq doq] (star jcha)))
|
||||||
:: :: ++tops:de-json:html
|
:: :: ++tops:de-json:html
|
||||||
++ tops :: strict value
|
++ tops :: strict value
|
||||||
;~(pose abox obox)
|
;~(pose abox obox)
|
||||||
@ -6387,14 +6392,14 @@
|
|||||||
;~(pfix (plus whit) name)
|
;~(pfix (plus whit) name)
|
||||||
;~ pose
|
;~ pose
|
||||||
%+ ifix
|
%+ ifix
|
||||||
:_ yel
|
:_ doq
|
||||||
;~(plug (ifix [. .]:(star whit) tis) yel)
|
;~(plug (ifix [. .]:(star whit) tis) doq)
|
||||||
(star ;~(less yel escp))
|
(star ;~(less doq escp))
|
||||||
::
|
::
|
||||||
%+ ifix
|
%+ ifix
|
||||||
:_ say
|
:_ soq
|
||||||
;~(plug (ifix [. .]:(star whit) tis) say)
|
;~(plug (ifix [. .]:(star whit) tis) soq)
|
||||||
(star ;~(less say escp))
|
(star ;~(less soq escp))
|
||||||
::
|
::
|
||||||
(easy ~)
|
(easy ~)
|
||||||
==
|
==
|
||||||
@ -6410,7 +6415,7 @@
|
|||||||
:: :: ++chrd:de-xml:html
|
:: :: ++chrd:de-xml:html
|
||||||
++ chrd :: character data
|
++ chrd :: character data
|
||||||
%+ cook |=(a/tape ^-(mars ;/(a)))
|
%+ cook |=(a/tape ^-(mars ;/(a)))
|
||||||
(plus ;~(less yel ;~(pose (just `@`10) escp)))
|
(plus ;~(less doq ;~(pose (just `@`10) escp)))
|
||||||
:: :: ++comt:de-xml:html
|
:: :: ++comt:de-xml:html
|
||||||
++ comt :: comments
|
++ comt :: comments
|
||||||
=- (ifix [(jest '<!--') (jest '-->')] (star -))
|
=- (ifix [(jest '<!--') (jest '-->')] (star -))
|
||||||
@ -6427,10 +6432,10 @@
|
|||||||
;~(less (jest '?>') prn)
|
;~(less (jest '?>') prn)
|
||||||
:: :: ++escp:de-xml:html
|
:: :: ++escp:de-xml:html
|
||||||
++ escp ::
|
++ escp ::
|
||||||
;~(pose ;~(less led ban pad prn) enty)
|
;~(pose ;~(less gal gar pam prn) enty)
|
||||||
:: :: ++enty:de-xml:html
|
:: :: ++enty:de-xml:html
|
||||||
++ enty :: entity
|
++ enty :: entity
|
||||||
%+ ifix pad^mic
|
%+ ifix pam^mic
|
||||||
;~ pose
|
;~ pose
|
||||||
=+ def=^+(ent (my:nl [%gt '>'] [%lt '<'] [%amp '&'] [%quot '"'] ~))
|
=+ def=^+(ent (my:nl [%gt '>'] [%lt '<'] [%amp '&'] [%quot '"'] ~))
|
||||||
%+ sear ~(get by (~(uni by def) ent))
|
%+ sear ~(get by (~(uni by def) ent))
|
||||||
@ -6446,7 +6451,7 @@
|
|||||||
;~(plug ;~(plug name attr) (cold ~ (star whit)))
|
;~(plug ;~(plug name attr) (cold ~ (star whit)))
|
||||||
:: :: ++head:de-xml:html
|
:: :: ++head:de-xml:html
|
||||||
++ head :: opening tag
|
++ head :: opening tag
|
||||||
(ifix [gal ban] ;~(plug name attr))
|
(ifix [gal gar] ;~(plug name attr))
|
||||||
:: :: ++many:de-xml:html
|
:: :: ++many:de-xml:html
|
||||||
++ many :: contents
|
++ many :: contents
|
||||||
;~(pfix (star comt) (star ;~(sfix ;~(pose apex chrd cdat) (star comt))))
|
;~(pfix (star comt) (star ;~(sfix ;~(pose apex chrd cdat) (star comt))))
|
||||||
@ -6461,7 +6466,7 @@
|
|||||||
;~(pose ;~(plug ;~(sfix chx col) chx) chx)
|
;~(pose ;~(plug ;~(sfix chx col) chx) chx)
|
||||||
:: :: ++tail:de-xml:html
|
:: :: ++tail:de-xml:html
|
||||||
++ tail :: closing tag
|
++ tail :: closing tag
|
||||||
(ifix [(jest '</') ban] name)
|
(ifix [(jest '</') gar] name)
|
||||||
:: :: ++whit:de-xml:html
|
:: :: ++whit:de-xml:html
|
||||||
++ whit :: whitespace
|
++ whit :: whitespace
|
||||||
(mask ~[' ' `@`0x9 `@`0xa])
|
(mask ~[' ' `@`0x9 `@`0xa])
|
||||||
@ -6566,8 +6571,13 @@
|
|||||||
?^ t.rax
|
?^ t.rax
|
||||||
[p.pok [ire q.pok]]:[pok=$(rax t.rax) ire=i.rax]
|
[p.pok [ire q.pok]]:[pok=$(rax t.rax) ire=i.rax]
|
||||||
=/ raf/(like term)
|
=/ raf/(like term)
|
||||||
=> |=(a/@ ((sand %tas) (crip (flop (trip a)))))
|
%- ;~ sfix
|
||||||
(;~(sfix (sear . sym) dot) [1^1 (flop (trip i.rax))])
|
%+ sear
|
||||||
|
|=(a/@ ((sand %ta) (crip (flop (trip a)))))
|
||||||
|
(cook |=(a/tape (rap 3 ^-((list @) a))) (star aln))
|
||||||
|
dot
|
||||||
|
==
|
||||||
|
[1^1 (flop (trip i.rax))]
|
||||||
?~ q.raf
|
?~ q.raf
|
||||||
[~ [i.rax ~]]
|
[~ [i.rax ~]]
|
||||||
=+ `{ext/term {@ @} fyl/tape}`u.q.raf
|
=+ `{ext/term {@ @} fyl/tape}`u.q.raf
|
||||||
@ -6576,7 +6586,7 @@
|
|||||||
:: :: ++apat:de-purl:html
|
:: :: ++apat:de-purl:html
|
||||||
++ apat :: 2396 abs_path
|
++ apat :: 2396 abs_path
|
||||||
%+ cook deft
|
%+ cook deft
|
||||||
;~(pfix net (more net smeg))
|
;~(pfix fas (more fas smeg))
|
||||||
:: :: ++aurf:de-purl:html
|
:: :: ++aurf:de-purl:html
|
||||||
++ aurf :: 2396 with fragment
|
++ aurf :: 2396 with fragment
|
||||||
%+ cook |~(a/purf a)
|
%+ cook |~(a/purf a)
|
||||||
@ -6597,13 +6607,13 @@
|
|||||||
[q.a [[p.a r.a] b]]
|
[q.a [[p.a r.a] b]]
|
||||||
::
|
::
|
||||||
;~ plug
|
;~ plug
|
||||||
;~(plug htts (punt ;~(sfix urt:ab vat)) thor)
|
;~(plug htts (punt ;~(sfix urt:ab pat)) thor)
|
||||||
;~(plug ;~(pose apat (easy *pork)) yque)
|
;~(plug ;~(pose apat (easy *pork)) yque)
|
||||||
==
|
==
|
||||||
:: :: ++htts:de-purl:html
|
:: :: ++htts:de-purl:html
|
||||||
++ htts :: scheme
|
++ htts :: scheme
|
||||||
%+ sear ~(get by (malt `(list (pair term ?))`[http+| https+& ~]))
|
%+ sear ~(get by (malt `(list (pair term ?))`[http+| https+& ~]))
|
||||||
;~(sfix scem ;~(plug col net net))
|
;~(sfix scem ;~(plug col fas fas))
|
||||||
:: :: ++cock:de-purl:html
|
:: :: ++cock:de-purl:html
|
||||||
++ cock :: cookie
|
++ cock :: cookie
|
||||||
%+ most ;~(plug mic ace)
|
%+ most ;~(plug mic ace)
|
||||||
@ -6623,10 +6633,10 @@
|
|||||||
(cook crip (star pquo))
|
(cook crip (star pquo))
|
||||||
:: :: ++pcar:de-purl:html
|
:: :: ++pcar:de-purl:html
|
||||||
++ pcar :: 2396 path char
|
++ pcar :: 2396 path char
|
||||||
;~(pose pure pesc psub col vat)
|
;~(pose pure pesc psub col pat)
|
||||||
:: :: ++pcok:de-purl:html
|
:: :: ++pcok:de-purl:html
|
||||||
++ pcok :: cookie char
|
++ pcok :: cookie char
|
||||||
;~(less bas mic com yel prn)
|
;~(less bas mic com doq prn)
|
||||||
:: :: ++pesc:de-purl:html
|
:: :: ++pesc:de-purl:html
|
||||||
++ pesc :: 2396 escaped
|
++ pesc :: 2396 escaped
|
||||||
;~(pfix cen mes)
|
;~(pfix cen mes)
|
||||||
@ -6635,24 +6645,24 @@
|
|||||||
(cold ' ' (just '+'))
|
(cold ' ' (just '+'))
|
||||||
:: :: ++pque:de-purl:html
|
:: :: ++pque:de-purl:html
|
||||||
++ pque :: 3986 query char
|
++ pque :: 3986 query char
|
||||||
;~(pose pcar net wut)
|
;~(pose pcar fas wut)
|
||||||
:: :: ++pquo:de-purl:html
|
:: :: ++pquo:de-purl:html
|
||||||
++ pquo :: normal query char
|
++ pquo :: normal query char
|
||||||
;~(pose pure pesc pold net wut col com)
|
;~(pose pure pesc pold fas wut col com)
|
||||||
:: :: ++pure:de-purl:html
|
:: :: ++pure:de-purl:html
|
||||||
++ pure :: 2396 unreserved
|
++ pure :: 2396 unreserved
|
||||||
;~(pose aln hep cab dot zap sig tar say lit rit)
|
;~(pose aln hep cab dot zap sig tar soq pal par)
|
||||||
:: :: ++psub:de-purl:html
|
:: :: ++psub:de-purl:html
|
||||||
++ psub :: 3986 sub-delims
|
++ psub :: 3986 sub-delims
|
||||||
;~ pose
|
;~ pose
|
||||||
zap bus pad say lit rit
|
zap buc pam soq pal par
|
||||||
tar lus com mic tis
|
tar lus com mic tis
|
||||||
==
|
==
|
||||||
:: :: ++ptok:de-purl:html
|
:: :: ++ptok:de-purl:html
|
||||||
++ ptok :: 2616 token
|
++ ptok :: 2616 token
|
||||||
;~ pose
|
;~ pose
|
||||||
aln zap hax bus cen pad say tar lus
|
aln zap hax buc cen pam soq tar lus
|
||||||
hep dot ket cab tec bar sig
|
hep dot ket cab tic bar sig
|
||||||
==
|
==
|
||||||
:: :: ++scem:de-purl:html
|
:: :: ++scem:de-purl:html
|
||||||
++ scem :: 2396 scheme
|
++ scem :: 2396 scheme
|
||||||
@ -6666,7 +6676,7 @@
|
|||||||
(cook crip (plus pcok))
|
(cook crip (plus pcok))
|
||||||
:: :: ++tosk:de-purl:html
|
:: :: ++tosk:de-purl:html
|
||||||
++ tosk :: 6265 quoted value
|
++ tosk :: 6265 quoted value
|
||||||
;~(pose tock (ifix [yel yel] tock))
|
;~(pose tock (ifix [doq doq] tock))
|
||||||
:: :: ++toke:de-purl:html
|
:: :: ++toke:de-purl:html
|
||||||
++ toke :: 2616 token
|
++ toke :: 2616 token
|
||||||
(cook crip (plus ptok))
|
(cook crip (plus ptok))
|
||||||
@ -6708,7 +6718,7 @@
|
|||||||
:: proper query
|
:: proper query
|
||||||
::
|
::
|
||||||
%+ more
|
%+ more
|
||||||
;~(pose pad mic)
|
;~(pose pam mic)
|
||||||
;~(plug fque ;~(pose ;~(pfix tis fquu) (easy '')))
|
;~(plug fque ;~(pose ;~(pfix tis fquu) (easy '')))
|
||||||
::
|
::
|
||||||
:: funky query
|
:: funky query
|
||||||
@ -8212,7 +8222,7 @@
|
|||||||
::
|
::
|
||||||
++ function
|
++ function
|
||||||
|* [tag=@tas fun=@t rul=rule]
|
|* [tag=@tas fun=@t rul=rule]
|
||||||
;~(plug (cold tag (jest fun)) (ifix [lit rit] rul))
|
;~(plug (cold tag (jest fun)) (ifix [pal par] rul))
|
||||||
::
|
::
|
||||||
++ shipname
|
++ shipname
|
||||||
;~(pfix sig fed:ag)
|
;~(pfix sig fed:ag)
|
||||||
@ -9177,6 +9187,10 @@
|
|||||||
|- ^- seed:able:jael
|
|- ^- seed:able:jael
|
||||||
=/ cub=acru:ames (pit:nu:crub:crypto 512 eny)
|
=/ cub=acru:ames (pit:nu:crub:crypto 512 eny)
|
||||||
=/ who=ship `@`fig:ex:cub
|
=/ who=ship `@`fig:ex:cub
|
||||||
|
:: disallow 64-bit or smaller addresses
|
||||||
|
::
|
||||||
|
?. ?=(%pawn (clan:title who))
|
||||||
|
$(eny +(eny))
|
||||||
?: (~(has in stars) (^sein:title who))
|
?: (~(has in stars) (^sein:title who))
|
||||||
[who 1 sec:ex:cub ~]
|
[who 1 sec:ex:cub ~]
|
||||||
$(eny +(eny))
|
$(eny +(eny))
|
||||||
|
Loading…
Reference in New Issue
Block a user