Skip to content

Instantly share code, notes, and snippets.

View d10r's full-sized avatar

Didi d10r

View GitHub Profile
set -eux
# prerequisites: "forge" installed and in PATH, see https://book.getfoundry.sh/getting-started/installation
name=$1
mkdir $name
cd $name
forge init --no-commit
@d10r
d10r / gist:19cafec27da590eb9ce81cb728625e46
Created February 28, 2024 17:48
deploy-sferp-nft.sh
#!/bin/bash
# deploys an instance of GdaNFTContract to a given network
# usage: deploy.sh <network> <priceMillis>
# env var PRIVKEY needs to be set
# env var <explorer>_API_KEY needed for verification
# env vars can be provided via .env file
set -eu
#!/bin/bash
# queries the balance (of native coins, e.g. ETH) of a given account at a given block
# requires an archive node if the block lies more than a couple of blocks in the past
#
# Requirements: python, jq, curl and awk installed and in PATH
#
# usage: get-eth-balance-of-at.sh <ethereum_address> [block_number]"
# env var RPC must be set
@d10r
d10r / batch_5_200.json
Created August 22, 2023 12:16
Safe TX builder json file with 200 txs
{
"version": "1.0",
"chainId": "5",
"createdAt": "1692706453217",
"meta": {
"name": "Superfluid VestingScheduler Transactions Batch",
"description": "",
"txBuilderVersion": "1.16.1",
"createdFromSafeAddress": "",
"createdFromOwnerAddress": "",
{
"schema-version": "1",
"name": "sentinel-threshold",
"networks": {
"137": {
"comment": "Polygon: USDCx 0.01/month",
"thresholds": [{
"address": "0xCAa7349CEA390F89641fe306D93591f87595dc1F",
"above": "3858024691"
}]
@d10r
d10r / hdkeys.js
Created February 5, 2022 21:35
exploring HD key derivation
/*
BIP32 - Hierarchical Deterministic Wallet defines the semantics of a derivation path
This is some examples for paths mapped to Ethereum addresses
0 invalid (must start with m)
m 0x9b4aeeec68a20e186e98a404312869ff3330eac3
m' 0x9b4aeeec68a20e186e98a404312869ff3330eac3 (there's only 1 master)
m/ invalid
m/0 0x80e76859d6615e17c3fef155903fa9062c7bacc7 - this is the default account (child 0)
@d10r
d10r / balancecheck.py
Created January 11, 2022 21:18
checks the balance of an account on an EVM chain and reports it via a Webhook (tested with Discord)
# checks the balance of the given account and reports it via webhook
# usage:
# python3 balancecheck.py <account> <min_balance>
# ENV vars: RPC, WEBHOOK
import requests
import sys
import os
account = sys.argv[1]
@d10r
d10r / README.txt
Created April 30, 2021 08:57
Created using remix-ide: Realtime Ethereum Contract Compiler and Runtime. Load this file by pasting this gists URL or ID at https://remix.ethereum.org/#version=soljson-v0.8.1+commit.df193b15.js&optimize=false&runs=200&gist=
REMIX EXAMPLE PROJECT
Remix example project is present when Remix loads very first time or there are no files existing in the File Explorer.
It contains 3 directories:
1. 'contracts': Holds three contracts with different complexity level, denoted with number prefix in file name.
2. 'scripts': Holds two scripts to deploy a contract. It is explained below.
3. 'tests': Contains one test file for 'Ballot' contract with unit tests in Solidity.
SCRIPTS
@d10r
d10r / attestation.txt
Created March 29, 2021 20:43
ZKOPRU trusted setup attestation
I contributed to the ZKOPRU Trusted Setup Multi-Party Ceremony.
The following are my contribution signatures:
Circuit: zk_transaction_1_2
Contributor # 145
Hash: 3e7767e1 8634a9de 10ec121f 5f354775
8e0dd9e1 5b46e875 4a5201a7 1708bb9d
282e48d0 19784e6c 2cab7391 b5f0cf45
5bc3a9d1 f89cfde3 aab2e5b8 e92d170e
@d10r
d10r / artis_monitor_running.sh
Created July 18, 2020 11:34
minimal script for stateless monitoring/alerting (stall detection) for an Ethereum/ARTIS node via its RPC interface
#!/bin/bash
# Statelessly checks if the given chain (identified by its rpc) is running.
# Definition of running: the most recent block was authored less than the given number of seconds ago
#
# argument $1: URL to the RPC node to query
# argument $2: threshold for how old - in seconds - the most recent block may be. If older, the chain is considered as not running
# argument $3: space separated list of recipients the Email alert should go to
#
# Note that this script is not designed to give any feedback about what's wrong in case it fails. It just sounds an alarm if it doesn't run through as expected.