Skip to content

Commit

Permalink
api: make viem client more reliable (#1383)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewliu08 authored Jan 13, 2025
1 parent a6b0899 commit 39cffe3
Show file tree
Hide file tree
Showing 7 changed files with 454 additions and 130 deletions.
4 changes: 2 additions & 2 deletions packages/daimo-api/src/api/claimEphemeralNoteSponsored.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ export async function claimEphemeralNoteSponsored(
throw new Error("invalid signature");
}

const claimTxHash = await vc.writeContract({
const { txHash } = await vc.writeContractAndGetReceipt({
abi: daimoEphemeralNotesV2Abi,
address: chainConfig.notesV2Address,
functionName: "claimNoteRecipient",
args: [ephemeralOwner, recipient, signature],
});

return claimTxHash;
return txHash;
}
2 changes: 1 addition & 1 deletion packages/daimo-api/src/api/createRequestSponsored.ts
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ export async function createRequestSponsored(

// Create onchain request
console.log(`[API] creating req ${id} ${recipient} ${amount} ${fulfiller}`);
const txHash = await vc.writeContract({
const { txHash } = await vc.writeContractAndGetReceipt({
abi: daimoRequestAbi,
address: daimoRequestAddress,
functionName: "createRequest",
Expand Down
8 changes: 4 additions & 4 deletions packages/daimo-api/src/contract/accountFactory.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import { derKeytoContractFriendlyKey, DaimoAccountCall } from "@daimo/common";
import { DaimoAccountCall, derKeytoContractFriendlyKey } from "@daimo/common";
import { daimoAccountFactoryConfig } from "@daimo/contract";
import { Hex, TransactionReceipt } from "viem";

Expand Down Expand Up @@ -33,14 +33,14 @@ export class AccountFactory {
pubKeyHex: Hex,
initCalls: DaimoAccountCall[]
): Promise<TransactionReceipt> {
const hash = await this.vc.writeContract({
const { txHash } = await this.vc.writeContractAndGetReceipt({
...daimoAccountFactoryConfig,
functionName: "createAccount",
args: [0, derKeytoContractFriendlyKey(pubKeyHex), initCalls, SALT],
});
console.log(`[API] deploy transaction ${hash}`);
console.log(`[API] deploy transaction ${txHash}`);
const receipt = await this.vc.publicClient.waitForTransactionReceipt({
hash,
hash: txHash,
});
console.log(`[API] deploy transaction status ${receipt.status}`);
return receipt;
Expand Down
2 changes: 1 addition & 1 deletion packages/daimo-api/src/network/bundlerClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ export class BundlerClient {

const beneficiary = viemClient.account.address;
try {
const txHash = await viemClient.writeContract({
const { txHash } = await viemClient.writeContractAndGetReceipt({
abi: entryPointV06Abi,
address: entryPointV06Address as Address,
functionName: "handleOps",
Expand Down
Loading

0 comments on commit 39cffe3

Please sign in to comment.