We've encountered several errors that are likely related to the RPC node and possibly the vault contract itself.
Here's a summary of the observed issues:
1. **Gas Estimation Failure:**
* The primary error is related to gas estimation. We are seeing the following error in the browser's console:
* `ContractFunctionExecutionError: RPC Request failed. Details: the method eth_estimateGas does not exist/is not available`
* This indicates that the RPC node being used by the Steer frontend is not supporting the necessary `eth_estimateGas` method, which is essential for estimating transaction gas costs.
* This error is preventing withdrawals.
* Steer is using the following RPC node (as reported in the errors): `https://evmos.drpc.org`
2. **CORS Error:**
* We're also seeing a CORS (Cross-Origin Resource Sharing) error:
* `Access to fetch at 'https://evmos.api.onfinality.io/public' from origin 'https://app.steer.finance' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains the invalid value 'api.onfinality.io'.`
* This means that the Steer website is unable to fetch data from the `https://evmos.api.onfinality.io/public` API endpoint because the server is not configured to allow requests from `app.steer.finance`.
3. **Contract Function Reverted:**
* In addition to the above errors, the `vaultDetailsByAddress` function call is reverting, which is indicative of a problem on your side.
**Action Requested:**
1. **Address the `eth_estimateGas` Error:** This is the most critical issue. Please investigate the RPC node being used and ensure it supports the `eth_estimateGas` method. If the current node does not support it, please switch to a different RPC node that does.
2. **Fix the CORS Issue:** Please correct the `Access-Control-Allow-Origin` header on the `https://evmos.api.onfinality.io/public` endpoint to allow requests from `https://app.steer.finance`.
3. **Investigate the Reverted Function:** Please have a look at the `vaultDetailsByAddress` function failure.
---
**Steer Vault Address:**
0xb41f09baac835f52d408fe83989f9ac8938c01fa
https://app.steer.finance/vault/0xb41f09baac835f52d408fe83989f9ac8938c01fa
**token 0 (USDT):**
0xB8f812B5943ab3BF941D5D4F1de90A4b326c5d8f
**token 1 (USDC):**
0xf1faE9eC886C5F6E4ea13dA2456087Bd72F02cD1
*OpenScan Explorer is spotty, it misses some transactions.*
**User's main account:**
https://evmos.openscan.ai/address/0xef06ee12a0295ad6f4951f25c971325d785747a4
**User's safe account:**
https://evmos.openscan.ai/address/0x88054307c1106c4b875fe8edee0777714686bec6
https://safe.evmos.org/transactions/history?safe=evmos:0x88054307c1106c4b875fe8edee0777714686bec6
----
On the Steer site, when I try to withdraw, in the console I get these errors:
```
7864-b2df6a3bb9d8b3a3.js:1 Error on withdraw Error: Disable simulation
at C (page-72059307799ed6bd.js:1:57410)
at 3917-6633f3a4937d8cf7.js:14:42090
window.console.error @ 7864-b2df6a3bb9d8b3a3.js:1
C @ page-72059307799ed6bd.js:1
(anonymous) @ 3917-6633f3a4937d8cf7.js:14
await in (anonymous)
l5 @ fd9d1056-af984b1f93544fa3.js:9
ar @ fd9d1056-af984b1f93544fa3.js:9
(anonymous) @ fd9d1056-af984b1f93544fa3.js:9
u2 @ fd9d1056-af984b1f93544fa3.js:9
u3 @ fd9d1056-af984b1f93544fa3.js:9
(anonymous) @ fd9d1056-af984b1f93544fa3.js:9
iE @ fd9d1056-af984b1f93544fa3.js:9
ol @ fd9d1056-af984b1f93544fa3.js:9
u9 @ fd9d1056-af984b1f93544fa3.js:9
o6 @ fd9d1056-af984b1f93544fa3.js:9
o4 @ fd9d1056-af984b1f93544fa3.js:9
```
```
Access to fetch at 'https://evmos.api.onfinality.io/public' from origin 'https://app.steer.finance' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains the invalid value 'api.onfinality.io'. Have the server send the header with a valid value, or, if an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled.
2323-2f8e4b871b3b3304.js:1276
```
`POST https://evmos.api.onfinality.io/public net::ERR_FAILED`
```
3211-b62c38da39bd9b8b.js:37 Uncaught (in promise) ContractFunctionExecutionError: RPC Request failed.
URL: https://evmos.drpc.org
Request body: {"method":"eth_estimateGas","params":[{"data":"0xd331bef7000000000000000000000000000000000000000000000000000000000025a6ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006620338b2d4c72ad3446176e15223c3d38562b5c","from":"0x6620338b2d4C72ad3446176E15223C3D38562b5C","to":"0xb41f09baac835f52d408fe83989f9ac8938c01fa"}]}
Estimate Gas Arguments:
from: 0x6620338b2d4C72ad3446176E15223C3D38562b5C
to: 0xb41f09baac835f52d408fe83989f9ac8938c01fa
data: 0xd331bef7000000000000000000000000000000000000000000000000000000000025a6ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006620338b2d4c72ad3446176e15223c3d38562b5c
Contract Call:
address: 0xb41f09baac835f52d408fe83989f9ac8938c01fa
function: withdraw(uint256 shares, uint256 amount0Min, uint256 amount1Min, address to)
args: (2467500, 0, 0, 0x6620338b2d4C72ad3446176E15223C3D38562b5C)
sender: 0x6620338b2d4C72ad3446176E15223C3D38562b5C
Docs: https://viem.sh/docs/contract/estimateContractGas
Details: the method eth_estimateGas does not exist/is not available
Version: viem@2.16.1
at s (3211-b62c38da39bd9b8b.js:37:14844)
at M (2323-2f8e4b871b3b3304.js:1276:190880)
at async C (page-72059307799ed6bd.js:1:57598)
at async 3917-6633f3a4937d8cf7.js:14:42084
Caused by: EstimateGasExecutionError: RPC Request failed.
URL: https://evmos.drpc.org
Request body: {"method":"eth_estimateGas","params":[{"data":"0xd331bef7000000000000000000000000000000000000000000000000000000000025a6ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006620338b2d4c72ad3446176e15223c3d38562b5c","from":"0x6620338b2d4C72ad3446176E15223C3D38562b5C","to":"0xb41f09baac835f52d408fe83989f9ac8938c01fa"}]}
Estimate Gas Arguments:
from: 0x6620338b2d4C72ad3446176E15223C3D38562b5C
to: 0xb41f09baac835f52d408fe83989f9ac8938c01fa
data: 0xd331bef7000000000000000000000000000000000000000000000000000000000025a6ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006620338b2d4c72ad3446176e15223c3d38562b5c
Details: the method eth_estimateGas does not exist/is not available
Version: viem@2.16.1
at 3211-b62c38da39bd9b8b.js:16:60547
at y (3211-b62c38da39bd9b8b.js:16:60574)
at async M (2323-2f8e4b871b3b3304.js:1276:190753)
at async C (page-72059307799ed6bd.js:1:57598)
at async 3917-6633f3a4937d8cf7.js:14:42084
Caused by: RpcRequestError: RPC Request failed.
URL: https://evmos.drpc.org
Request body: {"method":"eth_estimateGas","params":[{"data":"0xd331bef7000000000000000000000000000000000000000000000000000000000025a6ac000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006620338b2d4c72ad3446176e15223c3d38562b5c","from":"0x6620338b2d4C72ad3446176E15223C3D38562b5C","to":"0xb41f09baac835f52d408fe83989f9ac8938c01fa"}]}
Details: the method eth_estimateGas does not exist/is not available
Version: viem@2.16.1
at request (2323-2f8e4b871b3b3304.js:1276:143212)
at async delay.count (3211-b62c38da39bd9b8b.js:16:73697)
at async s (3211-b62c38da39bd9b8b.js:37:20096)
26829-6d1c7fb750728508.js:1 ContractFunctionExecutionError: The contract function "vaultDetailsByAddress" reverted.
Contract Call:
address: 0x1afD31627170607657224eD4aE701470209C4B2e
function: vaultDetailsByAddress(address vault)
args: (0xb41f09baac835f52d408fe83989f9ac8938c01fa)
Docs: https://viem.sh/docs/contract/readContract
Version: viem@2.16.1
at s (3211-b62c38da39bd9b8b.js:37:14844)
at c (3211-b62c38da39bd9b8b.js:16:64946)
at async queryFn (6829-6d1c7fb750728508.js:1:83967)Caused by: ContractFunctionRevertedError: The contract function "vaultDetailsByAddress" reverted.
Version: viem@2.16.1
at s (3211-b62c38da39bd9b8b.js:37:14756)
at c (3211-b62c38da39bd9b8b.js:16:64946)
at async queryFn (6829-6d1c7fb750728508.js:1:83967) 'Error on simulateContract'
```
**1. Withdrawal Errors on Steer's Webpage**
* **"Disable simulation" Error:**
* **Error:** `Error on withdraw Error: Disable simulation`
* **Meaning:** This suggests that Steer's website has a mechanism to simulate transactions (to estimate gas costs, etc.) and that this simulation is being disabled. This is not a fatal error, but it might indicate that the website is not able to fully estimate the gas costs for the withdrawal. It's a warning, not a direct cause of the failure.
* **CORS Policy Error:**
* **Error:** `Access to fetch at 'https://evmos.api.onfinality.io/public' from origin 'https://app.steer.finance' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: The 'Access-Control-Allow-Origin' header contains the invalid value 'api.onfinality.io'.`
* **Meaning:** This is a *CORS (Cross-Origin Resource Sharing)* error. It means that the Steer website (running from `https://app.steer.finance`) is trying to make a request to `https://evmos.api.onfinality.io/public`, but the server at `evmos.api.onfinality.io` is not configured to allow requests from `app.steer.finance`.
* **Cause:** This CORS error is a *server-side* issue. The server at `evmos.api.onfinality.io` needs to be configured to include the correct `Access-Control-Allow-Origin` header in its responses. In this case, it seems the header is set to `api.onfinality.io`, which is not correct. It should allow origin `app.steer.finance`.
* **Impact:** This CORS error can prevent the Steer website from fetching data from `evmos.api.onfinality.io`. This could affect the withdrawal process if the website needs to fetch data from that API.
* **`eth_estimateGas` Error:**
* **Error:** `Uncaught (in promise) ContractFunctionExecutionError: RPC Request failed.` followed by `Details: the method eth_estimateGas does not exist/is not available`
* **Meaning:** This is a critical error! The website is trying to estimate the gas cost for the withdrawal transaction by calling the `eth_estimateGas` method on an RPC (Remote Procedure Call) node. However, the RPC node at `https://evmos.drpc.org` is reporting that the `eth_estimateGas` method is *not available*.
* **Cause:** This is a problem with the RPC node that Steer's website is using. It indicates that the RPC node either:
* Does not support the `eth_estimateGas` method.
* Is not correctly configured to handle gas estimation requests.
* **Impact:** The website *cannot* estimate the gas cost for the withdrawal, which is a crucial step before submitting the transaction. This is a *major* problem.
* **`vaultDetailsByAddress` Reverted:**
* **Error:** `ContractFunctionExecutionError: The contract function "vaultDetailsByAddress" reverted.`
* **Meaning:** This is the most direct indication of a problem. The website is trying to call the `vaultDetailsByAddress` function on a contract and it's reverting. Reverting means the function call failed.
* **Cause:** The `vaultDetailsByAddress` function is failing. The error suggests that something is wrong with the vault contract, the arguments being passed, or the state of the blockchain.
* **Impact:** Prevents the function from being called successfully.
**2. Recommendations**
* **CORS Error:** The CORS error needs to be fixed on the `evmos.api.onfinality.io` server. Contact the Steer team to report this.
* **`eth_estimateGas` Error:** This is the *most critical* issue. Report this to Steer. They need to switch to an RPC node that supports the `eth_estimateGas` method, or they need to find a workaround. This is likely the reason why your withdrawals are not working.
---
**Interface Link and Console Details**
* I have created a withdrawal interface that demonstrates the issue. You can access it here: https://poetic-zuccutto-c18b26.netlify.app
* Here is the relevant console output from my interface when attempting a withdrawal. I am using the RPC node from https://evmos.lava.build
```
inpage.js:1 MetaMask - RPC Error: Internal JSON-RPC error.
{code: -32603, message: 'Internal JSON-RPC error.', data: {…}, stack: '{\n "code": -32603,\n "message": "Internal JSON-RP…ihfbeogaeaoehlefnkodbefgpgknn/common-1.js:1:21552'}
code
:
-32603
data
:
{code: 3, message: 'execution reverted: TF', data: '0x08c379a00000000000000000000000000000000000000000…0000000000000000000000000000000000000000000000000', cause: null}
message
:
"Internal JSON-RPC error."
stack
:
"{\n \"code\": -32603,\n \"message\": \"Internal JSON-RPC error.\",\n \"data\": {\n \"code\": 3,\n \"message\": \"execution reverted: TF\",\n \"data\": \"0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000025446000000000000000000000000000000000000000000000000000000000000\",\n \"cause\": null\n },\n \"stack\": \"Error: Internal JSON-RPC error.\\n at new o (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-2.js:1:173863)\\n at i (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-2.js:1:176954)\\n at Object.internal (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-2.js:1:177563)\\n at c (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-0.js:1:474067)\\n at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-0.js:1:475069\\n at async chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-1.js:1:21552\"\n}\n at new o (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-2.js:1:173863)\n at i (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-2.js:1:176954)\n at Object.internal (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-2.js:1:177563)\n at c (chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-0.js:1:474067)\n at chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-0.js:1:475069\n at async chrome-extension://nkbihfbeogaeaoehlefnkodbefgpgknn/common-1.js:1:21552"
[[Prototype]]
:
Object
```
```
index-ynvnUSje.js:40 Withdrawal error: Error: execution reverted: "TF" (action="estimateGas", data="0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000025446000000000000000000000000000000000000000000000000000000000000", reason="TF", transaction={ "data": "0xd331bef700000000000000000000000000000000000000000000000000000000004a4f70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006620338b2d4c72ad3446176e15223c3d38562b5c", "from": "0x6620338b2d4C72ad3446176E15223C3D38562b5C", "to": "0xB41F09Baac835F52D408FE83989f9Ac8938c01FA" }, invocation=null, revert={ "args": [ "TF" ], "name": "Error", "signature": "Error(string)" }, code=CALL_EXCEPTION, version=6.13.5)
at Ce (index-ynvnUSje.js:40:59420)
at nC (index-ynvnUSje.js:40:222407)
at Fc.getBuiltinCallException (index-ynvnUSje.js:40:223170)
at _r.getRpcError (index-ynvnUSje.js:40:311787)
at _r.getRpcError (index-ynvnUSje.js:40:317660)
at index-ynvnUSje.js:40:315425
```
```
Error: execution reverted: "TF" (action="estimateGas", data="0x08c379a0000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000025446000000000000000000000000000000000000000000000000000000000000", reason="TF", transaction={ "data": "0xd331bef700000000000000000000000000000000000000000000000000000000004a4f70000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006620338b2d4c72ad3446176e15223c3d38562b5c", "from": "0x6620338b2d4C72ad3446176E15223C3D38562b5C", "to": "0xB41F09Baac835F52D408FE83989f9Ac8938c01FA" }, invocation=null, revert={ "args": [ "TF" ], "name": "Error", "signature": "Error(string)" }, code=CALL_EXCEPTION, version=6.13.5)
at Ce (index-ynvnUSje.js:40:59420)
at nC (index-ynvnUSje.js:40:222407)
at Fc.getBuiltinCallException (index-ynvnUSje.js:40:223170)
at _r.getRpcError (index-ynvnUSje.js:40:311787)
at _r.getRpcError (index-ynvnUSje.js:40:317660)
at index-ynvnUSje.js:40:315425
```