moody.m.verify.verify API documentation

# Module `moody.m.verify.verify`

Expand source code

    from moody.libeb import MiliDoS, SolWeb3Tool
    from moody import Config
    from ..verify.http import HttpProvider

    def bySource(network: Config, rootpath: str, sourceClassName: str, filename: str):
        meta = MiliDoS(network).withPOA()
        meta.setWorkspace(rootpath).Auth()
        if meta.hasContractName(sourceClassName) is False:
            print(f"There is no contract for {sourceClassName} found.")
            exit(2)

        solc_artifact = SolWeb3Tool()
        solc_artifact.setBasePath(rootpath)
        solc_artifact = solc_artifact.GetCodeClassFromBuild(sourceClassName)

        _sendVerifyRequest(
            explorer_base_uri=network.block_explorer,
            contractAddress=meta.getAddr(sourceClassName),
            solidity_ver=solc_artifact.GetMetaCompilerVer(),
            mergedSource=solc_artifact.GetSourceFileRead(f"vault/{filename}.sol"),
            optimizationUsed=True,
            optimzationRuns=10000,
            encodedConstructorArgs=[]
        )

    def _sendVerifyRequest(explorer_base_uri: str,
                           contractAddress: str,
                           mergedSource: str,
                           contractName: str,
                           optimizationUsed: bool,
                           optimzationRuns: int,
                           solidity_ver: str,
                           encodedConstructorArgs: list,
                           ):
        apiuri = f"{explorer_base_uri}/api"
        verifyapi = f"{apiuri}?module=contract&action=verify"

        # todo: maybe there are links for the lib

        o = HttpProvider("")
        result = o.request(verifyapi, dict(
            addressHash=contractAddress,
            contractSourceCode=mergedSource,
            name=contractName,
            compilerVersion=f"v{solidity_ver}",
            optimization=optimizationUsed,
            optimizationRuns=optimzationRuns,
            constructorArguments=encodedConstructorArgs
        ))

        print(result)

## Functions

`def bySource(network: Config, rootpath: str, sourceClassName: str, filename: str)`
  Expand source code

      def bySource(network: Config, rootpath: str, sourceClassName: str, filename: str):
          meta = MiliDoS(network).withPOA()
          meta.setWorkspace(rootpath).Auth()
          if meta.hasContractName(sourceClassName) is False:
              print(f"There is no contract for {sourceClassName} found.")
              exit(2)

          solc_artifact = SolWeb3Tool()
          solc_artifact.setBasePath(rootpath)
          solc_artifact = solc_artifact.GetCodeClassFromBuild(sourceClassName)

          _sendVerifyRequest(
              explorer_base_uri=network.block_explorer,
              contractAddress=meta.getAddr(sourceClassName),
              solidity_ver=solc_artifact.GetMetaCompilerVer(),
              mergedSource=solc_artifact.GetSourceFileRead(f"vault/{filename}.sol"),
              optimizationUsed=True,
              optimzationRuns=10000,
              encodedConstructorArgs=[]
          )