Run once in a repo to setup worktree directory:
feature init
or manually:
Set up a separate git worktree to solve the issue: $ARGUMENTS.
If this is a number, fetch issue description from Github.
Fetch issue info if number is provided. Use gh issue view ### --comments without specifying repo. It will use default from the dir we're currently in.
Come up with a branch name from the issue description
Create branch git branch "$BRANCH_NAME" main
Find worktrees directory for this project in a parent directory
| // SPDX-License-Identifier: MIT | |
| pragma solidity ^0.8.19; | |
| interface IAI { | |
| function chat(string calldata systemPrompt, string calldata message) external returns (string memory); | |
| } | |
| contract AIAgent { | |
| string public constant AI_PROMPT = | |
| "You are a business manager of this DAO treasury. " |
| import type { KernelAccountClient, KernelSmartAccount } from "@zerodev/sdk"; | |
| import type { Account, Chain, Transport, WalletClient } from "viem"; | |
| import { getPublicClient, type SupportedChainId } from "~/utils/publicClient"; | |
| export function pretendWalletClient( | |
| kernelAccountClient: KernelAccountClient< | |
| "0x0000000071727De22E5E9d8BAf0edAc6f37da032", | |
| Transport, | |
| Chain, |
| // use at https://gate-rinkeby.buildship.dev/deploy/... | |
| // when contract address isnt fetched from tx properly | |
| const verifyContract = address => { | |
| const [,hash] = window.location.href.match(/deploy\/(\w+)/) | |
| localStorage.deployedContracts = JSON.stringify({ ...JSON.parse(localStorage.deployedContracts), [hash]: address }) | |
| window.location.reload() |
export NFT_ADDRESS = ...
curl -X 'GET' \
'https://deep-index.moralis.io/api/v2/nft/$NFT_ADDRESS/owners?chain=eth&format=decimal' \
-H 'accept: application/json' \
-H 'X-API-Key: YOUR_API_KEY' \
| jq --raw-output '.result[] .owner_of' > holders.csv| { | |
| "0x3C7Cf88eA97cF9e8a74cdB22b81811092c027211": [ | |
| { | |
| "inputs": [], | |
| "stateMutability": "nonpayable", | |
| "type": "constructor" | |
| }, | |
| { | |
| "anonymous": false, | |
| "inputs": [ |
| // use this on https://api.opensea.io/api/v1/ | |
| // in browser console | |
| const startIndex = 0 // use to skip N first | |
| const collection = "0x78569146f5635a31dd2ce08ea614360e8be7315d" | |
| const getOpenSeaURL = id => `https://api.opensea.io/api/v1/asset/${collection}/${id}?force_update=true` | |
| DELAY = 200 // ms |
| did:3:kjzl6cwe1jw145aodppl0512hfsnars2sd8tf49iz838r92wkwvc222k4vgiklu |