/- sur=nostril /+ lib=nostril, shim, dbug /= web /web/router |% +$ versioned-state $%(state-0:sur) -- =| versioned-state =* state - %- agent:dbug ^- agent:gall |_ =bowl:gall +* this . rout ~(. router:web [state bowl]) cards ~(. cards:lib bowl) ++ on-init ^- (quip card:agent:gall agent:gall) :_ this(state default:sur) :~ shim-binding:cards == :: ++ on-save ^- vase !>(state) :: ++ on-load |~ old-state=vase ^- (quip card:agent:gall agent:gall) =/ old-state !<(versioned-state old-state) ?- -.old-state %0 `this(state old-state) == :: ++ on-poke |~ [=mark =vase] ^- (quip card:agent:gall agent:gall) ~& >> on-poke-nostril=mark |^ ?+ mark `this %noun debug %json on-ws %handle-http-request serve == :: web ui ++ serve =/ order !<(order:web vase) :: ~& request.req.order ?: .=(url.request.req.order '/nostr-shim') =/ event (handle:shim order) ?~ event `this =/ nevents=(list event:sur) [u.event events] =/ nevents2=(list event:sur) (scag 100 nevents) =. events nevents2 =/ response (ebail:rout id.order) [response this] :: :_ this (rout:rout order) :: ++ on-ws =/ jon=json !<(json vase) ~& > on-ws-jon=jon `this :: ++ debug =/ noun !<(* vase) ?+ -.noun `this %genkey =/ keys (gen-keys:lib eny.bowl) ~& keys=keys `this %rt :: relay test :_ this :_ ~ :: khan =/ relay-list=(list json) %+ turn ~(tap in relays) |= t=@t ^- json [%s t] =/ req-body=json %- frond:enjs:format [%relays %a relay-list] =/ headers :~ [key='content-type' value='application/json'] == =/ =request:http [%'POST' shim-url:sur headers `(json-body:web req-body)] =/ pat /lol/lmao [%pass (weld /ws pat) %arvo %k %fard dap.bowl %fetch %noun !>(request)] == :: -- :: ++ on-watch |~ =(pole knot) ^- (quip card:agent:gall agent:gall) `this :: ++ on-leave |~ =(pole knot) ^- (quip card:agent:gall agent:gall) `this :: ++ on-peek |~ =(pole knot) ^- (unit (unit cage)) ~ :: ++ on-agent |~ [wire sign:agent:gall] ^- (quip card:agent:gall agent:gall) `this :: ++ on-arvo |~ [wire =sign-arvo] ^- (quip card:agent:gall agent:gall) `this :: ++ on-fail |~ [term tang] ^- (quip card:agent:gall agent:gall) `this --