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

Failed to deploy contracts when using simple (monotonic) addresses #421

Closed
bartolomej opened this issue Jun 17, 2023 · 3 comments · Fixed by #427
Closed

Failed to deploy contracts when using simple (monotonic) addresses #421

bartolomej opened this issue Jun 17, 2023 · 3 comments · Fixed by #427
Assignees
Labels

Comments

@bartolomej
Copy link
Contributor

Problem

When running flow emulator with flow emulator --contracts --simple-addresses, common contracts deployment fails:

6:06PM ERR ❗  Failed to deploy contracts                error="[Error Code: 1101] error caused by: 1 error occurred:\n\t* transaction execute failed: [Error Code: 1101] cadence runtime error: Execution failed:\nerror: cannot deploy invalid contract\n --> 6326a67f595cff5407032880465932150a3f63977b51cf5d8434ae3e462d6613:3:2\n  |\n3 | \t\tsigner.contracts.add(name: name, code: code.decodeHex())\n  | \t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find declaration `FungibleToken` in `ee82856bf20e2aa6.FungibleToken`\n --> 0000000000000001.FUSD:1:7\n  |\n1 | import FungibleToken from 0xee82856bf20e2aa6\n  |        ^^^^^^^^^^^^^ available exported declarations are:\n\n\n\n"

The log is also a bit misleading because it says "Failed to deploy contracts", but then it follows up by logging all of the common contracts along with account addresses, where they should get deployed:

6:06PM ERR ❗  Failed to deploy contracts                error="[Error Code: 1101] error caused by: 1 error occurred:\n\t* transaction execute failed: [Error Code: 1101] cadence runtime error: Execution failed:\nerror: cannot deploy invalid contract\n --> 6326a67f595cff5407032880465932150a3f63977b51cf5d8434ae3e462d6613:3:2\n  |\n3 | \t\tsigner.contracts.add(name: name, code: code.decodeHex())\n  | \t\t^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n\nerror: cannot find declaration `FungibleToken` in `ee82856bf20e2aa6.FungibleToken`\n --> 0000000000000001.FUSD:1:7\n  |\n1 | import FungibleToken from 0xee82856bf20e2aa6\n  |        ^^^^^^^^^^^^^ available exported declarations are:\n\n\n\n"
6:06PM INF 💵  FUSD contract                             FUSD=0xf8d6e0586b0a20c7
6:06PM INF ✨  NFT contract                              NonFungibleToken=0xf8d6e0586b0a20c7
6:06PM INF ✨  Metadata views contract                   MetadataViews=0xf8d6e0586b0a20c7
6:06PM INF ✨  Example NFT contract                      ExampleNFT=0xf8d6e0586b0a20c7
6:06PM INF ✨  NFT Storefront contract v2                NFTStorefrontV2=0xf8d6e0586b0a20c7
6:06PM INF ✨  NFT Storefront contract                   NFTStorefront=0xf8d6e0586b0a20c7
6:06PM INF 🌱 Starting gRPC server on port 3569          port=3569
6:06PM INF 🌱 Starting REST API on port 8888             port=8888
6:06PM INF 🌱 Starting admin server on port 8080         port=8080
6:06PM INF 🌱 Starting debugger on port 2345             port=2345
6:06PM INF ✅  Started admin server on port 8080         port=8080
6:06PM INF ✅  Started REST API server on port 8888      port=8888
6:06PM INF ✅  Started gRPC server on port 3569          port=3569

Steps to Reproduce

Run command: flow emulator --contracts --simple-addresses (using flow-cli v1.2.0).

Acceptance Criteria

When using simple addresses, common contracts deployment should succeed.

Context

I'm working on fixing the processing of monotonic accounts in Flowser in the scope of onflow/developer-grants#150. This isn't necessarily blocking me, I just noticed this issue along the way.

@bluesign
Copy link
Collaborator

This is a bit tricky; --contracts flag does not use fvm bootstrap ( as fvm bootstrap is not configurable enough yet ) I will have a look if we can find a workaround here.

@bartolomej
Copy link
Contributor Author

@bluesign Awesome!

Related to that, I just noticed that the flow transactions send command also doesn't seem to be working with monotonic addresses:

flow transactions send transfer_tokens.cdc 1.0 0x0000000000000004

❗   Version warning: a new version of Flow CLI is available (v1.3.0).
   Read the installation guide for upgrade instructions: https://docs.onflow.org/flow-cli/install

❌ Invalid argument: address f8d6e0586b0a20c7 is invalid for chain flow-emulator-monotonic
🙏 Check you are connecting to the correct network or account address you use is correct.

(this is using just a standard transfer_tokens transaction)

@bluesign
Copy link
Collaborator

bluesign commented Jun 19, 2023

@bartolomej yeah flow-cli actually does not support monotonic addresses. ( onflow/flow-cli#1060 )

I think monotonic addresses were added for playground usecase only, so tooling support is really limited.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants