Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug Report: Abstract Account Transactions Not Being Included in Blocks #239

Open
fachebot opened this issue Feb 15, 2025 · 4 comments
Open

Comments

@fachebot
Copy link

🚨 Critical Severity
Funds are currently locked in the abstract account as no transactions can be executed.

Issue Description

After deploying a smart contract, all transactions initiated from my abstract account (including the deployment transaction) are not being included in blocks. Transactions are not appearing in mempool despite no error messages. Most critically, I am unable to transfer funds out of the account.

Impact

CRITICAL: Funds are locked in the abstract account
Unable to execute any transactions
Unable to deploy contracts
Unable to transfer assets to other addresses

Environment

Abstract Account: 0x22470F391055455fd2699bC652826f820b9bD0d0
Framework: viem
Library: @abstract-foundation/agw-client
Network: Abstract Mainnet

Expected Behavior

Transactions should be included in mempool and subsequently packaged into blocks.

Actual Behavior

  • Transactions are not appearing in mempool
  • No error messages are shown
  • Block explorer shows no pending transactions
  • Account has sufficient funds

Prior State

The account was functioning normally before this issue, successfully sending transactions.

Reproduction Steps

import { http } from "viem/http";
import { abstract } from "viem/chains";
import { privateKeyToAccount } from "viem/accounts";
import { createAbstractClient } from "@abstract-foundation/agw-client";

(async () => {
    const account = privateKeyToAccount("0x....");
    const absClient = await createAbstractClient({
        signer: account,
        chain: abstract,
        transport: http(),
    });
    
    const hash = await absClient.deployContract({
        chain: abstract,
        account: absClient.account,
        abi: ERC20.abi,
        bytecode: ERC20.bytecode,
        ["Test Token", "TEST"],
    });
})();
@coffeexcoin
Copy link
Collaborator

Hi there! Sorry to hear you are having issues.

Can you provide some additional details as to what you are trying to do here?

  • What is the address of the account associated with the private key here? (account.address in your example)
  • Are you getting back a transaction hash when you attempt to send a transaction, or an error? In either case can you provide an example of the output here?
  • Can you attempt a self-send of 0 eth with nonce: 25 and see if that goes through?

@fachebot
Copy link
Author

Hi there! Sorry to hear you are having issues.

Can you provide some additional details as to what you are trying to do here?

  • What is the address of the account associated with the private key here? (account.address in your example)
  • Are you getting back a transaction hash when you attempt to send a transaction, or an error? In either case can you provide an example of the output here?
  • Can you attempt a self-send of 0 eth with nonce: 25 and see if that goes through?

Thank you for your kind assistance! After setting the nonce of a new transaction to 25, it was successfully packed into a block.

@fachebot
Copy link
Author

I used the code above to deploy the smart contract, but the transaction is still not being packed. Could this possibly be due to an issue with the contract bytecode?

@fachebot
Copy link
Author

I believe it's not an issue with the contract bytecode. When I deploy using an EOA account, everything works fine. However, when I try to deploy using an abstract account, the transaction never gets packed into a block.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants