Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error: Debot failed: Contract execution was terminated with error: Unknown error, exit code: 75 #76

Open
ilyar opened this issue Feb 10, 2022 · 0 comments

Comments

@ilyar
Copy link
Contributor

ilyar commented Feb 10, 2022

pragma ton-solidity >= 0.57.3;
pragma AbiHeader expire;
pragma AbiHeader time;
pragma AbiHeader pubkey;

interface IContract {
    function foo() external responsible pure returns (string);
}

contract Example {
    function foo() external responsible pure returns (string) {
        return "foo42";
    }
    // minimal DeBot
    string s_dabi;
    function setABI(string dabi) public {
        require(tvm.pubkey() == msg.pubkey(), 100);
        tvm.accept();
        s_dabi = dabi;
    }
    function getDebotOptions() public view returns (
        uint8 options, string debotAbi, string targetAbi, address targetAddr
    ) {
        debotAbi = s_dabi;
        targetAbi = "";
        targetAddr = address(0);
        options = 1;
    }

    function onFoo(string data) public pure {
        tvm.log(format("onFoo: {}", data));
    }

    function start() public pure {
        tvm.log("start");
        IContract(address(this)).foo{
            callback: onFoo
        }();
        // FIXME IContract(address(this)).foo().await;
        tvm.log("end");
    }

    function getDebotInfo() public functionID(0xDEB) view returns(
        string name, string version, string publisher, string caption, string author,
        address support, string hello, string language, string dabi, bytes icon
    ) {
        tvm.log("getDebotInfo");
        name = "Example";
        version = "1.0.0-alpha.0";
        publisher = "Everscale";
        caption = "My first DeBot";
        author = "Everscale";
        support = address.makeAddrStd(0, 0x0);
        hello = "Hello first user!";
        language = "en";
        dabi = s_dabi;
        icon = "";
    }
}

Run log:

19:31:10 [DEBUG] (1) ton_client::debot::dengine: running getRequiredInterfaces, addr 0:3aee4ccbf6411dc31e48c610ff78ce0e480e1f156d20c04ec88c690657dd0a45
19:31:10 [DEBUG] (1) ton_client::debot::dengine: running getDebotInfo, addr 0:3aee4ccbf6411dc31e48c610ff78ce0e480e1f156d20c04ec88c690657dd0a45
19:31:10 [INFO] getDebotInfo
19:31:10 [DEBUG] (1) ton_client::debot::dengine: run_debot_external getDebotOptions, args: {}
19:31:10 [DEBUG] (1) ton_client::debot::dengine: running getDebotOptions, addr 0:3aee4ccbf6411dc31e48c610ff78ce0e480e1f156d20c04ec88c690657dd0a45
19:31:10 [DEBUG] (1) ton_client::debot::dengine: run_debot_external fetch, args: {}
19:31:10 [DEBUG] (1) ton_client::debot::dengine: running fetch, addr 0:3aee4ccbf6411dc31e48c610ff78ce0e480e1f156d20c04ec88c690657dd0a45
19:31:10 [ERROR] Create run message failed: Invalid name: fetch
19:31:10 [DEBUG] (1) ton_client::debot::dengine: switching to 0
19:31:10 [DEBUG] (1) tonos_cli::debot::callbacks: switched to ctx 0

19:31:10 [DEBUG] (1) ton_client::debot::dengine: run_action: start
19:31:10 [DEBUG] (1) ton_client::debot::dengine: run_debot_external start, args: {}
19:31:10 [DEBUG] (1) ton_client::debot::dengine: running start, addr 0:3aee4ccbf6411dc31e48c610ff78ce0e480e1f156d20c04ec88c690657dd0a45
19:31:10 [INFO] start
19:31:10 [INFO] end
19:31:10 [DEBUG] (1) ton_client::debot::dengine: Invoke call
19:31:10 [DEBUG] (1) ton_client::debot::dengine: instant_switch = false, state_to = 0
19:31:10 [DEBUG] (1) ton_client::debot::dengine: Invoke call
19:31:10 [INFO] onFoo: foo42

19:31:10 [DEBUG] (1) tonos_cli::debot::callbacks: no more actions, exit loop

If use IContract(address(this)).foo().await; run log:

19:38:12 [DEBUG] (1) ton_client::debot::dengine: running getRequiredInterfaces, addr 0:7aa981052eeb3022d5752567b593ed9bb260e926f5dc105f0daeb2646d73689a
19:38:12 [DEBUG] (1) ton_client::debot::dengine: running getDebotInfo, addr 0:7aa981052eeb3022d5752567b593ed9bb260e926f5dc105f0daeb2646d73689a
19:38:12 [INFO] getDebotInfo
19:38:12 [DEBUG] (1) ton_client::debot::dengine: run_debot_external getDebotOptions, args: {}
19:38:12 [DEBUG] (1) ton_client::debot::dengine: running getDebotOptions, addr 0:7aa981052eeb3022d5752567b593ed9bb260e926f5dc105f0daeb2646d73689a
19:38:12 [DEBUG] (1) ton_client::debot::dengine: run_debot_external fetch, args: {}
19:38:12 [DEBUG] (1) ton_client::debot::dengine: running fetch, addr 0:7aa981052eeb3022d5752567b593ed9bb260e926f5dc105f0daeb2646d73689a
19:38:12 [ERROR] Create run message failed: Invalid name: fetch
19:38:12 [DEBUG] (1) ton_client::debot::dengine: switching to 0
19:38:12 [DEBUG] (1) tonos_cli::debot::callbacks: switched to ctx 0

19:38:12 [DEBUG] (1) ton_client::debot::dengine: run_action: start
19:38:12 [DEBUG] (1) ton_client::debot::dengine: run_debot_external start, args: {}
19:38:12 [DEBUG] (1) ton_client::debot::dengine: running start, addr 0:7aa981052eeb3022d5752567b593ed9bb260e926f5dc105f0daeb2646d73689a
19:38:12 [INFO] start
19:38:12 [DEBUG] (1) ton_client::debot::dengine: Invoke call
19:38:12 [DEBUG] (1) ton_client::debot::dengine: instant_switch = false, state_to = 0
Error: Debot failed: Contract execution was terminated with error: Unknown error, exit code: 75.
Tip: For more information about exit code check the contract source code or ask the contract developer
Error: 1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant