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 |