The Melt Saga in Coco is probably the most interesting piece of software I have written in a while.
First of all sagas by themselves are also really cool, and I had a lot of fun writing the first one for the Send API. Now melt adds more complexity by needing to support different methods, that will have different behaviour. While the SendOperationService owned all behaviour the melt one does not. This is where I added the MeltHandlerProvider, a little piece of code that provides handlers based on the method used to the Saga. The saga will get the required behaviour from the provider when it needs to advance.
This way each method can implement its own behaviour, and consumers can even add their own methods via plugins or at runtime.
Egge
egge@npub.cash
npub1mhcr...c226
Building https://npub.cash π₯ Working on awesome nostr, cashu and Lightning stuff πβ‘οΈ
Notes (20)
PSA β οΈ
There has been report of data-loss when upgrading coco to the latest RC33! We are still investigating the issue, but for now you should not upgrade to this version.
Unfortunately npm doesnβt let me plush the version, but as the RCs are alpha releases npm will not upgrade you without explicit permission
Sell kidney and get Cursor 200$ subscription?
Opus 4.5 (Cursor) cost is only reduced for another four days⦠what are you building?
Coco RC31 has been released! This new RC includes a bunch of bug fixes, as well as the long awaited send API.
Sending tokens was fully refactored to use a saga under the hood, allowing for much better error handling and safety. It also allows users to preview transaction details before executing a send. If something goes wrong Coco will do it's best to recover the operation (and the sats).
A nice side effect of the saga is that we now got real time updates for send operations as well! New send state events were added to the event hub and the History API now exposes "state" for send operations.
The full explanation of the SendAPI can be read here: https://cashubtc.github.io/coco/pages/send-operations.html
"Before you change anything review this proposal critically" is a game changing prompt for me
PSA: npub.cash is experiencing some issue right now. This morning we had some DDOS-like activity that caused rate-limiting issues with Minibits upstream.
Meanwhile npubx.cash is running fine and also has some protections in place to avoid this kind of issue. If you are currently using npub.cash, this might be a great time to look into npubx.cash. You can use it inside Cashu.me by enabling npubx.cash in the experimental settings.
Have you given Coco a try yet?
Itβs an out-of-the-box Cashu experience written in Typescript. Basically giving you a fully working Cashu wallet with just a few lines of setup code.
Coco is in early stages so Iβd love your feedback: https://github.com/cashubtc/coco
Docs: https://cashubtc.github.io/coco/
Building with opus 4.5 feels like driving a Veyron at full speed. You never got to your destination quicker, but at the same time you never spend 4$ in gas per mile
Wtf happened over the last few yearsβ¦
My wife is a smart shopper. She knows where all the deals are, does proper planning and meal plans etc.
Regardless of that our grocery bill (2 adults, 1 child, 2 dogs) easily exceeds 1200β¬ (~1400 freedom coins) per monthβ¦
ππ₯


Never forget to add some triple negatives to your tests!!
People will say that there is no reason to use Opus, unless you have too much money lying around. But I got to disagree. The gap between Sonnet and Opus is HUGE!
I personally use Opus only when I encounter issues that I and other "regular" model scan not fix. Most of the time these are infrastructure or build-step issues, not really application related. For example:
My local test pipeline for Coco started failing recently. The issue was an import that could not be resolved. I started debugging it manually and could not spot any issues. After 30 minutes I let Sonnet, Composer, Gemini and GPT at it. All of them took AGES (30 minutes +) and came to the conclusion that there must be a bug in Bun's package resolution logic. I knew this was not the case as the Github CI was still running fine.
Opus took 3 minutes to find a broken symlink that pointed to a newer version of the package that removed that particular export. But at the same time this single request cost about 5% of my regular monthly AI spending :D
GM βοΈβοΈ
Can we talk about how super smart Fabric is about component trees?
These are two different screens with their own component trees. But Fabric understands that the MintSelector component does not need to change and simply moves its position in the tree, keeping the same reference.
React Native has come such a long way π₯
https://blossom.primal.net/3310bc7c338bbc8cb3b431ecd525231fc812778cce830a93fc71c9e802916d09.mp4
Iβm officially cold π₯Ά


I think this is exactly how many will feel in the future. Just like nostr, Cashu provides super easy to comprehend rails for building apps and services. People will fall in love with the product someone is offering without even realising they are using Cashu. ππ₯
nostr:note16yq3jnq5wjmpwsy3q96wslk3ly6z75yecjqryy2uspkvp9mzen2qc0cuvl
This isnβt a dip. Itβs whales messing with the market specifically so you look dumb at Thanksgiving. The bull run resumes right after, I swear. π€
The prize pool of the #NutNovember hackathon just exceeded 1M Sats! Builders, what are you waiting for??
Fell in love with enuts new mint UI π₯ Thanks for the inspiration nostr:nprofile1qqspqgwgjg25375f4w6vcl5xdz363h8t4c9ycv3ll6h4wppcsvkknycprpmhxue69uhhqun9d45h2mfwwpexjmtpdshxuet5qyvhwumn8ghj7urjv4kkjatd9ec8y6tdv9kzumn9wshs9ymzpg nostr:nprofile1qqs9pk20ctv9srrg9vr354p03v0rrgsqkpggh2u45va77zz4mu5p6ccppemhxue69uhhjctzw5hx6ef0qywhwumn8ghj7mn0wd68ytnzd96xxmmfdejhytnnda3kjctv9uzw3jwp π
https://blossom.primal.net/954406110a9731c7a2b1947d185f4f4d423017ce0fe7f02d5ea6dffb3c7ecf5e.mp4