Skip to content

Problem with using Solana Mainnet, might be about mapping key #56

Open
@Steinadler177

Description

@Steinadler177

Problem Description

I'm trying to read all price from solana by each time I call the function. When I set solana_network with devnet, it was working perfect. However, when I try to use mainet, testnet, or pythnet, it can't work anymore.

Calling method

solana_network="mainnet" 
use_program = True

async def SolanaPythClientPriceFunction():
    async with PythClient(
        first_mapping_account_key=get_key(solana_network, "mapping"),
        program_key=get_key(solana_network, "program") if use_program else None,
    ) as c:
        await c.refresh_all_prices()

Debug Console Output

.....venv\Lib\site-packages\pythclient\pythclient.py", line 185, in _refresh_mapping_accounts
    raise exceptions.MissingAccountException(f"need account {key} but missing in getProgramAccount response")
pythclient.exceptions.MissingAccountException: need account AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J but missing in getProgramAccount response

I checked the variables with debugger.

async def _refresh_mapping_accounts(self, *, account_json: Optional[Dict[str, Any]] = None, slot: Optional[int] = None) -> List[PythMappingAccount]:
key = self._first_mapping_account_key
existing_mappings = dict((mapping.key, mapping) for mapping in self._mapping_accounts) if self._mapping_accounts else {}
mapping_accounts: List[PythMappingAccount] = []
while key:
m = existing_mappings.get(key) or PythMappingAccount(key, self.solana)
if account_json is not None:
m_data = account_json.get(str(key))
if m_data is None:
raise exceptions.MissingAccountException(f"need account {key} but missing in getProgramAccount response")
assert slot
m.update_with_rpc_response(slot, m_data)
else:
await m.update()
mapping_accounts.append(m)
key = m.next_account_key
self._mapping_accounts = mapping_accounts
return self._mapping_accounts

Until L180, everything works fine. Both key was correctly assigned values. But then, at L183,
m_data = account_json.get(AHtgzX45WTKfkPG53L6WYhGEXwQkN1BVknET3sVsLL8J )
it reads empty data.

Is this an error with mapping key? ( I checked with Pyth Network Website, the key is as same as here) Or with the method that I calling it?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions