gRPC error when deploying smart contract

Hello!
We are trying to deploy our contract on the testnet, however we get some errors. We have tried deploying with:
concordium-client --grpc-port 10000 module deploy our_contract --sender our_account

Resulting in the following error:
concordium-client: user error (gRPC error: Deserialization error)

And we have deployed with
concordium-client --grpc-port 10001 module deploy our_contract --sender our_account

Resulting in
concordium-client: user error (Cannot establish connection to GRPC endpoint.)

As far as I can tell from the documentation the port 10001 is used for the testnet, so should that be the one we should use? When inspecting our account I can only retreive something using:

concordium-client account show our_account --grpc-ip 127.0.0.1 --grpc-port 10000

But when using 10001 is gives the same error as when deploying. What can we do?

Thanks.

Hello Honro

I would like to know which version of the node and Concordium-client are you using, Which platform are you working on?

regards,
Concordium Tech Support

Hello.

I am using:
concordium-client 4.0.3
concordium-node 4.0.11
cargo-concordium 2.0.1

Furthermore, we are using linux arch and therefore docker to run the node.

Hi again

You should try back up the keys on on your wallet (mobile or desktop wallet depends which one you prefer) again and then try to reimport them to Concordium client. Each account can have multiple credentials and each credential can have multiple signing keys. In this case, you missing credentials nor signing keys for that account.

You can also take a look at this thread on Github.

Regards,
Concordium Tech Support

Thanks for the reply.

I have tried backing the keys up once again from the mobile wallet, and importing the file in my concordium client. I have also tried with a new account, however it still gives me the same error when deploying. Any other tips?

Edit: I am able to do a transaction between my two accounts, like in the example you linked, without any errors.

Hello Honro

Can I ask how big is the module size? Could it be that the module is too big? The max size for v0 is 64kb and for v1 it is 512kb. The v1 is coming to the Testnet around next week.
You should make sure that you actually building the smart contract with cargo-concordium. The tool will and can reduce the size of the contract quite a bit. There are multiple ways to reduce the module size, but we need to know more about the contract. If you are using a lot of generics, then that could be an issue.

Let me know if that was helpful…

regards,
Concordium Tech Support

Hello.

We are using cargo-concordium to build the contract. Our contract size is around 120 kb and it is a v1 contract. We understood it like v1 is already up on the testnet:

https://developer.concordium.software/en/mainnet/net/resources/release-notes.html#

We use generics from the concordium std. Additonally we use a library for elliptic curves which uses generics for some functions. How can this be an issue and what can we do?

Thanks.

V1 contracts are not yet available on the testnet. The software is released and the functionality will be enabled on Monday as announced.

Which node version are you submitting your transactions to?

Hello Honro

You wrote previously that you are using concordium-node 4.0.11. That should be the newest one.
As of now the V1 in online on the Testnet. Please try to submit the smart contract, and see if it is working or still having some issue!?

Regards,
Concordium Tech Support

1 Like

It works now with the upgrade! Thanks for the support!

Hello Honro

That is great news.

Best regards,
Concordium Tech Support