TransWikia.com

I have doubts about intercontract communication

EOS.IO Asked by coder on January 5, 2022

I have read that:

In order to call an inline action, that is to call an action of contract A from contract B, there is a need to set some special permission. In this case, the Ram payer for the action in contract B must-have “accountname [email protected]” permission in its active. In a case, if account C needs to call an action in account A through a contract in account B, then account C need to set the [email protected] in its active.

But I observed that:

  1. Contract B must-have “accountname [email protected]” permission in its active even to call function from contract A & not “accountname [email protected]” permission in its active.
  2. If account C needs to call an action in account A through a contract in account B, then account C need to set the
    [email protected] in its active. This is true but is there any
    alternative that C can use contract B to call action from contract A
    without changing its permissions. Because in dapp it is not feasible
    for every user to do that.

I’m confused a bit about the all this. Can anyone please give me a clear guidance? Also, in accordance with the v2.0Latest version

One Answer

If a contract has an inline action, the permission for running that action must be eosio.code from that contract account. Thats it.

Example: accounta is a smart contract with an inline action to accountb. Therefore accounta will need the permission [email protected], as the contract will need to execute the inline action.

Answered by Phillip Hamnett - EOS42 on January 5, 2022

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP