• Top
    • Documentation
    • Books
    • Recursion-and-induction
    • Boolean-reasoning
    • Debugging
    • Projects
    • Std
    • Proof-automation
    • Macro-libraries
    • ACL2
    • Interfacing-tools
    • Hardware-verification
    • Software-verification
      • Kestrel-books
        • Crypto-hdwallet
          • Command-error
          • Sign
          • Init-from-mnemonic
          • Command-error-message
          • Stat
          • Next-key
          • Init-from-entropy
          • Process-command
          • Transaction-message
          • Maybe-command-error
          • Maybe-stat
          • Check-stat-file-present
          • Valid-key-path-p
          • String-to-byte-list
          • Load-stat
          • Mnemonic-message
          • All-valid-key-paths-p
          • Process-sign
          • Process-init-from-entropy
          • String-to-word
          • String-to-nat
          • Process-next-key
          • Wallet
          • Process-init-from-mnemonic
            • Check-stat-file-absent
            • Stat-wfp
            • Save-stat
            • Stat-addresses-bounded-p
            • Stat-all-valid-key-paths-p
            • Stat-priv-keys-p
            • Stat-root-depth-zero-p
            • Stat-path-prefix-in-tree-p
            • Crypto-hdwallet-executable
            • *stat-filepath*
            • *key-path-prefix*
            • *coin-type-index*
            • *purpose-index*
            • *external-chain-index*
            • *command-name-init-from-mnemonic*
            • *command-name-init-from-entropy*
            • *account-index*
            • *command-name-sign*
            • *command-name-next-key*
          • Error-checking
          • Apt
          • Abnf
          • Fty-extensions
          • Isar
          • Kestrel-utilities
          • Prime-field-constraint-systems
          • Soft
          • Bv
          • Imp-language
          • Event-macros
          • Bitcoin
          • Ethereum
          • Yul
          • Zcash
          • ACL2-programming-language
          • Prime-fields
          • Java
          • C
          • Syntheto
          • Number-theory
          • Cryptography
          • Lists-light
          • File-io-light
          • Json
          • Built-ins
          • Solidity
          • Axe
          • Std-extensions
          • Htclient
          • Typed-lists-light
          • Arithmetic-light
        • X86isa
        • Execloader
        • Axe
      • Testing-utilities
      • Math
    • Crypto-hdwallet

    Process-init-from-mnemonic

    Process a command to initialize the wallet from a mnenonic.

    Signature
    (process-init-from-mnemonic arguments state) → (mv msg state)
    Arguments
    arguments — Guard (string-listp arguments).
    Returns
    msg — Type (msgp msg).

    The message returned by this function describes an error if one occurs, otherwise it describes success.

    If no error occurs, the wallet state file is created.

    Definitions and Theorems

    Function: process-init-from-mnemonic

    (defun
     process-init-from-mnemonic
     (arguments state)
     (declare (xargs :stobjs (state)))
     (declare (xargs :guard (string-listp arguments)))
     (b*
      (((unless (= (len arguments) 2))
        (mv
         (command-error-message
            *command-name-init-from-mnemonic*
            (command-error-wrong-number-of-arguments 2 (len arguments)))
         state))
       ((mv error? state)
        (check-stat-file-absent state))
       ((when error?)
        (mv (command-error-message *command-name-init-from-mnemonic*
                                   error?)
            state))
       (mnemonic (first arguments))
       (passphrase (second arguments))
       ((mv error? stat?)
        (init-from-mnemonic mnemonic passphrase))
       ((when error?)
        (mv (command-error-message *command-name-init-from-mnemonic*
                                   error?)
            state))
       (state (save-stat stat? state))
       (msg
        (msg
         "The wallet has been successfully initialized ~
                      from the supplied mnemonic (and passphrase).~%~%")))
      (mv msg state)))

    Theorem: msgp-of-process-init-from-mnemonic.msg

    (defthm msgp-of-process-init-from-mnemonic.msg
            (b* (((mv acl2::?msg acl2::?state)
                  (process-init-from-mnemonic arguments state)))
                (msgp msg))
            :rule-classes :rewrite)