Jem pfp

Jem

@jem

144 Following
158 Followers


Jem pfp
Jem
@jem
Has anyone figured out how to get viem to decode custom errors from secondary contracts? e.g. viem -> Contract A -> Contract B Contract B reverts. viem does not decode the custom error.
1 reply
0 recast
1 reaction

Jem pfp
Jem
@jem
2x zone 2 and 2x interval training (4x4 protocol) since December seems to be working.
3 replies
0 recast
1 reaction

Jem pfp
Jem
@jem
My ApoB was 116 mg/dL in October, and came back as 85 mg/dL a few days ago. 💪🏻 Combination of: - Ezetrol (I had run out when I had the test and was waiting for a refill. Doc said the ApoB level would be even lower while taking the meds.) - 2x cardio, 2x interval (4x4 protocol), 2x weights
1 reply
0 recast
2 reactions

Jem pfp
Jem
@jem
Bringing up some dormant infrastructure (about 8 different services on GCP) that needs to be used for some demonstration, and I can't be thankful enough that I wrote Pulumi scripts to orchestrate it. One command to deploy, instead of trying to remember how to deploy each service. 😭
1 reply
0 recast
0 reaction

Jem pfp
Jem
@jem
1 reply
0 recast
2 reactions

Jem pfp
Jem
@jem
0 reply
0 recast
0 reaction

Jem pfp
Jem
@jem
Pro-tip/random thought: Forge users can add "forge build --sizes" as a step in their GitHub continuous integration setup. That way, you know immediately when a contract has exceeded the size limit.
0 reply
0 recast
1 reaction

Jem pfp
Jem
@jem
Pro-tip: writing forge tests in VSCode with GitHub Copilot can be really easy if you: - Write a list of conditions and outputs - Write modifiers for each condition (in the style of branching-tree technique) VSCode will then write each of the test cases in list order.
0 reply
0 recast
3 reactions

Jem pfp
Jem
@jem
Writing tests with Forge on a new codebase, and two approaches have significantly (IMO) increased readability and simplicity: 1. One function per test file 2. Contract and parameter state altered through modifiers, e.g. ``` function test_foo() external whenParameterIsSet whenAModuleIsInstalled ```
2 replies
0 recast
3 reactions

Jem pfp
Jem
@jem
1 reply
0 recast
1 reaction

Jem pfp
Jem
@jem
I’m trying to improve my heart health and blood pressure, after a recent wellness checkup. I read about the Norwegian 4x4 protocol (https://x.com/fmfclips/status/1732227863628136614?s=12&t=WhYukSauChV1qH3L8ayoJw), did that on Saturday and plan to continue. Any other tips?
2 replies
0 recast
0 reaction

Jem pfp
Jem
@jem
Upgrading to a new Mac. It’s been a while, and I’ve clearly forgotten how long it takes to migrate. I really wish I had a Thunderbolt cable right now. However, I think it will be quicker to migrate from the Time Machine backup on a USB drive than getting the cable delivered. 🙄
0 reply
0 recast
0 reaction

Jem pfp
Jem
@jem
Given that Linen Wallet is shutting down, are there any other crypto wallets/accounts that support Google Account/Apple ID as a login method?
1 reply
0 recast
1 reaction

Jem pfp
Jem
@jem
Is there any solution better than Github Copilot for generating test cases in Solidity?
1 reply
0 recast
0 reaction

Jem pfp
Jem
@jem
Has anyone been successful in using the tree syntax and bulloak to generate tests for Solidity contracts? I eventually wrangled the syntax, but found that it expected a test file for each function (whereas we generally write a test file for each contract).
0 reply
0 recast
0 reaction

Jem pfp
Jem
@jem
The time I've spent writing unit tests far outweighs the time spent on writing the Solidity contract itself. 🤔
0 reply
0 recast
3 reactions

Jem pfp
Jem
@jem
Pro-tip: if you’re running a REST API in Google Cloud Functions, HTTP caching is disabled by default. It’s one line of code to enable it. Example of what I wrote, here: https://github.com/OlympusDAO/cooler-loans-api/commit/402f32aca52d6411af650ce9ce9d7e9c1274c960
0 reply
0 recast
0 reaction

Jem pfp
Jem
@jem
One thing I didn’t know: Google Cloud Run provides HTTP-layer caching OOTB. The last item in this table calls an endpoint that in turn fetches 90 days of data from 4 GraphQL endpoints and returns those records with some metrics. Response normally in 15 seconds.
1 reply
0 recast
0 reaction

Jem pfp
Jem
@jem
Today I'm thankful for Docker and serverless deployment options (in this case, Google Cloud Run). A service provider has been having issues with reliability, and I was able to package the server into a Docker image and deploy it, orchestrated using Pulumi. It's more reliable, auto-scales and is faster!
1 reply
0 recast
0 reaction

Jem pfp
Jem
@jem
Tip for anyone doing Graph Protocol development: polling block handlers (recently introduced) are still a very slow method of triggering indexing. Data: Polling block handler every 2400 blocks, deployed 21 hours ago: 8596 blocks Event handler with an hourly event, deployed 10 minutes ago: 23105 blocks
1 reply
0 recast
1 reaction