code: func dumpTokens(nonce []byte, caller, callee crypto.Address, code []byte) {
  	var tokensString string
  	tokens, err := acm.Bytecode(code).Tokens()
  	if err != nil {
  		tokensString = fmt.Sprintf("error generating tokens from bytecode: %v", err)
  	} else {
  		tokensString = strings.Join(tokens, "\n")
  	}
  	txHashString := "nil-nonce"
  	if len(nonce) >= 4 {
  		txHashString = fmt.Sprintf("nonce-%X", nonce[:4])
  	}
  	callerString := "caller-none"
  	if caller != crypto.ZeroAddress {
  		callerString = fmt.Sprintf("caller-%v", caller)
  	}
  	calleeString := "callee-none"
  	if callee != crypto.ZeroAddress {
  		calleeString = fmt.Sprintf("callee-%v", caller)
  	}
  	ioutil.WriteFile(fmt.Sprintf("tokens_%s_%s_%s.asm", txHashString, callerString, calleeString),
  		[]byte(tokensString), 0777)
  }
docs: // Dump the bytecode being sent to the EVM in the current working directory