Easing Confusions
There is a possibility you will experience some pain points. You are always welcome to go to our Discord channel and seek help from us directly. We mean it, visit us on Discord. Though if you have the DIY mindset you can also read this page and try to answer your question yourself. This page is a collection of some issues we know of or we consider may raise some confusion during the working process with the Hello-World example.
Why are my actions filtered out?
In case you try for example to deploy a contract that is already deployed, given it is the exact same contract, which is internally compared by the hashes, the cweb-tool will filter all unnecessary actions out. This may result in an empty list of actions. Please also read this section about lazy smart contract deployments.
My transaction succeeded with L2Unknown
The
TransactionStatus.L2Unknown
is used for transactions that currently cannot be tracked due to Custom
operations type. This may change soon, but for now you will probably have to
check the transcations life cycle through our explorer.
Why does the contract module use Babel?
Our current JS interpreter that is used to execute the smart contract logic
written in Javascript on Coinweb's DEVNET lacks some features that are needed,
like the
Encoding API
.
Therefore we use Babel to polyfill the onchain code.
This is a temporary solution. We are working on introducing a more efficient way that includes the missing features thus we will not be forced to extract them to the contract modules source code.
Is there a way to see more detailed logs?
It is possible to run the scripts that utilise the
@coinweb/cweb-tool
with the --verbose
flag or prepend your commands with LOG_LEVEL=trace
to see
more detailed logs. Trace logs are prepended by ℷ and are highlighted with
an outstanding background color.
The TransactionStatuses that are logged by the transaction monitor can/will be inconsistent as some are leapt over in between the pollings.
How to read Coinweb's DEVNET explorer?
The Coinweb DEVNET explorer's information visualisation is not optimal. We are working on it.
Devnet Container Throws Port is in Use
If you are running the devnet container and you get an error that the port is
already in use you will have to adapt the docker-compose.yaml
file and
properly bind the ports accordingly.
Please keep in mind that there are several services running inside the
container, such as the GQL endpoint, the explorer, LinkMint etc. Because the
services communicate with each other it is important to set the
BACKEND_EXTERNAL_PORT
so that it matches the external port of the API.
Please also monitor the generated .env.yarn.devnet
file as it exports global
endpoint variables.
#API_ENDPOINT_DEVNET=https://api-devnet.coinweb.io/wallet
API_ENDPOINT_DEVNET=http://localhost:5555/wallet
Devnet Container Throws ECONNREFUSED
When working from inside the devnet container in your IDE, you will have to use the local ports inside the container, not the externally bound ports.
Your environment variable API_ENDPOINT_DEVNET
should point to 5100
by
default to match the internal API port the container is using.
Please also monitor the generated .env.yarn.devnet
file as it exports global
endpoint variables.
#API_ENDPOINT_DEVNET=https://api-devnet.coinweb.io/wallet
API_ENDPOINT_DEVNET=http://localhost:5100/wallet