Raises integration
createRaise on-chain, then register and commit via API.
Create a raise on-chain, then register it. Commit USDG on-chain, then sync the commitment.
tscreateRaise.ts
import { parseAbi } from "viem";
const factoryAbi = parseAbi([
"function createRaise(/* RaiseParams */) returns (address raise, address daoToken, address treasury, address governor)",
]);
const hash = await walletClient.writeContract({
address: raiseFactory,
abi: factoryAbi,
functionName: "createRaise",
args: [/* params matching RaiseFactory */],
});
// wait for receipt, parse RaiseCreated, then POST /raisesbashregister-raise.sh
curl -sS -X POST "${API_URL}/raises" \
-H "authorization: Bearer $JWT" \
-H "content-type: application/json" \
-d '{
"address": "0xRaise",
"txHash": "0x…",
"name": "Example Raise",
"symbol": "EXR",
"goal": "10000000000"
}'
curl -sS -X POST "${API_URL}/raises/commit" \
-H "authorization: Bearer $JWT" \
-H "content-type: application/json" \
-d '{
"raiseAddress": "0xRaise",
"amount": "1000000",
"txHash": "0x…"
}'Product overview: Raises protocol. Schemas live in shared/src/schemas.ts.