[General] Validation revert: Sender is not an account
#570
-
EnvironmentMainnet Provide a brief description of the functionality you're trying to implement and the issue you are running into.I have a minimal custom account abstraction based smart contract on zkSync here: 0x1Ec2090975a6a497935891c25E7535893D9FEF7e. Let's call it I'm trying to have the following flow occur:
I have a codebase in typescript that is supposed to be able to send such a transaction: aaTx = {
...aaTx,
from: ZK_MINIMAL_ADDRESS,
gasLimit: gasLimit,
gasPrice: gasPrice,
chainId: (await provider.getNetwork()).chainId,
nonce: await provider.getTransactionCount(ZK_MINIMAL_ADDRESS),
type: 113,
customData: {
gasPerPubdata: utils.DEFAULT_GAS_PER_PUBDATA_LIMIT,
} as types.Eip712Meta,
value: ethers.getBigInt(0),
}
const signedTxHash = EIP712Signer.getSignedDigest(aaTx)
const signature = ethers.concat([
ethers.Signature.from(wallet.signingKey.sign(signedTxHash)).serialized,
])
aaTx.customData = {
...aaTx.customData,
customSignature: signature,
}
const sentTx = await provider.broadcastTransaction(
types.Transaction.from(aaTx).serialized,
) However, every time I run it, I run into the following:
I have seen the following warning:
I've seen this on other tutorials, however this does not apply to me, as I am not deploying my smart contract, or any contract. Why am I getting this error? Repo Link (Optional)https://github.com/PatrickAlphaC/minimal-account-abstraction/tree/cyfrin-mock-era-contracts Additional DetailsNo response |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments 2 replies
-
Looks like this is what's firing. I'm not sure why though. Wouldn't this make native account abstraction worthless? |
Beta Was this translation helpful? Give feedback.
-
Ah... I think I got it. When you deploy, that's the only time you can signify a contract is an AA contract... I think I got it. |
Beta Was this translation helpful? Give feedback.
-
Correct. Was the account you're using as a |
Beta Was this translation helpful? Give feedback.
Correct.
Was the account you're using as a
from
deployed usingcreateAccount
orcreate2Account
?