Mike
Mike

Reputation: 31

Kadena Chainweaver Deploy Contract Failure: Tx Failed: Keyset failure (keys-any)

I get this error when I Deploy a Hello World contract with Kadena Chainweaver on VM (https://chainweaver-builds.s3.amazonaws.com/2.2/kadena-chainweaver-vm-2.2.0.1.ova): Failure: Tx Failed: Keyset failure (keys-any)

This is the contract I'm trying to Deploy(It's the default hello world that exists when you create a chainweaver account):

;;
;; "Hello, world!" smart contract/module
;;
;; To try it out, click "Load into REPL" and type into the repl:
;; (free.hello-world.set-message "universe")
;; (free.hello-world.greet)
;;
;; Check lines 21 and 34 to play with Formal Verification
;;

(namespace "free")

;; Define the module.
(module hello-world MODULE_ADMIN
  "A smart contract to greet the world."

  ; no-op module admin for example purposes.
  ; in a real contract this could enforce a keyset, or
  ; tally votes, etc.
  (defcap MODULE_ADMIN () true)

  (defschema message-schema
    @doc "Message schema"
    @model [(invariant (!= msg ""))]

    msg:string)

  (deftable
    message:{message-schema})

  (defun set-message
    (
      m:string
    )
    "Set the message that will be used next"
    ; uncomment the following to make the model happy!
    ;(enforce (!= m "") "set-message: must not be empty")
    (write message "0" {"msg": m})
  )

  (defun greet ()
    "Do the hello-world dance"
    (with-default-read message "0" { "msg": "" } { "msg":= msg }
      (format "Hello {}!" [msg])))
)

(create-table message)

(set-message "world")
(greet)

Failure: Tx Failed: Keyset failure (keys-any)

Upvotes: 2

Views: 324

Answers (1)

Mike
Mike

Reputation: 31

The problem is sovled when I changed the module name from hello-world to something else.

Change this:

;; Define the module.
(module hello-world MODULE_ADMIN
  "A smart contract to greet the world."

to this:

;; Define the module.
(module hello-world-YOUR-UNIQUE-NAME MODULE_ADMIN
  "A smart contract to greet the world."

Upvotes: 1

Related Questions