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

[Feature Request] Explain the ExecutionFailure transaction status #3450

Closed
jolestar opened this issue Jun 8, 2022 · 4 comments · Fixed by #3464
Closed

[Feature Request] Explain the ExecutionFailure transaction status #3450

jolestar opened this issue Jun 8, 2022 · 4 comments · Fixed by #3464
Labels
enhancement Enhancement help wanted Extra attention is needed

Comments

@jolestar
Copy link
Member

jolestar commented Jun 8, 2022

Feature Request

Describe the Feature Request

When a transaction execution failure, such as

https://stcscan.io/main/transactions/detail/0x55556a4c9668b3cf12fb3553408f5977b0773c9aa22244e1474315b94eafaa1a

the transaction status is:

  "status": "{\"ExecutionFailure\":{\"code_offset\":87,\"function\":17,\"location\":{\"Module\":{\"address\":\"0xe52552637c5897a2d499fbf08216f73e\",\"name\":\"LockProxy\"}}}}",

It is hard to figure out the function raise error.

Describe Preferred Solution

Expect to provide an API to explain the detailed error, and display the function name.

Related Code

Additional Context

If the feature request is approved, would you be willing to submit a PR?
Yes / No (Help can be provided if you need assistance submitting a PR)

@jolestar jolestar added the enhancement Enhancement label Jun 8, 2022
@jolestar jolestar changed the title [Feature Request] Explain the execute failure error [Feature Request] Explain the ExecutionFailure transaction status Jun 8, 2022
@jolestar jolestar added the help wanted Extra attention is needed label Jun 8, 2022
@coldnight
Copy link
Contributor

coldnight commented Jun 11, 2022

I do some research about this, and here is what I found.

I found the related struct of this issue is KeptVMStatus, starcoin returns it as TransactionStatusView.

KeptVMStatus is defined in move, at here. The variant ExecutionFailure of it doesn't contain status_code and function_name fields like VmStatus does.
The status_code had been removed in this commit.

As the commit message says:

[vm] Filter StatusCodes away from TransactionOutput

  • Changes the information kept in TransactionStatus
  • Kept transactions have a new KeptVMStatus. Runtime errors have detailed information, but no error codes. All other errors are bucketed
  • Discarded transactions have a StatusCode

Closes: #5071
Approved by: sblackshear

@jolestar
Copy link
Member Author

I think we just need to resolve the function name by index from CompiledModule. Maybe need to define a new struct that has a function_name field and a new resolve API?

Use case:

stcscan calls the resolve API to get the function name and display it to users.

@coldnight
Copy link
Contributor

coldnight commented Jun 13, 2022

I don't know whether am I in the right direction:

  1. I found there already have a RPC API could resolve the CompiledModule.

  2. And I made a directly invocation to it by the given information(module_id "0xe52552637c5897a2d499fbf08216f73e::LockProxy"):

    $ curl 'https://main-seed.starcoin.org/' -X POST -H 'Content-Type: application/json' --data-raw '{"method":"contract.resolve_module","params":["0xe52552637c5897a2d499fbf08216f73e::LockProxy"],"id":56,"jsonrpc":"2.0"}'
  3. And the script_functions in JSON that I received is an empty array:

    Click to expand/collapse
    {
      "jsonrpc": "2.0",
      "result": {
        "module_name": {
          "address": "0xe52552637c5897a2d499fbf08216f73e",
          "name": "LockProxy"
        },
        "script_functions": [],
        "structs": [
          {
            "abilities": 12,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "to_asset_hash",
                "type_abi": {
                  "Vector": "U8"
                }
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "AssetHashMap",
            "ty_args": [
              {
                "abilities": 0,
                "name": "T0",
                "phantom": false
              },
              {
                "abilities": 0,
                "name": "T1",
                "phantom": false
              }
            ]
          },
          {
            "abilities": 6,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "to_chain_id",
                "type_abi": "U64"
              },
              {
                "doc": "",
                "name": "from_asset_hash",
                "type_abi": {
                  "Struct": {
                    "abilities": 7,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "addr",
                        "type_abi": "Address"
                      },
                      {
                        "doc": "",
                        "name": "module_name",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      },
                      {
                        "doc": "",
                        "name": "name",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Token"
                    },
                    "name": "TokenCode",
                    "ty_args": []
                  }
                }
              },
              {
                "doc": "",
                "name": "target_proxy_hash",
                "type_abi": {
                  "Vector": "U8"
                }
              },
              {
                "doc": "",
                "name": "initial_amount",
                "type_abi": "U128"
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "BindAssetEvent",
            "ty_args": []
          },
          {
            "abilities": 6,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "to_chain_id",
                "type_abi": "U64"
              },
              {
                "doc": "",
                "name": "target_proxy_hash",
                "type_abi": {
                  "Vector": "U8"
                }
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "BindProxyEvent",
            "ty_args": []
          },
          {
            "abilities": 6,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "from_asset",
                "type_abi": {
                  "Struct": {
                    "abilities": 7,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "addr",
                        "type_abi": "Address"
                      },
                      {
                        "doc": "",
                        "name": "module_name",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      },
                      {
                        "doc": "",
                        "name": "name",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Token"
                    },
                    "name": "TokenCode",
                    "ty_args": []
                  }
                }
              },
              {
                "doc": "",
                "name": "sender",
                "type_abi": "Address"
              },
              {
                "doc": "",
                "name": "to_chain_id",
                "type_abi": "U64"
              },
              {
                "doc": "",
                "name": "to_address",
                "type_abi": {
                  "Vector": "U8"
                }
              },
              {
                "doc": "",
                "name": "net",
                "type_abi": "U128"
              },
              {
                "doc": "",
                "name": "fee",
                "type_abi": "U128"
              },
              {
                "doc": "",
                "name": "id",
                "type_abi": "U128"
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "CrossChainFeeLockEvent",
            "ty_args": []
          },
          {
            "abilities": 6,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "from_asset",
                "type_abi": {
                  "Struct": {
                    "abilities": 7,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "addr",
                        "type_abi": "Address"
                      },
                      {
                        "doc": "",
                        "name": "module_name",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      },
                      {
                        "doc": "",
                        "name": "name",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Token"
                    },
                    "name": "TokenCode",
                    "ty_args": []
                  }
                }
              },
              {
                "doc": "",
                "name": "sender",
                "type_abi": "Address"
              },
              {
                "doc": "",
                "name": "tx_hash",
                "type_abi": {
                  "Vector": "U8"
                }
              },
              {
                "doc": "",
                "name": "efee",
                "type_abi": "U128"
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "CrossChainFeeSpeedUpEvent",
            "ty_args": []
          },
          {
            "abilities": 12,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "cross_chain_fee_lock_event",
                "type_abi": {
                  "Struct": {
                    "abilities": 4,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "counter",
                        "type_abi": "U64"
                      },
                      {
                        "doc": "",
                        "name": "guid",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Event"
                    },
                    "name": "EventHandle",
                    "ty_args": [
                      {
                        "abilities": 6,
                        "name": "T0",
                        "phantom": true,
                        "ty": {
                          "Struct": {
                            "abilities": 6,
                            "doc": "",
                            "fields": [
                              {
                                "doc": "",
                                "name": "from_asset",
                                "type_abi": {
                                  "Struct": {
                                    "abilities": 7,
                                    "doc": "",
                                    "fields": [
                                      {
                                        "doc": "",
                                        "name": "addr",
                                        "type_abi": "Address"
                                      },
                                      {
                                        "doc": "",
                                        "name": "module_name",
                                        "type_abi": {
                                          "Vector": "U8"
                                        }
                                      },
                                      {
                                        "doc": "",
                                        "name": "name",
                                        "type_abi": {
                                          "Vector": "U8"
                                        }
                                      }
                                    ],
                                    "module_name": {
                                      "address": "0x00000000000000000000000000000001",
                                      "name": "Token"
                                    },
                                    "name": "TokenCode",
                                    "ty_args": []
                                  }
                                }
                              },
                              {
                                "doc": "",
                                "name": "sender",
                                "type_abi": "Address"
                              },
                              {
                                "doc": "",
                                "name": "to_chain_id",
                                "type_abi": "U64"
                              },
                              {
                                "doc": "",
                                "name": "to_address",
                                "type_abi": {
                                  "Vector": "U8"
                                }
                              },
                              {
                                "doc": "",
                                "name": "net",
                                "type_abi": "U128"
                              },
                              {
                                "doc": "",
                                "name": "fee",
                                "type_abi": "U128"
                              },
                              {
                                "doc": "",
                                "name": "id",
                                "type_abi": "U128"
                              }
                            ],
                            "module_name": {
                              "address": "0xe52552637c5897a2d499fbf08216f73e",
                              "name": "LockProxy"
                            },
                            "name": "CrossChainFeeLockEvent",
                            "ty_args": []
                          }
                        }
                      }
                    ]
                  }
                }
              },
              {
                "doc": "",
                "name": "cross_chain_fee_speed_up_event",
                "type_abi": {
                  "Struct": {
                    "abilities": 4,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "counter",
                        "type_abi": "U64"
                      },
                      {
                        "doc": "",
                        "name": "guid",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Event"
                    },
                    "name": "EventHandle",
                    "ty_args": [
                      {
                        "abilities": 6,
                        "name": "T0",
                        "phantom": true,
                        "ty": {
                          "Struct": {
                            "abilities": 6,
                            "doc": "",
                            "fields": [
                              {
                                "doc": "",
                                "name": "from_asset",
                                "type_abi": {
                                  "Struct": {
                                    "abilities": 7,
                                    "doc": "",
                                    "fields": [
                                      {
                                        "doc": "",
                                        "name": "addr",
                                        "type_abi": "Address"
                                      },
                                      {
                                        "doc": "",
                                        "name": "module_name",
                                        "type_abi": {
                                          "Vector": "U8"
                                        }
                                      },
                                      {
                                        "doc": "",
                                        "name": "name",
                                        "type_abi": {
                                          "Vector": "U8"
                                        }
                                      }
                                    ],
                                    "module_name": {
                                      "address": "0x00000000000000000000000000000001",
                                      "name": "Token"
                                    },
                                    "name": "TokenCode",
                                    "ty_args": []
                                  }
                                }
                              },
                              {
                                "doc": "",
                                "name": "sender",
                                "type_abi": "Address"
                              },
                              {
                                "doc": "",
                                "name": "tx_hash",
                                "type_abi": {
                                  "Vector": "U8"
                                }
                              },
                              {
                                "doc": "",
                                "name": "efee",
                                "type_abi": "U128"
                              }
                            ],
                            "module_name": {
                              "address": "0xe52552637c5897a2d499fbf08216f73e",
                              "name": "LockProxy"
                            },
                            "name": "CrossChainFeeSpeedUpEvent",
                            "ty_args": []
                          }
                        }
                      }
                    ]
                  }
                }
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "FeeEventStore",
            "ty_args": []
          },
          {
            "abilities": 6,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "from_asset_hash",
                "type_abi": {
                  "Struct": {
                    "abilities": 7,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "addr",
                        "type_abi": "Address"
                      },
                      {
                        "doc": "",
                        "name": "module_name",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      },
                      {
                        "doc": "",
                        "name": "name",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Token"
                    },
                    "name": "TokenCode",
                    "ty_args": []
                  }
                }
              },
              {
                "doc": "",
                "name": "from_address",
                "type_abi": {
                  "Vector": "U8"
                }
              },
              {
                "doc": "",
                "name": "to_chain_id",
                "type_abi": "U64"
              },
              {
                "doc": "",
                "name": "to_asset_hash",
                "type_abi": {
                  "Vector": "U8"
                }
              },
              {
                "doc": "",
                "name": "to_address",
                "type_abi": {
                  "Vector": "U8"
                }
              },
              {
                "doc": "",
                "name": "amount",
                "type_abi": "U128"
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "LockEvent",
            "ty_args": []
          },
          {
            "abilities": 12,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "bind_proxy_event",
                "type_abi": {
                  "Struct": {
                    "abilities": 4,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "counter",
                        "type_abi": "U64"
                      },
                      {
                        "doc": "",
                        "name": "guid",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Event"
                    },
                    "name": "EventHandle",
                    "ty_args": [
                      {
                        "abilities": 6,
                        "name": "T0",
                        "phantom": true,
                        "ty": {
                          "Struct": {
                            "abilities": 6,
                            "doc": "",
                            "fields": [
                              {
                                "doc": "",
                                "name": "to_chain_id",
                                "type_abi": "U64"
                              },
                              {
                                "doc": "",
                                "name": "target_proxy_hash",
                                "type_abi": {
                                  "Vector": "U8"
                                }
                              }
                            ],
                            "module_name": {
                              "address": "0xe52552637c5897a2d499fbf08216f73e",
                              "name": "LockProxy"
                            },
                            "name": "BindProxyEvent",
                            "ty_args": []
                          }
                        }
                      }
                    ]
                  }
                }
              },
              {
                "doc": "",
                "name": "bind_asset_event",
                "type_abi": {
                  "Struct": {
                    "abilities": 4,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "counter",
                        "type_abi": "U64"
                      },
                      {
                        "doc": "",
                        "name": "guid",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Event"
                    },
                    "name": "EventHandle",
                    "ty_args": [
                      {
                        "abilities": 6,
                        "name": "T0",
                        "phantom": true,
                        "ty": {
                          "Struct": {
                            "abilities": 6,
                            "doc": "",
                            "fields": [
                              {
                                "doc": "",
                                "name": "to_chain_id",
                                "type_abi": "U64"
                              },
                              {
                                "doc": "",
                                "name": "from_asset_hash",
                                "type_abi": {
                                  "Struct": {
                                    "abilities": 7,
                                    "doc": "",
                                    "fields": [
                                      {
                                        "doc": "",
                                        "name": "addr",
                                        "type_abi": "Address"
                                      },
                                      {
                                        "doc": "",
                                        "name": "module_name",
                                        "type_abi": {
                                          "Vector": "U8"
                                        }
                                      },
                                      {
                                        "doc": "",
                                        "name": "name",
                                        "type_abi": {
                                          "Vector": "U8"
                                        }
                                      }
                                    ],
                                    "module_name": {
                                      "address": "0x00000000000000000000000000000001",
                                      "name": "Token"
                                    },
                                    "name": "TokenCode",
                                    "ty_args": []
                                  }
                                }
                              },
                              {
                                "doc": "",
                                "name": "target_proxy_hash",
                                "type_abi": {
                                  "Vector": "U8"
                                }
                              },
                              {
                                "doc": "",
                                "name": "initial_amount",
                                "type_abi": "U128"
                              }
                            ],
                            "module_name": {
                              "address": "0xe52552637c5897a2d499fbf08216f73e",
                              "name": "LockProxy"
                            },
                            "name": "BindAssetEvent",
                            "ty_args": []
                          }
                        }
                      }
                    ]
                  }
                }
              },
              {
                "doc": "",
                "name": "unlock_event",
                "type_abi": {
                  "Struct": {
                    "abilities": 4,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "counter",
                        "type_abi": "U64"
                      },
                      {
                        "doc": "",
                        "name": "guid",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Event"
                    },
                    "name": "EventHandle",
                    "ty_args": [
                      {
                        "abilities": 6,
                        "name": "T0",
                        "phantom": true,
                        "ty": {
                          "Struct": {
                            "abilities": 6,
                            "doc": "",
                            "fields": [
                              {
                                "doc": "",
                                "name": "to_asset_hash",
                                "type_abi": {
                                  "Vector": "U8"
                                }
                              },
                              {
                                "doc": "",
                                "name": "to_address",
                                "type_abi": {
                                  "Vector": "U8"
                                }
                              },
                              {
                                "doc": "",
                                "name": "amount",
                                "type_abi": "U128"
                              }
                            ],
                            "module_name": {
                              "address": "0xe52552637c5897a2d499fbf08216f73e",
                              "name": "LockProxy"
                            },
                            "name": "UnlockEvent",
                            "ty_args": []
                          }
                        }
                      }
                    ]
                  }
                }
              },
              {
                "doc": "",
                "name": "lock_event",
                "type_abi": {
                  "Struct": {
                    "abilities": 4,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "counter",
                        "type_abi": "U64"
                      },
                      {
                        "doc": "",
                        "name": "guid",
                        "type_abi": {
                          "Vector": "U8"
                        }
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Event"
                    },
                    "name": "EventHandle",
                    "ty_args": [
                      {
                        "abilities": 6,
                        "name": "T0",
                        "phantom": true,
                        "ty": {
                          "Struct": {
                            "abilities": 6,
                            "doc": "",
                            "fields": [
                              {
                                "doc": "",
                                "name": "from_asset_hash",
                                "type_abi": {
                                  "Struct": {
                                    "abilities": 7,
                                    "doc": "",
                                    "fields": [
                                      {
                                        "doc": "",
                                        "name": "addr",
                                        "type_abi": "Address"
                                      },
                                      {
                                        "doc": "",
                                        "name": "module_name",
                                        "type_abi": {
                                          "Vector": "U8"
                                        }
                                      },
                                      {
                                        "doc": "",
                                        "name": "name",
                                        "type_abi": {
                                          "Vector": "U8"
                                        }
                                      }
                                    ],
                                    "module_name": {
                                      "address": "0x00000000000000000000000000000001",
                                      "name": "Token"
                                    },
                                    "name": "TokenCode",
                                    "ty_args": []
                                  }
                                }
                              },
                              {
                                "doc": "",
                                "name": "from_address",
                                "type_abi": {
                                  "Vector": "U8"
                                }
                              },
                              {
                                "doc": "",
                                "name": "to_chain_id",
                                "type_abi": "U64"
                              },
                              {
                                "doc": "",
                                "name": "to_asset_hash",
                                "type_abi": {
                                  "Vector": "U8"
                                }
                              },
                              {
                                "doc": "",
                                "name": "to_address",
                                "type_abi": {
                                  "Vector": "U8"
                                }
                              },
                              {
                                "doc": "",
                                "name": "amount",
                                "type_abi": "U128"
                              }
                            ],
                            "module_name": {
                              "address": "0xe52552637c5897a2d499fbf08216f73e",
                              "name": "LockProxy"
                            },
                            "name": "LockEvent",
                            "ty_args": []
                          }
                        }
                      }
                    ]
                  }
                }
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "LockEventStore",
            "ty_args": []
          },
          {
            "abilities": 12,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "token",
                "type_abi": {
                  "Struct": {
                    "abilities": 4,
                    "doc": "",
                    "fields": [
                      {
                        "doc": "",
                        "name": "value",
                        "type_abi": "U128"
                      }
                    ],
                    "module_name": {
                      "address": "0x00000000000000000000000000000001",
                      "name": "Token"
                    },
                    "name": "Token",
                    "ty_args": [
                      {
                        "abilities": 0,
                        "name": "T0",
                        "phantom": true,
                        "ty": {
                          "TypeParameter": 0
                        }
                      }
                    ]
                  }
                }
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "LockTreasury",
            "ty_args": [
              {
                "abilities": 0,
                "name": "T0",
                "phantom": false
              }
            ]
          },
          {
            "abilities": 12,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "to_proxy_hash",
                "type_abi": {
                  "Vector": "U8"
                }
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "ProxyHashMap",
            "ty_args": [
              {
                "abilities": 0,
                "name": "T0",
                "phantom": false
              }
            ]
          },
          {
            "abilities": 6,
            "doc": "",
            "fields": [
              {
                "doc": "",
                "name": "to_asset_hash",
                "type_abi": {
                  "Vector": "U8"
                }
              },
              {
                "doc": "",
                "name": "to_address",
                "type_abi": {
                  "Vector": "U8"
                }
              },
              {
                "doc": "",
                "name": "amount",
                "type_abi": "U128"
              }
            ],
            "module_name": {
              "address": "0xe52552637c5897a2d499fbf08216f73e",
              "name": "LockProxy"
            },
            "name": "UnlockEvent",
            "ty_args": []
          }
        ]
      },
      "id": 56
    }
    
    

@jolestar
Copy link
Member Author

The resolve filter method by Visibility at

.filter(|(_, func)| func.visibility == Visibility::Script) // only script functions

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement Enhancement help wanted Extra attention is needed
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants