Currently the account actor doesn't expose publicly the PubKeyAddress method to non builtin actors. There is no way to resolve the f1/f3 address by non-builtin actors, and this is a requirement for IPC, that leverages these addresses to treat consistently different addresses interacting with different subnets.
As a work around, the IPC actors are bundled with a modified account actor that exposes that method publicly to non-builtin actors. While this works for subnet, where we can have full control about the bundle they load, this will not work in mainnet.
According to the FVM team, the reason why this method was not exposed is in preparation for the introduction of account abstraction. Once this is a reality, we should reconsider how to handle consistently addresses among the different subnets, and the best way to authenticate messages from them.
This also may also allow us to make some changes into the actors where instead of storing addresses as public key addresses on-chain, we can directly use their corresponding IDs, this is something to be analyzed.
Currently the account actor doesn't expose publicly the
PubKeyAddress
method to non builtin actors. There is no way to resolve thef1/f3
address by non-builtin actors, and this is a requirement for IPC, that leverages these addresses to treat consistently different addresses interacting with different subnets.As a work around, the IPC actors are bundled with a modified account actor that exposes that method publicly to non-builtin actors. While this works for subnet, where we can have full control about the bundle they load, this will not work in mainnet.
According to the FVM team, the reason why this method was not exposed is in preparation for the introduction of account abstraction. Once this is a reality, we should reconsider how to handle consistently addresses among the different subnets, and the best way to authenticate messages from them.
This also may also allow us to make some changes into the actors where instead of storing addresses as public key addresses on-chain, we can directly use their corresponding IDs, this is something to be analyzed.